伍 星 熊 壯 曾 一
摘要:本文結(jié)合非計算機專業(yè)程序設(shè)計課程教學(xué)實踐,討論了現(xiàn)階段非計算機專業(yè)中影響培養(yǎng)學(xué)生創(chuàng)新能力的制約因素,提出了從教學(xué)內(nèi)容、課堂教學(xué)、實驗教學(xué)和考核方式四個環(huán)節(jié)進行教學(xué)改革,幫助學(xué)生逐步形成自覺創(chuàng)新的習慣,進而具有創(chuàng)新意識、創(chuàng)新精神與創(chuàng)新能力。
關(guān)鍵詞:程序設(shè)計;創(chuàng)新;能力培養(yǎng)
中圖分類號:G642 文獻標識碼:B
創(chuàng)新是人的基本特征,人類就是在不斷地“首創(chuàng)前所未有”的過程中發(fā)展起來的,積極主動的創(chuàng)新意識、創(chuàng)新精神和創(chuàng)新能力需要后天的教育培養(yǎng)和實踐鍛煉,實施素質(zhì)教育要以“培養(yǎng)學(xué)生的創(chuàng)新精神和實踐能力為重點”。作為現(xiàn)代信息技術(shù)主體的計算機的產(chǎn)生,本身就是創(chuàng)新的結(jié)果。計算機軟硬件的發(fā)展日新月異,使得計算機教學(xué)沒有固定的教學(xué)內(nèi)容和教學(xué)模式,而程序設(shè)計作為一門開闊學(xué)生視野、提高數(shù)據(jù)訪問能力的課程,要求學(xué)生必須具有極強的動手能力,因此面向非計算機專業(yè)的程序設(shè)計課程可以作為培養(yǎng)大學(xué)生創(chuàng)新能力的工具,幫助學(xué)生在學(xué)習的過程中獨立提出新問題、新思路、新方法、新見解。
1學(xué)生創(chuàng)新能力培養(yǎng)的制約因素
1.1教學(xué)內(nèi)容滯后
目前存在多種程序設(shè)計語言,并且不斷有新的程序設(shè)計語言被設(shè)計出來,集成化的快速開發(fā)工具也層出不窮,而高校中非計算機專業(yè)主要采用C語言作為程序設(shè)計課程的學(xué)習語言。對于一些工科專業(yè)(比如自動化、通信),C語言的學(xué)習存在必要性,但對大多數(shù)無需底層程序設(shè)計的專業(yè)而言,C語言的教學(xué)只是進行程序設(shè)計理論的學(xué)習,而學(xué)生學(xué)習完成后,離解決實際問題還有較大的差距,教學(xué)過程過分集中于具體語法的掌握,讓學(xué)生覺得非??菰?難以吸引學(xué)生的學(xué)習興趣。計算機基礎(chǔ)課程教學(xué)中的一些教師忽視了對新的程序設(shè)計語言、開發(fā)環(huán)境和編程思想的了解和掌握,導(dǎo)致教學(xué)內(nèi)容多年不變。教師對教學(xué)內(nèi)容本身不進行創(chuàng)新,何來引導(dǎo)學(xué)生進行創(chuàng)新?
1.2教學(xué)方式老套
目前,程序設(shè)計課程一般采用課堂教學(xué)和實驗上機兩個教學(xué)環(huán)節(jié),課堂教學(xué)以教師講授知識點為主,而實驗課程是學(xué)生針對一些知識點進行上機驗證,這種教學(xué)方式最后一般采用理論考試成績作為最重要的考核方式,這種教學(xué)方式對動手能力強,具有創(chuàng)新精神,不肯死記硬背的學(xué)生是不公平的,不利于培養(yǎng)學(xué)生的創(chuàng)新精神。
1.3理論與實踐脫節(jié)
高校程序設(shè)計課程重理論輕實踐,即使安排了大量的實驗課程,實驗課程的內(nèi)容也脫離現(xiàn)實。學(xué)生可以學(xué)好理論課,并具有一定的編寫程序的能力,但是一遇到編寫程序解決實際問題時就無從下手。為了改善這種局面,我們不僅要增加實驗課程的學(xué)時,還要對現(xiàn)有的實驗教學(xué)內(nèi)容進行改革,從現(xiàn)實生活中抽取實例,讓學(xué)生進行練習,在實踐中培養(yǎng)學(xué)生的創(chuàng)新能力。
2培養(yǎng)創(chuàng)新能力的教學(xué)改革
針對上述制約因素,我們在實際教學(xué)過程中進行了四個方面的改革,以培養(yǎng)學(xué)生的創(chuàng)新能力。
2.1教學(xué)內(nèi)容的改革
(1) 程序設(shè)計語言的選擇
目前,我校理工專業(yè)學(xué)生均以C語言作為程序設(shè)計教學(xué)語言,雖然C語言本身具有很多的優(yōu)點,但作為非計算機專業(yè)學(xué)生(如我校的管理、數(shù)學(xué)、物理、土木、建筑、化工專業(yè)的學(xué)生)的程序設(shè)計語言存在兩點不足:(1)C語言開發(fā)的程序運行在DOS環(huán)境,運行結(jié)果界面單一,教學(xué)過分集中于具體語法的掌握,讓學(xué)生覺得非常枯燥,難以吸引學(xué)生的學(xué)習興趣;(2)非計算機專業(yè)學(xué)生學(xué)習程序設(shè)計語言是為了能夠編寫快速處理信息并將結(jié)果進行可視化展現(xiàn),這些需要編寫的程序都是Windows環(huán)境下的程序,而C語言的學(xué)習雖然掌握了程序設(shè)計的基本理論,但對面向?qū)嶋H應(yīng)用的程序編寫還有較大的差距,因此我們選擇C#最為程序設(shè)計課程的教學(xué)語言。C#是Microsoft開發(fā)的最新的程序設(shè)計語言,支持面向?qū)ο蟮某绦蛟O(shè)計方法,有完善的集成開發(fā)環(huán)境,可以用來開發(fā)各種類型(窗體程序、Web程序、數(shù)據(jù)庫程序、網(wǎng)絡(luò)程序)、不同規(guī)模和復(fù)雜程度的應(yīng)用程序。選擇C#語言,學(xué)生不僅可以學(xué)習程序設(shè)計的理論,還可以快速開發(fā)面向應(yīng)用的Windows程序,開發(fā)出有意義、容易吸引學(xué)生的應(yīng)用程序,讓學(xué)生覺得這是一門可以解決實際問題的課程,激發(fā)學(xué)生學(xué)習熱情。
(2) 教學(xué)內(nèi)容的分層
教學(xué)內(nèi)容分為兩個層次:基礎(chǔ)知識和核心實例?;A(chǔ)知識的內(nèi)容要求簡潔,便于學(xué)生快速掌握,比如窗體中直線、圓的繪制,讓學(xué)生實現(xiàn)核心實例時覺得基礎(chǔ)知識點比較熟悉,以降低學(xué)生對核心實例陌生程度。核心實例程序是面向?qū)嶋H的應(yīng)用程序,教師對任務(wù)進行分解,講解如何逐步完成整個任務(wù),讓學(xué)生體會解決實際問題的具體過程。比如“五子棋”中棋譜和棋子的繪制,不僅需要分別使用繪制直線和繪制的基本知識,還需要窗體發(fā)生改變后重繪棋譜、通過鼠標單擊的位置決定棋子繪制位置的知識。由于核心實例程序比較復(fù)雜,通過一次教學(xué)使學(xué)生掌握存在困難,因此教師需要制作詳細的課件,將核心實例分解為子任務(wù),指導(dǎo)學(xué)生一步步實現(xiàn)子任務(wù)的功能。
2.2教學(xué)方式的改革
教學(xué)實踐中引入“任務(wù)驅(qū)動”模式,“任務(wù)驅(qū)動”是一種建立在建構(gòu)主義教學(xué)理論基礎(chǔ)上的教學(xué)法,讓學(xué)生在一個典型任務(wù)的驅(qū)動下展開學(xué)習,引導(dǎo)學(xué)生由簡到繁、由易到難、循序漸進地完成一系列任務(wù),將教材中的零散實例匯聚為核心實例。比如將簡單控件(按鈕、文本框、標簽框、單選按鈕等)的使用匯聚到基于窗體的計算器的設(shè)計。教師對核心實例的子任務(wù)分解,對功能實現(xiàn)進行詳細的講解,并實際使用Visual Studio2005進行代碼實現(xiàn)。通過核心實例的教學(xué)幫助學(xué)生提高分析問題、解決問題的能力。
核心實例的選擇必須從對學(xué)生的吸引力和實現(xiàn)難度兩個角度考慮。源于學(xué)生現(xiàn)實生活中的核心實例能夠吸引學(xué)生興趣,比如簡單游戲、個人信息管理、網(wǎng)絡(luò)訪問等方面的小應(yīng)用,而且也可以讓學(xué)生看到自己學(xué)習的技能能干有意義的事情。吸引力強的核心實例能激發(fā)學(xué)生的挑戰(zhàn)困難的決心和斗志,讓學(xué)生真正做到主動學(xué)習。核心實例的難度是一個必須考慮現(xiàn)實的問題,難度過高會打擊學(xué)習積極性,而難度過低對學(xué)生動手能力的提高意義不大。核心實例實現(xiàn)難度的設(shè)置分為基本要求和高級要求兩個層次,對于編程能力不強的學(xué)生,要求實現(xiàn)基本要求,而對具有較強編程能力的學(xué)生,要求掌握高級要求,并進行相應(yīng)的獎勵。例如教學(xué)過程開始時,我們構(gòu)建了一個大型的任務(wù):聯(lián)機對戰(zhàn)五子棋。這樣的任務(wù)對計算機專業(yè)學(xué)生難度較低,而對非計算機專業(yè)的學(xué)生還是有一定挑戰(zhàn)性的,并且能夠吸引教學(xué)班中大多數(shù)學(xué)生的興趣。完成該任務(wù)涉及數(shù)組的使用、程序的控制結(jié)構(gòu)、窗體和控件的使用、圖形繪制、網(wǎng)絡(luò)訪問等多個方面的子任務(wù),而每個子任務(wù)又是一個小的核心實例,實現(xiàn)這些小的核心實例都需要學(xué)習相應(yīng)章節(jié)的知識并進行綜合應(yīng)用。
2.3實驗教學(xué)的改革
課堂教學(xué)中,教師把各個知識點串起來,并通過核心實例的講解提高學(xué)生解決問題的能力,但是程序編寫能力的培養(yǎng)不可能只靠課堂教學(xué)實現(xiàn),還必須大力加強動手實踐環(huán)節(jié)。相對于課堂教學(xué),實驗教學(xué)環(huán)節(jié)顯得更為重要,將實驗分為基礎(chǔ)知識點練習和綜合實例練習,但基礎(chǔ)知識點的練習是為綜合實例的實現(xiàn)進行知識儲備。
實驗內(nèi)容應(yīng)該面向?qū)嶋H應(yīng)用,分為個人實驗和小組實驗兩類。個人實驗鍛煉每個學(xué)生獨立解決問題的能力,實驗題目難度適中。小組實驗鍛煉學(xué)生的寫作能力,實驗內(nèi)容由學(xué)生自己設(shè)計,但項目實現(xiàn)的功能由教師指定,難度由教師控制,應(yīng)該有較大的難度,需要學(xué)生超越書本,查閱新知識解決問題。小組實驗采用競賽方式,以完成時間和項目質(zhì)量作為評價指標,項目完成后,每個組對自己的項目進行展示和說明,并回答其他同學(xué)的提問。
2.4考核方式的改革
為培養(yǎng)學(xué)生的創(chuàng)新能力,我們拋棄傳統(tǒng)的理論考試模式,采用上機直接編程的考核方法??碱}是一個小規(guī)模的應(yīng)用程序,學(xué)生必須在指定的時間內(nèi)獨立完成,教師根據(jù)實現(xiàn)的功能和完成的質(zhì)量進行評分??紤]到非計算機專業(yè)的學(xué)生不可能花大量的時間進行程序設(shè)計,如果直接采用上機編程考試,會給學(xué)生帶來巨大的壓力,因此我們在考試之前給學(xué)生出20道較高難度的題目,比如冒泡排序中動態(tài)交換過程的可視化展示、能夠?qū)崿F(xiàn)加、減、乘、除功能的計算器實現(xiàn)、用戶注冊器的實現(xiàn)等。每道題目列出應(yīng)掌握的知識點和正確答案(完成項目),這些知識點將會出現(xiàn)在考試項目中。這些程序復(fù)雜,篇幅巨大,機械記憶行不通,因此考核可以全面檢測學(xué)生的動手能力,促使學(xué)生平時就要多上機、多實踐,把創(chuàng)新能力的提高融入日常學(xué)習中。
3結(jié)束語
C#作為程序教學(xué)語言,給學(xué)生提供了快速編寫Windows程序、解決實際問題的工具;核心實例讓學(xué)生理解解決實際問題的過程和編程方法;實驗環(huán)節(jié)讓學(xué)生自由發(fā)揮,挖掘潛在的創(chuàng)造因子;考核方式讓動手能力強、主動學(xué)習、勇于創(chuàng)新的學(xué)生獲得積極地肯定,激勵學(xué)生的創(chuàng)新欲望。通過這幾方面的改革,程序設(shè)計課程可以作為培養(yǎng)非計算機專業(yè)學(xué)生創(chuàng)新能力的工具,讓學(xué)生的創(chuàng)新思維在學(xué)習過程中獲得全面提升,實現(xiàn)學(xué)生素質(zhì)的提高。
參考文獻:
[1] 趙利敏. 淺談高校計算機教學(xué)中學(xué)生創(chuàng)新能力的培養(yǎng)[J]. 教育與職業(yè),2007(3):110-111.
[2] 孟淑琴,劉芬. 基于創(chuàng)新能力培養(yǎng)的計算機基礎(chǔ)教學(xué)[J]. 中國職業(yè)技術(shù)教育,2006(30):48-49.
[3] 李芳,崔尚森,徐麗. 計算機教育中學(xué)生創(chuàng)新能力培養(yǎng)的探討[J]. 教育與職業(yè),2007(17):121-122.
[4] 趙飛,荊光輝,張潤澤. 如何培養(yǎng)大學(xué)新生計算機語言編程能力[J]. 計算機教育,2007(5):13-15.