張志青 曾細(xì)平 許燦 盧道設(shè)
摘 要:“程序設(shè)計(jì)基礎(chǔ)”這門課程是計(jì)算機(jī)科學(xué)專業(yè)的平臺(tái)課程之一。我們對課程教學(xué)實(shí)踐中的有關(guān)問題進(jìn)行了探討,圍繞教學(xué)內(nèi)容的組織、重點(diǎn)與難點(diǎn)的處理、實(shí)踐環(huán)節(jié)等方面的內(nèi)容進(jìn)行了有關(guān)探討,對該課程的教學(xué)改革提出了許多建設(shè)性的意見。
關(guān)鍵詞:程序設(shè)計(jì)基礎(chǔ);實(shí)踐教學(xué);改革探討
中圖分類號(hào):G423.7 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言(Introduction)
“程序設(shè)計(jì)基礎(chǔ)”是計(jì)算機(jī)專業(yè)的專業(yè)基礎(chǔ)主干課程,為計(jì)算機(jī)科學(xué)與技術(shù)、網(wǎng)絡(luò)工程和軟件工程方向的后繼專業(yè)課學(xué)習(xí)和獨(dú)立學(xué)習(xí)計(jì)算機(jī)高級(jí)語言打下基礎(chǔ)。配套的課程有“程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)”,該課程配合“程序設(shè)計(jì)基礎(chǔ)”理論課教學(xué),“程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)”課程主要包括結(jié)構(gòu)化程序設(shè)計(jì)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、共用體及文件等實(shí)驗(yàn)內(nèi)容。本課程擬進(jìn)行的實(shí)驗(yàn),將充實(shí)課程教學(xué)的內(nèi)容,提高學(xué)生的應(yīng)用設(shè)計(jì)能力,它為學(xué)生學(xué)習(xí)“面向?qū)ο蟪绦蛟O(shè)計(jì)”“數(shù)據(jù)結(jié)構(gòu)”等其他與程序設(shè)計(jì)有關(guān)的后繼課程打下基礎(chǔ)。
“程序設(shè)計(jì)基礎(chǔ)”是教學(xué)難度較大的語言類課程。作為計(jì)算機(jī)程序的入門課程,是學(xué)生進(jìn)一步接觸計(jì)算機(jī)學(xué)科領(lǐng)域知識(shí)的首門課程,因此,學(xué)生往往對理解程序設(shè)計(jì)的思維方式有一定的困難,對教學(xué)內(nèi)容難以很好的消化,對掌握良好的程序設(shè)計(jì)方法產(chǎn)生畏懼。通過本課程的學(xué)習(xí),應(yīng)讓學(xué)生了解計(jì)算機(jī)高級(jí)語言設(shè)計(jì)的特點(diǎn),熟練掌握結(jié)構(gòu)化程序設(shè)計(jì)的方法,掌握程序設(shè)計(jì)的系統(tǒng)分析方法和將一般的數(shù)學(xué)模型轉(zhuǎn)換為程序的步驟以及編程設(shè)計(jì)方法,使學(xué)生初步具有獨(dú)立分析和獨(dú)立設(shè)計(jì)的能力。
關(guān)于課程教學(xué)實(shí)踐中的有關(guān)問題討論,已經(jīng)有若干論述[1,2]。本文就該課題進(jìn)行更深入的探討,提出以下見解。
2 課程的目標(biāo)定位與教學(xué)設(shè)想(Targeting andcurriculum ideas)
“程序設(shè)計(jì)基礎(chǔ)”課程的教學(xué)基本內(nèi)容,包含了過程型高級(jí)程序設(shè)計(jì)語言的基本內(nèi)容,及其程序設(shè)計(jì)方法學(xué)、算法基礎(chǔ)與數(shù)據(jù)結(jié)構(gòu)等相關(guān)方面的初步內(nèi)容。該課程定位為計(jì)算機(jī)專業(yè)的專業(yè)平臺(tái)課。本課程的培養(yǎng)目標(biāo)是使學(xué)生掌握程序設(shè)計(jì)的基本思想和方法,并具有靈活應(yīng)用這些思想和方法解決實(shí)際問題的能力。使學(xué)生具有:“較強(qiáng)的程序設(shè)計(jì)能力、良好的程序設(shè)計(jì)風(fēng)格、優(yōu)秀的團(tuán)隊(duì)精神”。在教學(xué)實(shí)踐中,根據(jù)本課程教學(xué)實(shí)施過程中存在的問題,以及課程自身的定位,應(yīng)該重點(diǎn)考慮以下兩個(gè)方面的問題:
(1)程序設(shè)計(jì)能力的培養(yǎng)。建立良好的編程編寫能力和實(shí)踐訓(xùn)練體系,使大多數(shù)學(xué)生能達(dá)到應(yīng)有的基本編程訓(xùn)練,并且使那些基礎(chǔ)較好的學(xué)生能得到更加多的訓(xùn)練機(jī)會(huì)。
(2)教學(xué)內(nèi)容的傳授和組織。合理地組織好教學(xué)內(nèi)容,使之更好地反映課程教學(xué)的重點(diǎn)和學(xué)生對程序設(shè)計(jì)方法的認(rèn)知規(guī)律;從而進(jìn)一步解決教學(xué)內(nèi)容中的重點(diǎn)和難點(diǎn),使學(xué)生對有關(guān)知識(shí)點(diǎn)能較好地理解。
3 組織教學(xué)中的探究性教學(xué)研究(Teaching and research organization teaching inquiry)
探究性學(xué)習(xí)是以培養(yǎng)學(xué)生探索能力、創(chuàng)新意識(shí)、合作精神為目的的學(xué)習(xí)方式,該模式使學(xué)生積極、主動(dòng)地嘗試探究,并從中獲得大量的、各種各樣的體驗(yàn),從而提高綜合分析問題和解決問題能力,培養(yǎng)發(fā)散思維能力和勇于探索的良好個(gè)性品格,激發(fā)學(xué)生學(xué)習(xí)興趣,促進(jìn)學(xué)生創(chuàng)新能力的發(fā)展及學(xué)習(xí)效果的提高。教師在課堂教學(xué)設(shè)計(jì)中要經(jīng)常引導(dǎo)學(xué)生深入挖掘教材中每個(gè)知識(shí)點(diǎn)的背景,我們可以應(yīng)用多媒體技術(shù)配合教學(xué),使學(xué)生通過觀察、類比、聯(lián)想、拓展,發(fā)現(xiàn)新問題,對知識(shí)進(jìn)行深化和再創(chuàng)造。在思維活動(dòng)的教學(xué)中,問題是誘發(fā)思維的直接動(dòng)因,創(chuàng)設(shè)問題情景,把學(xué)生置于問題之中,激發(fā)學(xué)生興趣,誘發(fā)學(xué)生探究動(dòng)機(jī)。
“程序設(shè)計(jì)基礎(chǔ)”這門課程教學(xué)內(nèi)容的組織方式采取這種模式進(jìn)行,可以取得意想不到的效果。如我們在教學(xué)過程中可嘗試以程序語言知識(shí)為主線的方式進(jìn)行探究式進(jìn)行教學(xué),這種方式主要是根據(jù)語言的表達(dá)功能,同時(shí)考慮到程序設(shè)計(jì)的相關(guān)學(xué)習(xí)進(jìn)程,以較完整的語言表達(dá)模塊為基礎(chǔ)進(jìn)行的教學(xué)探究。程序設(shè)計(jì)語言的核心主要是兩種表達(dá)功能:數(shù)據(jù)表達(dá)與控制表達(dá)。為了實(shí)現(xiàn)使用有限的語法表達(dá)客觀世界中的各式各樣的數(shù)據(jù)類型,程序設(shè)計(jì)語言在提供標(biāo)準(zhǔn)數(shù)據(jù)類型的同時(shí),也提供了構(gòu)造數(shù)據(jù)類型的相關(guān)手段,比如數(shù)組、結(jié)構(gòu)、指針等;在控制表達(dá)語句方面,則提供了相關(guān)語句級(jí)控制(如分支、循環(huán))和模塊級(jí)控制(如函數(shù))。所以,以語言知識(shí)作為主線的教學(xué)探究組織方式,一般是以上述語言表達(dá)模塊為單位,并且考慮程序設(shè)計(jì)的學(xué)習(xí)進(jìn)程來進(jìn)行組織教學(xué)內(nèi)容。典型教學(xué)內(nèi)容的組織路線是:概論—數(shù)據(jù)類型與表達(dá)式(標(biāo)準(zhǔn)類型)—分支—循環(huán)—數(shù)組—函數(shù)—指針—結(jié)構(gòu)—文件。
4 處理好教學(xué)中的重點(diǎn)與難點(diǎn)(Deal with importantand difficult teaching)
本課程重點(diǎn)為:算法設(shè)計(jì)、“自頂向下、逐步求精”的程序設(shè)計(jì)思想。包括:程序的流程控制、模塊化程序設(shè)計(jì)(函數(shù)的定義,函數(shù)間的數(shù)據(jù)傳遞,參數(shù)結(jié)合規(guī)則等)、數(shù)據(jù)組織(批量數(shù)據(jù)組織、表單數(shù)據(jù)組織、動(dòng)態(tài)數(shù)據(jù)組織)。
本課程難點(diǎn)為:與指針相關(guān)的內(nèi)容,包括變量指針,指向數(shù)組的指針,指針數(shù)組,指向指針的指針,文件指針,函數(shù)指針,返回指針值的函數(shù),指針作函數(shù)參數(shù),基于指針實(shí)現(xiàn)的動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)等。
針對上述重點(diǎn)和難點(diǎn),從思維方法入手,引導(dǎo)學(xué)生獨(dú)立思維,達(dá)到提高學(xué)生思維能力和程序設(shè)計(jì)能力的目的。教師應(yīng)該從學(xué)生的角度體會(huì)“學(xué)”之困惑,不斷反思“教”之缺陷,才能因材施教,明了如何通過“教”幫助學(xué)生學(xué)習(xí),樹立教育以人為本的思想。因此,教師不但要研究教學(xué)內(nèi)容,而且更要研究教學(xué)的對象——學(xué)生,根據(jù)學(xué)生的學(xué)習(xí)特點(diǎn),研究教學(xué)內(nèi)容傳授中重點(diǎn)和難點(diǎn)的解決辦法。授課過程中突出算法概念,對C語言采取“有所取、有所不取”的策略,對與講授程序設(shè)計(jì)方法密切相關(guān)部分重點(diǎn)介紹;對與講授程序設(shè)計(jì)方法關(guān)系不大的部分根本不介紹;注意由淺入深地介紹程序設(shè)計(jì)知識(shí),把難點(diǎn)化解和分散到各個(gè)章節(jié)中去。以多媒體為主,板書為輔,并現(xiàn)場編程演示等多種教學(xué)手段相互補(bǔ)充,使課堂教學(xué)與實(shí)驗(yàn)教學(xué)有機(jī)結(jié)合。為了及時(shí)解決學(xué)生學(xué)習(xí)中遇到的問題,調(diào)動(dòng)和保護(hù)學(xué)生的學(xué)習(xí)積極性,我們充分發(fā)揮網(wǎng)絡(luò)的優(yōu)勢,借助于課程網(wǎng)站等網(wǎng)絡(luò)教學(xué)方式作為常規(guī)教學(xué)的補(bǔ)充,拓展“教”與“學(xué)”的空間。endprint