時間:2023-06-01 09:46:01
開篇:寫作不僅是一種記錄,更是一種創(chuàng)造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇c程序設(shè)計,希望這些內(nèi)容能成為您創(chuàng)作過程中的良師益友,陪伴您不斷探索和進步。
關(guān)鍵詞:實驗教學(xué); 教學(xué)方法; 程序設(shè)計
1 引言
C程序設(shè)計是計算機專業(yè)學(xué)習(xí)中的一門非常重要的基礎(chǔ)課程, 是學(xué)生學(xué)習(xí)C++、VC、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)等專業(yè)課的先導(dǎo)課程。C 程序設(shè)計主要培養(yǎng)學(xué)生正確的算法設(shè)計以及編程能力,培養(yǎng)學(xué)生結(jié)合所學(xué)知識解決實際問題的能力和正確的編程思維方式。因此, 提高C 程序設(shè)計的教學(xué)質(zhì)量對計算機專業(yè)學(xué)生的學(xué)習(xí)至關(guān)重要。本文提出以下幾個建議, 以供大家參考與探討。
2 加強實驗教學(xué), 激發(fā)學(xué)生學(xué)習(xí)的興趣
興趣是激發(fā)學(xué)生主動學(xué)習(xí)C 語言的關(guān)鍵, 而加強實驗教學(xué)是激發(fā)學(xué)生學(xué)習(xí)的興趣一種重要方式。計算機專業(yè)是一個實踐性非常強的專業(yè), 上機實驗是學(xué)好C 語言程序設(shè)計的一條捷徑。在實驗教學(xué)中, 通過上機運行具體的實例程序,學(xué)生便會立刻感覺到C 語言的神奇, 有了好奇心, 學(xué)生才能使領(lǐng)略C語言的魅力,從而激發(fā)了學(xué)生的學(xué)習(xí)興趣。如果再結(jié)合一些趣味性的實例,讓學(xué)生從中體會到編程的快樂, 從而達到學(xué)生主動學(xué)習(xí)的目的。
3 先整體后局部的教學(xué)模式
C 語言程序設(shè)計的初學(xué)者在學(xué)習(xí)的過程中, 經(jīng)常會因為學(xué)習(xí)繁多的知識要點而陷入一種誤區(qū)“鉆牛角尖”。C 語言本身具有非常靈活、知識點非常繁多的特點, 一開始很多學(xué)生什么都看、都學(xué), 什么都研究的過細, 這導(dǎo)致這些學(xué)生不知道學(xué)的什么, 不知道如何閱讀程序和組織程序, 學(xué)生很難抓住C 語言程序設(shè)計學(xué)習(xí)的重點和構(gòu)建程序設(shè)計的思想。為了減少學(xué)生的誤區(qū), 本人在教學(xué)中, 先給學(xué)生搭建整體的程序結(jié)構(gòu)與程序思想, 然后在學(xué)生領(lǐng)會程序的設(shè)計思想后再局部細化每一個知識點, 使學(xué)生逐步積累,在應(yīng)用去理解和體會。這樣會避免學(xué)生因C 語言靈活性大, 難度大, 難理解, 難記憶的特點, 而失去學(xué)習(xí)C 程序設(shè)計的信心和興趣。在教學(xué)過程中, 把細節(jié)的、難于記憶的、枯燥的知識融入到日常的學(xué)習(xí)中, 避免學(xué)生出現(xiàn)死記硬背的現(xiàn)象, 使學(xué)生學(xué)會“學(xué)習(xí)”和查閱資料, 使學(xué)生明白學(xué)習(xí)知識要活學(xué)活用, 從而培養(yǎng)學(xué)生的學(xué)習(xí)能力。
4 培養(yǎng)學(xué)生正確的思維方式
C 語言是一門計算機語言。因此, 它有語言的特點, 如C語言有其自身的詞匯( 標(biāo)識符、關(guān)鍵字、運算符、分隔符、常量、注釋符等) 、語法規(guī)則、語句等。計算機語言又不同于人的自然語言,它有比自然語言更嚴(yán)格的要求, 否則計算機無法編譯、識別、執(zhí)行。針對其特點, 我認為可將C 程序設(shè)計的知識點分為記憶型和靈活應(yīng)用型兩類: 記憶型的如關(guān)鍵字、運算符、優(yōu)先級等; 靈活應(yīng)用型的如數(shù)學(xué)模型、數(shù)據(jù)結(jié)構(gòu)、算法、程序設(shè)計方法等。這里關(guān)鍵注意兩點, 一點是以算法的表達形式描述出解決問題的方法、步驟; 另一點是使學(xué)生明確計算機如何執(zhí)行一個C 程序。這需要培養(yǎng)學(xué)生正確的編程思想和思維方式, 以“計算機意識”去思考問題。首先將你要用自然語言描述的解決問題的方法步驟( 即算法) 轉(zhuǎn)換成算法表形式( 如N- S 流程圖) , 然后再將其轉(zhuǎn)換成C 程序, 這種轉(zhuǎn)換的思想、規(guī)則十分重要, 使學(xué)生逐漸縮小這種自然語言與計算機語言的鴻溝。
算法設(shè)計是程序設(shè)計課程的教學(xué)重點, 而將實際問題抽象為數(shù)學(xué)模型是解決問題的重點, 解決了這兩方面的問題就達到了培養(yǎng)和提高學(xué)生分析和解決問題的能力的目標(biāo), 但對于C 語言的初學(xué)者來說, 如求一元二次方程的解, 排序、查找等典型算法, 漢諾塔、百錢百雞、鏈表等典型問題, 這些算法對于計算機專業(yè)的學(xué)生來說,其分析與設(shè)計的過程基本能夠理解。如果將這些算法編寫為程序似乎更難一些, 抽象一些, 甚至感覺無從下手。這就是自然語言與計算機語言之間的鴻溝。如何才能將實際問題的解決辦法轉(zhuǎn)換為計算機能夠識別、運行的程序呢? 因此, 本人在教學(xué)中, 采用對算法精講多練, 采用流程圖等形式, 使學(xué)生逐步加深對算法與程序之間的抽象轉(zhuǎn)換的理解, 從而培養(yǎng)學(xué)生正確的編程思維模式, 達到了良好的效果。
5 采用多媒體教學(xué)和傳統(tǒng)教學(xué)相結(jié)合的啟發(fā)式教學(xué)
教師應(yīng)當(dāng)轉(zhuǎn)變教學(xué)理念, 改變填鴨式的課堂教學(xué)方式。應(yīng)該采取啟發(fā)式、互動式的教學(xué)方法來活躍課堂氣氛, 以引導(dǎo)學(xué)生積極思考, 主動學(xué)習(xí)。啟發(fā)式教學(xué)是在教師全面掌握講授內(nèi)容的前提下,在講解新的講授內(nèi)容前,通過對以前學(xué)習(xí)的相關(guān)內(nèi)容的復(fù)習(xí),引出新的講授內(nèi)容。例如在講解分支程序設(shè)計章節(jié)時,應(yīng)首先啟發(fā)學(xué)生使回憶一下順序結(jié)構(gòu)的執(zhí)行過程,進而引出分支結(jié)構(gòu)在C 程序設(shè)計中的實現(xiàn)原理和編程思路。而互動式教學(xué)是教師駕馭講臺能力的具體體現(xiàn)。一個教師站在講臺上, 要不斷地掃視學(xué)生,觀察學(xué)生的表情,了解學(xué)生的接受程度,并能及時地調(diào)整教學(xué)的進度和步驟,允許學(xué)生在不懂的時候隨時提問,真正實現(xiàn)課堂上的互動, 構(gòu)造自然、和諧、歡快的課堂氣氛, 使學(xué)生主動思考, 自然接受, 其教學(xué)的效果必然會顯著地提高。對于難度大、有顯著的特點的教學(xué)內(nèi)容, 可采用對比的教學(xué)方法, 以加深學(xué)生的理解。
6 結(jié)束語
通過這樣教學(xué)方式, 本人在實踐教學(xué)中取得了良好的教學(xué)果。C 程序設(shè)計的學(xué)習(xí)對學(xué)生后續(xù)專業(yè)課程的學(xué)習(xí)非常重要, 因此C 程序設(shè)計的教學(xué)至關(guān)重要。只要我們不斷加強理論與實踐的探索, 在實際的教學(xué)過程中根據(jù)不同對象摸索適應(yīng)不同群體的教學(xué)方法, 就能不斷提高教序質(zhì)量, 為學(xué)生的專業(yè)學(xué)習(xí)夯實基礎(chǔ)。
參考文獻:
[1]譚浩強.C 程序設(shè)計(第3 版)[M].北京: 清華大學(xué)出版社,2003.
鐘 實
(江西科技學(xué)院)
[摘 要]C語言程序設(shè)計課程是計算機專業(yè)教育的重要組成部分。將探究教學(xué)引入C語言程序設(shè)計教學(xué)中,不僅可以提高學(xué)生學(xué)習(xí)的興趣,調(diào)動教師教學(xué)的
熱情,也豐富了探究教學(xué)的理論與實踐。具體分析并探討了C語言程序設(shè)計探究教學(xué)的實施目標(biāo)、實施條件、教學(xué)情境的創(chuàng)設(shè)、探究形式、教學(xué)評價等問題。
[關(guān)鍵詞]C語言程序設(shè)計 探究教學(xué) 實施目標(biāo)
一、 C語言程序設(shè)計探究教學(xué)實施的目標(biāo):情感目標(biāo)、能力目標(biāo)和認知目
標(biāo)
1、體驗C語言程序設(shè)計的編程思想,激發(fā)和保持對C語言程序設(shè)計課程的
求知欲,形成積極主動地學(xué)習(xí)和參與C語言程序設(shè)計課程探究活動的態(tài)度。
2、能辯證地認識C語言程序設(shè)計對社會發(fā)展、科技進步和日常生活學(xué)習(xí)的
影響。
3、獲得親自參與研究探索的積極體驗、培養(yǎng)嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度。
4、能從日常生活、學(xué)習(xí)中發(fā)現(xiàn)或歸納可以利用C語言程序設(shè)計解決的問題,
通過問題分析確定程序功能。
5、能根據(jù)任務(wù)的要求,確定所需信息的類型和來源,并鑒別信息的真實性、
準(zhǔn)確性和相關(guān)性。
6、掌握計算機程序的基本概念,理解并掌握C語言程序設(shè)計語言的基本知
識,包括語句、數(shù)據(jù)類型、變量、常量、表達式、函數(shù)等,熟悉語言的語法規(guī)則,熟
悉計算機程序執(zhí)行的基本過程。
7、了解C語言程序設(shè)計語言,掌握編寫程序、編譯程序、連接程序以及程序
開發(fā)環(huán)境等基本知識,掌握調(diào)試、運行程序的基本方法與技巧。
二、C語言程序設(shè)計探究教學(xué)實施的條件
1、掌握一定的計算機操作基礎(chǔ)
C語言程序設(shè)計課程由于其學(xué)科自身的特點,需要在計算機上調(diào)試程序,
所以要求學(xué)生具有一定的計算機操作知識,如:開關(guān)機、鍵盤和鼠標(biāo)的使用、文
件的建立與查找、常用軟件的使用等。
2、良好的C語言程序設(shè)計認知結(jié)構(gòu)
認知結(jié)構(gòu)就是學(xué)生頭腦里的知識結(jié)構(gòu),是學(xué)習(xí)者觀念的全部內(nèi)容和組織。
奧蘇伯爾的認知結(jié)構(gòu)理論是針對新學(xué)習(xí)內(nèi)容的影響(即遷移)提出的,良好的認
知結(jié)構(gòu)有利于知識的提取和正向遷移。C語言程序設(shè)計探究教學(xué)強調(diào)在已有知
識經(jīng)驗上的主動建構(gòu),面對新的問題和任務(wù),需要學(xué)生及時從頭腦中提取信息,
建立新舊知識間的聯(lián)系,在已有C語言程序設(shè)計知識的基礎(chǔ)上思考解決新問題
的辦法,并試圖將新知識納入自己的認知結(jié)構(gòu)中。
3 、良好的探究環(huán)境
良好的探究環(huán)境是學(xué)生順利進行探究的保證,至少包含兩方面的內(nèi)容:(1)
要有充足的探究時間和靈活的探究條件。探究時間應(yīng)該根據(jù)學(xué)習(xí)任務(wù)進行合理
安排,應(yīng)該考慮到學(xué)生假設(shè)錯誤時所耽誤的時間以及討論交流所需要的時間。
探究教學(xué)中可能需要查閱大量的資料,教師還應(yīng)該準(zhǔn)備書籍、網(wǎng)絡(luò)等輔助資源。
(2)學(xué)生在探究學(xué)習(xí)的時候不能有太多壓力,不同的學(xué)生由于其自身的因素不可
能以相同的速度學(xué)習(xí),所以教師在進行評價的時候也應(yīng)該因人而異,應(yīng)該為每
個學(xué)生提供充分的思考機會和時間,讓每個學(xué)生都能以自己的進度進行探索,
并在此過程中感受到樂趣。
三、C語言程序設(shè)計探究教學(xué)情境的創(chuàng)設(shè)
心理學(xué)研究表明,恰當(dāng)、適宜的環(huán)境能有效激發(fā)人的熱烈情緒,提高活動的
質(zhì)量和效果。教學(xué)情境是指教師人為創(chuàng)造的“典型場景”,創(chuàng)設(shè)目的在于引出教
學(xué)任務(wù),將學(xué)生的注意力吸引到學(xué)習(xí)任務(wù)中來。教師把將要學(xué)習(xí)的C語言程序
設(shè)計知識通過一定的情境呈現(xiàn)給學(xué)生,使得學(xué)生認知結(jié)構(gòu)與周圍環(huán)境不平衡,
引起他們對學(xué)習(xí)目標(biāo)的注意和興趣,并通過探究活動把學(xué)生過去的活動和將來
的活動聯(lián)系在心理學(xué)研究表明,恰當(dāng)、適宜的環(huán)境能有效激發(fā)人的熱烈情緒,提
高活動的質(zhì)量和效果。教學(xué)情境是指教師人為創(chuàng)造的“典型場景”,創(chuàng)設(shè)目的在
于引出教學(xué)任務(wù),將學(xué)生的注意力吸引到學(xué)習(xí)任務(wù)中來。教師把將要學(xué)習(xí)的C
語言程序設(shè)計知識通過一定的情境呈現(xiàn)給學(xué)生,使得學(xué)生認知結(jié)構(gòu)與周圍環(huán)境
不平衡,引起他們對學(xué)習(xí)目標(biāo)的注意和興趣,并通過探究活動把學(xué)生過去的活
動和將來的活動聯(lián)系在一體。探究教學(xué)情境的創(chuàng)設(shè)應(yīng)做到:(1)創(chuàng)設(shè)的情境是為
C語言程序設(shè)計教學(xué)服務(wù)的,要以C語言程序設(shè)計探究教學(xué)目標(biāo)為依據(jù)。(2)探究
情境要接近學(xué)生的真實生活經(jīng)驗,能夠吸引學(xué)生的注意力,激發(fā)他們的認知沖
突和求知欲。(3)學(xué)生在情境中能夠感覺到問題的存在,自然地將新舊知識聯(lián)系
起來。(4)情境中必須包含學(xué)生未知的新內(nèi)容,而且是能夠通過探究掌握的。
四、C語言程序設(shè)計課程中的探究形式
C語言程序設(shè)計課程中開展探究教學(xué)主要有4種形式:探究性提問、探究性
討論、探究性演示和探究性實驗。這4種形式是相輔相承的,而不是孤立存在的,
在C語言程序設(shè)計探究教學(xué)中,需要用到多種形式來構(gòu)成一個完整的探究教學(xué)
過程。C語言程序設(shè)計探究教學(xué)通常都是由探究性提問開始,然后進行探究性
討論、探究性演示或探究性實驗;也可能從探究性演示或探究性實驗開始,在演
示或?qū)嶒灥倪^程中發(fā)現(xiàn)問題,再進行探究性討論。在實際教學(xué)過程中,要根據(jù)學(xué)
習(xí)內(nèi)容和課堂情況靈活地選用這些形式。
五、C語言程序設(shè)計探究教學(xué)評價
教學(xué)評價指依據(jù)一定的標(biāo)準(zhǔn),通過各種策略和相關(guān)資料的收集,對教學(xué)活
動及其效果進行客觀衡量和科學(xué)判定的系統(tǒng)過程。C語言程序設(shè)計探究教學(xué)評
價是對C語言程序設(shè)計探究教學(xué)過程及其影響的測量、分析和評定,評價中我
們更關(guān)注學(xué)生學(xué)習(xí)和成長的過程,尋找適合學(xué)生發(fā)展的學(xué)習(xí)方式,滿足學(xué)生知
識和能力發(fā)展的需要。評價對探究教學(xué)的積極作用是很明顯的,但是如果評價
指標(biāo)制定不合理,或者評價方法的選用、評價結(jié)果的表述不當(dāng),不僅不能達到預(yù)
期效果,還會對學(xué)生的C語言程序設(shè)計學(xué)習(xí)產(chǎn)生消極影響。
參考文獻
[1] 《基礎(chǔ)教育課程改革綱要(試行)》教育部文件,教基[2001]17號.
[2] 保羅 朗格朗.終身教育引論瞰[M].北京:中國對外翻譯出版公司,1985,
p15~31.
[3] 聯(lián)合國教科文組織.學(xué)會生存——教育世界的今天和明天[M].上海:
上海譯文出.
版社,1979,p2.
[4] 張大均。教育心理學(xué)[M].北京:人民教育出版社,2005,p68--71.
[5] 靳玉樂.探究教學(xué)論[M].重慶:西南師范大學(xué)出版社,200l.
作者簡介
鐘實(1986-02)男、民族(漢),籍貫(江西省南昌市),2010畢業(yè)于浙江大學(xué)
[關(guān)鍵詞]C語言程序設(shè)計 改革 實踐
引言
C語言程序設(shè)計課程足以C語言為平臺,使學(xué)生全面了解程序設(shè)計的總體思路、程序沒計的基本算法、C語言的語法規(guī)則以及使用C語言進行構(gòu)化程序沒計的方法,并具有一定的程序設(shè)計和程序調(diào)試的能力,為今后使用C語言解決實際問題打下良好的基礎(chǔ) 由于C語言涉及的概念比較復(fù)雜,規(guī)則繁多,使用靈活,容易出錯,同時該課程又是學(xué)生首先接觸的第一門程序沒計課程,所以很多學(xué)生學(xué)習(xí)起來都感到困難和吃力.并不同程度產(chǎn)生畏懼心理。
在C語言程序設(shè)計的教學(xué)工作中,我們發(fā)現(xiàn),學(xué)生的學(xué)習(xí)熱情不高,更談不上綜合應(yīng)用能力的培養(yǎng)與提高。我們C語言課程教學(xué)組通過對我校C語言程序設(shè)計課程教學(xué)現(xiàn)狀的調(diào)查分析,總結(jié)出了教學(xué)效果較差的主要原因,并從教材內(nèi)容、教學(xué)方法、教學(xué)手段和、上機實踐和考核評價體系五個方面進行了大膽的改革與實踐,并取得了較好的教學(xué)效果。
一、C語言程序設(shè)計課程教學(xué)現(xiàn)狀分析
為了實時掌握學(xué)生的真實學(xué)習(xí)情況,任課教師對學(xué)生進行了問卷調(diào)查。根據(jù)問卷結(jié)果及各位教師的教學(xué)經(jīng)驗,總結(jié)出我校C語言程序設(shè)計課程教學(xué)效果較差的主要原因有以下幾點。
(1)內(nèi)容抽象、枯燥,學(xué)生學(xué)習(xí)興趣度低。相比第一學(xué)期已經(jīng)或多或少有所接觸并有一定基礎(chǔ)的大學(xué)計算機課程而言,第二學(xué)期開設(shè)的程序設(shè)計課程是一種截然不同的全新的課程,出現(xiàn)了大量的新概念、新名詞和新方法。上機時好不容易敲上了一個程序,一運行就會出現(xiàn)一堆錯誤。62.4%的學(xué)生看不懂錯誤提示,84.76%的同學(xué)不會使用單步跟蹤、Watch窗口等基本調(diào)試工具,22.3%的同學(xué)竟然根本不知道這些調(diào)試工具。于是學(xué)生對該課程的學(xué)習(xí)舉步維艱,學(xué)習(xí)的熱情急速降溫。
(2)實用性不強。近80%的同學(xué)認為C語言的語法知識學(xué)了一大堆,但不知道學(xué)這些語法有什么用,和自己的專業(yè)知識有什么聯(lián)系。因此,多年積累下來,對C語言程序設(shè)計課程的普遍看法是:這是一門無用的公共課,混混過去就算了。于是,很多同學(xué)上課不聽講、下課不預(yù)習(xí)、不復(fù)習(xí),周而復(fù)始,形成惡性循環(huán)。
(3)進度過于緩慢。C語言程序設(shè)計每周4學(xué)時,其中,2學(xué)時多媒體教室的課堂教學(xué),2學(xué)時計算中心機房的上機實踐。計算中心機房為多個班級公用,且無屏幕轉(zhuǎn)播設(shè)施,因此教師的教學(xué)僅限于2學(xué)時的課堂教學(xué)。課時太少,加上學(xué)生興趣度低,往往一學(xué)期下來指針剛講了基本概念就結(jié)束了。有些為參加全國計算機等級二級c語言考試而努力學(xué)習(xí)的同學(xué)也因為指針內(nèi)容學(xué)習(xí)太少而難以過關(guān)。
針對上述C語言程序設(shè)計教學(xué)效果差的原因,我中心C語言課程組的各位教師認真研讀了“研究式學(xué)習(xí)”、“CDIO教學(xué)模式”、“計算思維”等理論及各種教學(xué)方法和實踐方式,借鑒了哈工大全國精品課程“C語言程序設(shè)計”課程的先進教學(xué)經(jīng)驗,并結(jié)合各位教師多年的教學(xué)經(jīng)驗,制定了C語言程序設(shè)汁課程教學(xué)體系的改革方案。該教學(xué)體系改革方案從教材內(nèi)容、教學(xué)方法、教學(xué)手段、上機實踐和考核評價體系五個方面展開。
二、編寫優(yōu)質(zhì)配套教材,實施教材改革
我們按照研究性學(xué)習(xí)的內(nèi)涵編寫了《研究式學(xué)習(xí)——C語言程序設(shè)計》教材,目前正在進行面向“計算思維”的新版教材的編寫。該系列教材具備以下特點:
(1) 編寫理念科學(xué)性強
整套教材的編寫以“研究式學(xué)習(xí)”理念為指導(dǎo),研究性學(xué)習(xí)是一種建構(gòu)性的、追求協(xié)商的、尊重個性的、以人為本的“體驗式學(xué)習(xí)”。在2006年的《國家精品課程評估指標(biāo)》中新增了一條指標(biāo):“重視研究性學(xué)習(xí)、探究性學(xué)習(xí)、協(xié)作學(xué)習(xí)等現(xiàn)代教育理念在教學(xué)中的應(yīng)用;能夠根據(jù)課程內(nèi)容和學(xué)生特征,對教學(xué)方法和教學(xué)評價進行設(shè)計。”所以研究性學(xué)習(xí)是以人為本的高等教育價值觀的體現(xiàn),是社會變革和教育發(fā)展的要求,也是精品課程的要求。研究性學(xué)習(xí)的關(guān)鍵是要在學(xué)習(xí)的各個階段提出適當(dāng)?shù)难芯繂栴},以便在學(xué)習(xí)過程中為學(xué)生創(chuàng)造能親臨體驗地進行研究學(xué)習(xí)的平臺,問題的提出貫穿在課堂教學(xué)、實驗教學(xué)、課后作業(yè)、綜合性作業(yè)以及評價的整個教學(xué)過程中。我們自2004年開始就致力于打造C語言程序設(shè)計精品課程,所有的教學(xué)和改革都圍繞該指導(dǎo)思想進行。2007年以C語言程序設(shè)計為主體的“程序設(shè)計與計算機語言”被評為省級精品課程,2010年由教材主編主持申報到了省級質(zhì)量工程教改項目“Inquiry Learning體系在程序設(shè)計課程中的運用”研究。這一系列的改革和研究都是以學(xué)生為主體,以培養(yǎng)和提高學(xué)生的計算機素養(yǎng)為最終目的而制定的。在教學(xué)過程中我們經(jīng)常與學(xué)生座談和交流,了解學(xué)生的需求,完善我們的教學(xué),使我們的教材和教學(xué)模式能與時俱進,保持很好的前瞻性和科學(xué)性。
(2) 內(nèi)容組織創(chuàng)新性強
本教材用“提出問題—分析問題—給出相關(guān)知識—舉一反三”的研究式學(xué)習(xí)方式來組織“C語言程序設(shè)計”這門課程,在注重語言知識培養(yǎng)的同時,更注重邏輯思維能力、程序設(shè)計能力及創(chuàng)新能力的培養(yǎng)。內(nèi)容組織方式新穎,符合認識規(guī)律,富有啟發(fā)性,便于學(xué)習(xí),有利于激發(fā)學(xué)生學(xué)習(xí)興趣及各種能力的培養(yǎng)。本教材每章都通過4個步驟來完成學(xué)習(xí):
第1步,通過提出問題、分析問題來激發(fā)學(xué)生的興趣,引起學(xué)生的思考。
第2步,通過問題的解決、相關(guān)知識點的跟進,使學(xué)生能逐步提升程序設(shè)計的能力,掌握C語言的知識,引導(dǎo)學(xué)生深入思考。
第3步,用一定數(shù)量的編程實例使學(xué)生深入理解和掌握所學(xué)知識,用具有趣味性的綜合應(yīng)用編程實例培養(yǎng)學(xué)生的邏輯思維能力和編程能力,挖掘?qū)W生的創(chuàng)新能力。
第4步,對每部分的知識進行小結(jié),以便學(xué)生進一步鞏固應(yīng)掌握的知識。
每章后面都有“綜合應(yīng)用”部分,讓學(xué)生對所學(xué)知識的具體運用有明確的認識,并能在此基礎(chǔ)上進一步鞏固和提升。
三、采取多樣性方法,實施教學(xué)方法的改革
(1)任務(wù)驅(qū)動教學(xué)方法
大多數(shù)學(xué)生反映C語言概念眾多,許多知識點抽象且難以理解,學(xué)生不能將理論和實際應(yīng)用結(jié)合起米, 任務(wù)驅(qū)動教學(xué)法是一種建立在建構(gòu)主義學(xué)習(xí)理論基礎(chǔ)上的教學(xué)法,它將以往以傳授知識為主的傳統(tǒng)教學(xué)理念,轉(zhuǎn)變?yōu)橐越鉀Q問題、完成任務(wù)為主的多維巨動式的教學(xué)理念;將再現(xiàn)式教學(xué)轉(zhuǎn)變?yōu)樘骄渴綄W(xué)習(xí),使學(xué)生處于積極的學(xué)習(xí)狀態(tài),每一位學(xué)生都能根據(jù)自己對當(dāng)前問題的理解,運用共有的知識和自己特有的經(jīng)驗提出方案、解決問題。在c語言程寧沒計課中.體現(xiàn)“任務(wù)驅(qū)動”就是讓學(xué)生在一個個典型的程序“任務(wù)”驅(qū)動下,教師引導(dǎo)幫助學(xué)生完成一系列程序“任務(wù)”,把知識的學(xué)習(xí)和知識的應(yīng)用有機地融合在一起,讓學(xué)生達到融會貫通、一點帶面的效果。例如,在講授C語言循環(huán)語句的教學(xué)時,按任務(wù)驅(qū)動教學(xué)模式不是孤立地介紹格式、作用和使用方法,而是將這一知識點設(shè)計為“計算1+2+3+……+1 00=?”這一具體的任務(wù)。首先,教師通過提出“任務(wù)”讓學(xué)生把握教學(xué)內(nèi)容,同學(xué)們會想象怎么完成這個任務(wù),頭腦里對前而的所學(xué)內(nèi)容進行回顧,但前面學(xué)過的知識沒法完成這種任務(wù)。接下來教師再講解如何使用循環(huán)語句等具體操作方法,這樣教學(xué),學(xué)生學(xué)得快、學(xué)得牢。通過實踐發(fā)現(xiàn)“任務(wù)驅(qū)動”法有利于激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生的分析問題、解決問題的能力,提高學(xué)生自主學(xué)習(xí)及與他人協(xié)作的能力,縮短了學(xué)習(xí)周期。
(2) 項目教學(xué)法
很多學(xué)生在學(xué)完C語言程序沒汁課程后,其結(jié)果是聽得懂、卻編不出程序來。針對這一情況,我們在教學(xué)過程中采用項目教學(xué)法。項目教學(xué)法是通過實施一個完整的項目而進行的教學(xué)活動,其目的是在課堂教學(xué)中把理論與實踐有機地結(jié)合起來,充分發(fā)掘?qū)W生的創(chuàng)造潛能,提高學(xué)生解決實際問題的綜合能力。在課程初期.主要是進行單項的編程練習(xí),重在掌握C語言的基本數(shù)據(jù)類型、語句與程序結(jié)構(gòu)等。在進入函數(shù)、數(shù)組、指針、結(jié)構(gòu)體和文件內(nèi)容教學(xué)時,開始綜合實訓(xùn)項日的編程設(shè)計,每一個實訓(xùn)項日都呵以用前一個實訓(xùn)項目為基礎(chǔ)。通過一個項目的層層遞進,引入課程內(nèi)容,使得學(xué)生的學(xué)習(xí)循序漸進,螺旋式地上升,效果很好,開闊學(xué)生的思維,使得學(xué)生在課堂上真正地成為“主體”,教師則扮演“主導(dǎo)”角色。該教學(xué)方法使學(xué)生積極參與到教學(xué)過程中,變被動為主動,有效地調(diào)動了學(xué)生學(xué)習(xí)的積極性,深受學(xué)生好評。
(3)比較教學(xué)法
C語言中的概念比較復(fù)雜,規(guī)則繁多.而且內(nèi)容前后聯(lián)系緊密,教學(xué)過程中教師通過對比的方式對相關(guān)的概念或類似的程序代碼進行比較,進而明確差異,然后進行歸納總結(jié),方便學(xué)生理解,將會收到事半功倍的效果 例如,C語言中的指針是教學(xué)中的一個難點.這一部分涉及的概念較多,如指向變量的指針、指向數(shù)組的指針、指向字符串的指針、指向函數(shù)的指針等。這些概念很容易混淆,但是將這些概念對比起來講解,學(xué)生就很容易理解了。這些概念的共性都是指針,那么它們不同的地方在哪呢?關(guān)鍵在于指針變量的指向不同,指針?biāo)赶蜃兞康臄?shù)據(jù)類型決定了指針變量的用法。通過這樣的講解,概念的定義就很容易理解,概念的用法也就可以統(tǒng)一了。再如,數(shù)據(jù)的排序問題有多種算法,典型的有冒泡排序、選擇排序、插入排序等,求解方程的根的算法也有多種,有迭代法、牛頓迭代法、二分法和弦截法等。這些算法之間既有聯(lián)系又有區(qū)別,講清楚了算法的聯(lián)系和區(qū)別,也就解決了整個問題。
(4)啟發(fā)式教學(xué)法
啟發(fā)式教學(xué)法就是通過教師的啟發(fā)教學(xué)充分調(diào)動學(xué)生的積極性、主動性和創(chuàng)造性,引導(dǎo)學(xué)生主動學(xué)習(xí)。例如,在學(xué)習(xí)printf()和scanf()函數(shù)時,通過比較式啟發(fā)方法講解兩函數(shù)的功能、格式、使用特性等方面的異同,通過比較使學(xué)生更好地把握兩函數(shù)的特征。在學(xué)習(xí)選擇排序算法時,使用模擬式啟發(fā)方法,讓l0個學(xué)生隨機坐在相鄰的l0個位子上,然后現(xiàn)場模擬排序過程;在學(xué)習(xí)數(shù)據(jù)交換算法時,使用比喻式和問題式啟發(fā)方法,將兩個變量比喻成兩個瓶子,將里面存放的數(shù)據(jù)比喻成醋和醬油,然后提問:如果將兩個瓶子中的醋和醬油交換一下,應(yīng)如何操作。
(5)“魚漁兼授式”教學(xué)方法。C語言只是一種表述工具,如果只有扎實的語法知識,沒有程序設(shè)計思想,根本就不可能寫出程序;而如果有程序設(shè)計思想,但語法知識不扎實,勢必在程序的編寫、運行過程中遇到一系列的問題,從而影響學(xué)生的學(xué)習(xí)熱情。而“魚漁兼授式”教學(xué)方法可以在基礎(chǔ)語法知識和程序設(shè)計方法之問找到一個平衡點,使之相輔相成。例如,在講解數(shù)據(jù)類型時著重講解為什么數(shù)據(jù)要分不同的數(shù)據(jù)類型,需要從哪幾個角度學(xué)習(xí)不同數(shù)據(jù)類型的特性;講解具體算法時著重講解遇到類似問題時應(yīng)從哪些角度分析問題,用什么方法進行程序設(shè)計從而解決問題;在課前精心設(shè)計一些錯誤,尤其是邏輯錯誤,然后講解遇到錯誤可以采用什么手段去剖析、定位錯誤。
四、建立立體化教學(xué)體系,實施教學(xué)手段的改革
我們從2006年就開始了立體化教學(xué)體系的建設(shè),我們建立了精品課程網(wǎng)站,實現(xiàn)了“在線教育”,現(xiàn)在我們課程的課件、課堂教學(xué)錄像、軟件、二級等考及相關(guān)閱讀等教學(xué)資源都放在了網(wǎng)絡(luò)上,作業(yè)也通過網(wǎng)絡(luò)來實現(xiàn)布置、提交和批閱。師生之間可以通過教學(xué)郵箱和課程論壇進行交流,任課教師可以自己定制調(diào)查問卷,隨時了解學(xué)生的動態(tài)和需求,還可以隨時進行在線測試,課程考試已經(jīng)完全實現(xiàn)了網(wǎng)絡(luò)無紙化模式。學(xué)生可根據(jù)自身的情況進行課后自主學(xué)習(xí)、自測學(xué)習(xí)、互相學(xué)習(xí)或下載資料、上交作業(yè),有助于學(xué)生的個性化發(fā)展和創(chuàng)新能力的培養(yǎng)。設(shè)計出包含驗證型、引導(dǎo)型、擴充型和設(shè)計型等多種類型的實驗,在實踐中充分體現(xiàn)學(xué)生的自主性,有目的、分層次地培養(yǎng)學(xué)生的實踐能力,使學(xué)生學(xué)會從實驗過程中獲取知識,積累經(jīng)驗。通過綜合設(shè)計,為學(xué)生自己構(gòu)建、發(fā)展并完善自己的知識體系創(chuàng)造機會,使學(xué)生具備獲取知識和應(yīng)用知識的能力,激發(fā)學(xué)生的創(chuàng)新精神,培養(yǎng)學(xué)生的團隊精神和協(xié)作能力,全面提高學(xué)生的實踐能力。
教學(xué)實踐證明:學(xué)生在課程網(wǎng)站上作業(yè)及報告的提交率達到98%以上,問卷調(diào)查的訪問量達到了85%以上,優(yōu)秀設(shè)計作業(yè)的訪問率達到90%以上,其他資料的訪問率也高于60%。由此可見,立體化教學(xué)體系很好的實現(xiàn)了不受時間、地點限制的開放式教學(xué)。
五、上機環(huán)節(jié)的改革與實踐
上機環(huán)節(jié)是教學(xué)活動的重要環(huán)節(jié),是對學(xué)生進行基本技能訓(xùn)練、增強學(xué)生實踐能力的關(guān)鍵環(huán)節(jié),是培養(yǎng)學(xué)生創(chuàng)新精神的重要手段。本科實踐教學(xué)的目的是優(yōu)化學(xué)生的素質(zhì)結(jié)構(gòu)、能力結(jié)構(gòu)和知識結(jié)構(gòu),讓其具備獲取知識、應(yīng)用知識的能力和創(chuàng)新能力。對于《程序設(shè)計與計算機語言》課程,以往的實踐教學(xué)內(nèi)容和題目以驗證型和設(shè)計型為主。驗證型的題目只要求學(xué)生按照書本上的指示,輸入程序,填寫結(jié)果即可,學(xué)生處于被動接受的地位,學(xué)生覺得無趣,毫無創(chuàng)意;設(shè)計型的題目對于非計算機專業(yè)學(xué)生來說,難度太大,學(xué)生無從下手。為了全面提高學(xué)生的實踐能力和應(yīng)用能力,使實踐教學(xué)能滿足不同層次學(xué)生自主學(xué)習(xí)的需求,我們制定并實施了以下改革措施:
(1)改革上機實踐的教學(xué)模式:將以理論教學(xué)為主的教學(xué)模式改為由理論教學(xué)和實踐教學(xué)相互聯(lián)系、相互交叉、彼此滲透、有機結(jié)合、同步發(fā)展的教學(xué)模式,確立了實踐教學(xué)在《程序設(shè)計基礎(chǔ)》課程中的重要地位。
(2)設(shè)計多種類型的實驗題目:針對學(xué)生存在基礎(chǔ)不同、接受能力不同、個性有差異等問題,設(shè)計出包含驗證型、引導(dǎo)型、擴充型和設(shè)計型共四種類型的實驗,題目盡可能做到覆蓋知識點,切合實際、生動有趣。通過完成不同類型的實驗,有目的、分層次地培養(yǎng)學(xué)生的實踐能力,使學(xué)生學(xué)會從實驗過程中獲取知識,積累經(jīng)驗。
(3)在實踐中充分體現(xiàn)學(xué)生的自主性:實驗課的實驗任務(wù)由規(guī)定實驗內(nèi)容和自主實驗內(nèi)容兩部分組成。學(xué)生在完成規(guī)定的實驗任務(wù)后,可根據(jù)自己的興趣和愛好,自主設(shè)計一些實驗任務(wù),在教師的指導(dǎo)和幫助下加以完成和實現(xiàn)。通過自主學(xué)習(xí)和自主設(shè)計,能有效地培養(yǎng)學(xué)生應(yīng)用知識的能力和探索精神,極大地激發(fā)學(xué)生的學(xué)習(xí)主動性。
(4) 啟發(fā)引導(dǎo)學(xué)生的創(chuàng)造性,培養(yǎng)學(xué)生的團隊協(xié)作精神:本課程要求學(xué)生以小組(3~5人)為單位進行綜合性程序設(shè)計,設(shè)計題目主要由學(xué)生自己按綜合設(shè)計要求來確定,每個小組推選出一名小組長,負責(zé)協(xié)調(diào)程序的開發(fā)、與教師和組員的聯(lián)系、提交總的設(shè)計報告和完整的源程序等工作。在綜合設(shè)計過程中,學(xué)生處于主導(dǎo)地位,是核心。學(xué)習(xí)小組的組建,綜合設(shè)計題目的選擇或確定,各組員任務(wù)的分配與協(xié)調(diào),任務(wù)完成后的總結(jié)與成績的自評等,主要是按學(xué)生的意愿來進行。教師只負責(zé)宏觀指導(dǎo)和一些條件支持。當(dāng)學(xué)生的選題不符合要求或系統(tǒng)功能設(shè)計不合理時,教師會立即指出,并幫助他們修改和完善;當(dāng)學(xué)生調(diào)不通程序或程序中有錯誤時,教師會向他們介紹調(diào)試方法和查錯方法,教會他們調(diào)試程序。對學(xué)習(xí)好、能力強的優(yōu)秀學(xué)生,教師會注重開擴他們的思路,啟發(fā)他們的思維,引導(dǎo)他們?nèi)カ@取新知識、去探索新問題,激發(fā)他們的創(chuàng)新欲望,使他們能完成高水平的綜合設(shè)計。通過綜合設(shè)計,可充分體現(xiàn)以學(xué)生為中心的教學(xué)方法,為學(xué)生自己構(gòu)建、發(fā)展并完善自己的知識體系創(chuàng)造機會,使學(xué)生具備獲取知識和應(yīng)用知識的能力,激發(fā)學(xué)生的創(chuàng)新精神,培養(yǎng)學(xué)生的團隊精神和協(xié)作能力,全面提高學(xué)生的實踐能力,從而有效地提高《程序設(shè)計與計算機語言》課程的教學(xué)質(zhì)量。
六、考核評價體系的改革
我校C語言程序設(shè)計課程的成績分為理論和實踐兩個分?jǐn)?shù),各2個學(xué)分,兩項成績都合格即可獲得該課程的4個學(xué)分。其中:
理論課綜合成績(百分制)=平時(百分制)*(50%)+末考(百分制)*50%;
上機實踐綜合成績(百分制)=平時(百分制)*(60%)+綜合設(shè)計(百分制)*40%;
理論成績由平時成績和末考成績組成。其中:平時成績由上課考勤、作業(yè)提交、階段性實驗報告組成,占總成績的50%;末考指的是期末閉卷無紙化考試,末考側(cè)重于基礎(chǔ)知識測試,考核學(xué)生對基本概念的掌握。題型包括:判斷題、選擇題、填空題和編程題,判斷題題型重點考察學(xué)生對基本知識點的掌握程度,選擇題和填空題重點考察學(xué)生對程序的閱讀、理解和分析能力,編程題則重點考察學(xué)生編寫程序的能力。
無紙化考試采用的是我們中心自己研發(fā)的考試系統(tǒng),但該系統(tǒng)存在一點缺陷,就是編程題需要人工閱卷。因此,我們于2012年開設(shè)了一個試點班,本著提高學(xué)生編程能力的目的出發(fā),從平時的教學(xué)和最后的考試都試用了哈工大研發(fā)的《C語言編程題自動評分系統(tǒng)》。該系統(tǒng)允許學(xué)生借助于 C編譯系統(tǒng)調(diào)試程序,學(xué)生將自己編寫并調(diào)試過的程序由客戶端提交給服務(wù)器端后,服務(wù)器端立即根據(jù)學(xué)生程序的結(jié)構(gòu)和語義進行評分,并將評分返回給客戶端,使學(xué)生在提交程序之后立即看到自己的分?jǐn)?shù)。
上機實踐成績則由平時成績和綜合設(shè)計成績構(gòu)成。其中:平時成績由上機考勤、在線單元測試組成,占總成績的60%;課程最后提交的綜合設(shè)計則占到了40%。
該考核評價體系涉及到教學(xué)實施過程中的每一個環(huán)節(jié),有利于對學(xué)生進行科學(xué)、客觀的評價,從而避免了一張考卷定乾坤帶來的弊病。
該體系在實施過程中顯現(xiàn)出了其科學(xué)性,但是目前存在的問題就是教師的負擔(dān)太重。一個學(xué)生一學(xué)期一般要提交12份報告,每位教師一般帶兩個班,每個班約88位同學(xué),這樣每位教師一個學(xué)期只報告一項就要批閱約2000份,工作量太大。現(xiàn)在正在努力尋求更加合理的解決方法。
七、結(jié)束語
教學(xué)實踐證明,以上改革措施能夠有效解決我校C語言程序設(shè)計教學(xué)過程中存在的問題。此教學(xué)模式下,教學(xué)內(nèi)容符合學(xué)生專業(yè)特點,能夠滿足理工科專業(yè)學(xué)生對計算機技術(shù)的需求;教學(xué)方法行之有效,教學(xué)效果有明顯提高;教學(xué)實踐方法與措施切實可行,能夠有效促進學(xué)生分析問題解決問題能力、實踐能力及團隊合作能力等能力的培養(yǎng)與提高。當(dāng)然,該模式仍然存在一些不盡如人意的地方,這就需要我們堅持不懈,繼續(xù)努力去改進和完善。
項目來源:云南省高校質(zhì)量工程教改項目“Inquiry learning體系在程序設(shè)計中的運用”(云教高[2010]96號)。
[參考文獻]
[1]王剛.CDIO工程教育模式的解讀與思考[J].中國高教研究,2009(5).
[2]謝延紅.C語言程序設(shè)計公共課教學(xué)模式改革與實踐[J].計算機時代,2010(12).
[3]馬新.《C語言程序設(shè)計》課程教學(xué)方法與手段的改革與實踐[J].科技信息,2010(33).
【關(guān)鍵詞】課程設(shè)計;C#程序
一、課程性質(zhì)和任務(wù)
《C#程序設(shè)計》是計算機軟件技術(shù)專業(yè)(.net開發(fā)方向)一門專業(yè)技能課 ,是C# winForm 應(yīng)用程序和 Web應(yīng)用程序設(shè)計的前導(dǎo)課程,是.net開發(fā)方向的核心基礎(chǔ)課程。通過本課程的學(xué)習(xí),學(xué)生應(yīng)掌握 C# 語言的基本語法,程序設(shè)計的基本思想、基本概念和基本方法,進一步熟悉面向過程程序設(shè)計,掌握面向?qū)ο蟪绦蛟O(shè)計的思想,能對一般問題進行分析和面向?qū)ο蟪橄螅鶕?jù)UML圖編寫面向?qū)ο蟮腃# 程序。
二、課程教學(xué)目標(biāo)
知識教學(xué)目標(biāo):
掌握C#語言的基本語法、語句;掌握C#中的數(shù)據(jù)類型、運算符和表達式;熟練掌握順序、分支和循環(huán)三種基本的程序控制結(jié)構(gòu);掌握結(jié)構(gòu)、枚舉的定義,并靈活使用;熟練掌握數(shù)組的定義、初始化和數(shù)組的基本操作;熟練掌握函數(shù)的定義和調(diào)用;掌握面向?qū)ο笙嚓P(guān)概念:類、對象、類的封裝、繼承、多態(tài)等特性和使用;掌握接口和抽象類的定義,并靈活使用;掌握集合、多態(tài)狀態(tài)下的類型和值的比較、類型的轉(zhuǎn)換、泛型;掌握事件與委托的概念與使用。
能力培養(yǎng)目標(biāo):
掌握結(jié)構(gòu)化程序設(shè)計的基本思想和方法;掌握面向?qū)ο蟪绦蛟O(shè)計的基本思想和方法。能夠?qū)陀^世界進行抽象,并編寫出面向?qū)ο蟪绦颍皇炀氝\用C#語言的編輯調(diào)試環(huán)境,能編寫常用的C#應(yīng)用程序。
思想教育目標(biāo):
培養(yǎng)學(xué)生吃苦耐勞與敬業(yè)精神、團隊精神;培養(yǎng)學(xué)生具有實事求是的學(xué)風(fēng)和嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度;
培養(yǎng)學(xué)生分析問題和解決問題的能力。
三、教學(xué)內(nèi)容和要求
(一)理論教學(xué)模塊
第一章 C# 簡介
1.教學(xué)要求
了解什么是.NET Framework,什么是C#,理解.NET Framework的運作流程,了解C#的主要特性,以及C#的現(xiàn)代編程語言特性。
2.教學(xué)內(nèi)容
C#和.NET Framework的含義,.NET Framework的工作原理和特別之處,C# 的功能。
第二章 編寫C#程序
1.教學(xué)要求
掌握使用Visual Studio 2005創(chuàng)建C#程序的方法,掌握使用Visual Studio 2005創(chuàng)建基本控制臺界面的C#程序的方法,掌握C#程序的基本結(jié)構(gòu),熟悉控制臺輸入、輸出方法,了解C#基本語句、注釋等要求,理解命名空間。
2.教學(xué)內(nèi)容
Visual Studio 2005的基礎(chǔ)知識,編寫簡單的控制臺應(yīng)用程序,編寫Windows Form應(yīng)用程序。
第三章 變量和表達式
1.教學(xué)要求
掌握C#的基本語法,理解C#程序的基本結(jié)構(gòu),掌握簡單數(shù)據(jù)類型的定義和使用,包括整型、浮點型、小數(shù)型、布爾型,掌握變量的定義,熟悉camelCase和PascalCase變量命名法,了解數(shù)據(jù)類型轉(zhuǎn)換,掌握常量,熟悉表達式及運算符實現(xiàn)數(shù)據(jù)的計算。
2.教學(xué)內(nèi)容
C#的基本語法,簡單數(shù)據(jù)類型,變量及其用法,表達式及其用法。
第四章 流程控制
1.教學(xué)要求
了解C#中的布爾類型的定義與使用方法,理解位運算,掌握分支語句,包括if和switch,掌握循環(huán)語句(包括for、while、do while),學(xué)會分析問題,并使用分支和循環(huán)解決。
2.教學(xué)內(nèi)容
布爾邏輯的含義及其用法,位運算的含義及其用法,分支語句,循環(huán)語句。
第五章 復(fù)雜的變量類型處理
1.教學(xué)要求
掌握枚舉類型的定義和使用,掌握結(jié)構(gòu)類型的定義和使用,掌握一維、二維數(shù)組的使用,理解隱式和顯式類型轉(zhuǎn)換,掌握.NET對字符串的處理常見功能,包括字符串的查找、替換、格式化、調(diào)整等。
2.教學(xué)內(nèi)容
枚舉的定義與使用,結(jié)構(gòu)體的定義與使用,數(shù)組的定義與使用,類型轉(zhuǎn)換,字符串處理。
第六章 函數(shù)
1.教學(xué)要求
掌握函數(shù)的定義和使用,理解可變參數(shù)函數(shù),函數(shù)的參數(shù),包括值參數(shù)、引用參數(shù)和輸出參數(shù),理解變量作用域概念,變量在不需要它們的代碼塊中可以隱藏起來,掌握結(jié)構(gòu)化程序設(shè)計的方法和步驟。
2.教學(xué)內(nèi)容
定義和使用簡單函數(shù),通過參數(shù)在函數(shù)之間傳送數(shù)據(jù),變量的作用域,結(jié)構(gòu)化程序設(shè)計。
第七章 程序調(diào)試和異常處理
1.教學(xué)要求
掌握VS2008中程序調(diào)試方法,包括中斷模式和非中斷模式,使用try...catch... finally處理程序異常。
2.教學(xué)內(nèi)容
VS中的調(diào)試方法,程序異常處理語句。
第八章 面向?qū)ο蟪绦蛟O(shè)計入門
1.教學(xué)要求
掌握類的定義,包括類成員的訪問級別、函數(shù)定義及重載,掌握對象的使用,理解面向?qū)ο蟮幕舅枷耄貏e是封裝性。
2.教學(xué)內(nèi)容
什么是面向?qū)ο缶幊蹋惖亩x,對象的使用,面向?qū)ο蟮幕舅枷搿?/p>
第九章 類的定義和使用
1.教學(xué)要求
掌握構(gòu)造函數(shù)的定義和使用,理解面向?qū)ο蟮睦^承性,掌握類中虛成員的定義和重寫,理解類型的上傳,了解類的層次結(jié)構(gòu)和基類object,掌握類中屬性的定義和使用,并理解其實現(xiàn)的封裝性好處,了解靜態(tài)類和類的靜態(tài)成員,掌握運算符的重載。
2.教學(xué)內(nèi)容
構(gòu)造函數(shù),面向?qū)ο蟮睦^承性,類的其他成員,包括屬性、靜態(tài)成員、運算符的重載等。
第十章 類的高級使用
1.教學(xué)要求
掌握抽象類和接口,理解兩者的區(qū)別和適用情況,理解面向?qū)ο蟮亩鄳B(tài)性及其原理,掌握面向接口的編程。
2.教學(xué)內(nèi)容
抽象類和接口的使用,創(chuàng)建類庫,理解面向?qū)ο蟮亩鄳B(tài)性,使用面向接口的編程。
第十一章 集合、比較和轉(zhuǎn)換及泛型
1.教學(xué)要求
掌握ArrayList集合,掌握自定義集合的方法,掌握多態(tài)狀態(tài)下類型和值的比較及類型的轉(zhuǎn)換,
掌握泛型的使用。
2.教學(xué)內(nèi)容
ArrayList的使用,自定義集合,比較和轉(zhuǎn)換,泛型。
第十二章 事件的定義和使用
1.教學(xué)要求
掌握委托及事件的定義和使用,理解事件和委托的區(qū)別,了解線程的使用。
[關(guān)鍵詞]C程序語言 分層教學(xué) 任務(wù)驅(qū)動
[中圖分類號] G423.07 [文獻標(biāo)識碼] A [文章編號] 2095-3437(2013)22-0081-02
一、課程教學(xué)現(xiàn)狀分析
C語言程序設(shè)計是高校計算機專業(yè)的核心基礎(chǔ)課程,很多學(xué)校都開了C語言公選課,將其作為學(xué)生學(xué)習(xí)程序設(shè)計的一個入門。學(xué)習(xí)C語言需要掌握的抽象概念和語法規(guī)則較多,同時又需要通過實踐培養(yǎng)編程實用技巧。由于計算機專業(yè)必修課程(例如C++,數(shù)據(jù)結(jié)構(gòu)等)都需要具備一定的C語言基礎(chǔ),所以對C語言的掌握程度直接影響著后續(xù)課程的教學(xué)效果。[1,2]長期以來C語言程序設(shè)計課程的教學(xué)改革一直都在許多高校中探索和實踐,提出了項目教學(xué)法、[3]案例教學(xué)法、[4]自主學(xué)習(xí)模式[5]的教學(xué)理念。但在實際的C語言課程教學(xué)中,諸多因素導(dǎo)致教學(xué)效果不理想,具體有以下幾方面:
首先,學(xué)生程序設(shè)計基礎(chǔ)參差不齊。一部分學(xué)生以前沒有接觸過程序,有些學(xué)生對學(xué)習(xí)程序不感興趣,有些學(xué)生沿用看書加背誦學(xué)習(xí)方法,他們感到枯燥厭煩,跟不上教學(xué)進度;還有一部分學(xué)生上課時積極主動,對編程產(chǎn)生較大興趣,不但能夠完全掌握老師講的課程內(nèi)容,而且能夠積極查閱課外程序資料,教師講授的課堂內(nèi)容不能夠滿足這部分學(xué)生。傳統(tǒng)的教學(xué)方式造成教師在教學(xué)無法兼顧這兩類學(xué)生。學(xué)期結(jié)束后,第一類學(xué)生普遍感到程序設(shè)計課程晦澀難懂,不會應(yīng)用,無從下手,因此失去了學(xué)習(xí)熱情。
其次,傳統(tǒng)教學(xué)模式影響教學(xué)效果。在傳統(tǒng)的教學(xué)中,教師往往以課程的理論知識點為主線組織教學(xué),依照從講解概念起,接著講解語法語句,最后舉例加以細化。部分教師缺乏對該門課程的整體性把握,在教學(xué)上過多注重語法結(jié)構(gòu)的知識,沒有把學(xué)生放在主體的位置上,師生間的互動很少。甚至有些教材內(nèi)容的結(jié)構(gòu)安排缺乏合理性,語法部分編寫過于繁瑣,學(xué)生接受的是枯燥無味的理論規(guī)則,導(dǎo)致學(xué)習(xí)沒有積極性,難以調(diào)動學(xué)生學(xué)習(xí)的主動性。教學(xué)觀念、教學(xué)手段和方法以及考核形式等都比較陳舊,不能適應(yīng)新形勢下的教學(xué)需求,學(xué)生學(xué)習(xí)效率非常低,無法將所學(xué)知識運用到實際中。
最后,實踐環(huán)節(jié)薄弱。上機實踐是學(xué)習(xí)編程語言的重要組成部分。實際授課中,重視課堂教學(xué)而輕視上機實踐,理論課上既要講基本的語法知識又要講編程方法,占用了過多的課堂時間。實驗課上進行基本的驗證性實驗,學(xué)生機械式的運行程序,無法真正學(xué)會如何編寫和調(diào)試程序,使得理論教學(xué)和實踐教學(xué)脫節(jié)。通常情況下,C語言程序設(shè)計目前的考核方式主要以筆試為主,主要考查語法和基本的邏輯推導(dǎo)能力,無法進行學(xué)生動手實踐能力的考查,從而造成了大部分學(xué)生即使理論知識掌握較好,卻不會上機編程。
二、C課程教學(xué)方法改革探索
(一)采用分層教學(xué)模式
首先,對象分層。新生入學(xué)后,系部首先通過問卷的形式對新生的計算機基礎(chǔ)技能、學(xué)習(xí)計算機的興趣以及課內(nèi)外學(xué)習(xí)方式等情況進行了調(diào)查,并進行了計算機水平摸底測試。根據(jù)學(xué)生的實際測試水平,打破以班為集體的傳統(tǒng)教學(xué)模式,將他們分為不同的層次分別授課。將程序設(shè)計興趣較強、數(shù)學(xué)邏輯基礎(chǔ)較好、有一定編程基礎(chǔ)并且測試成績較好的學(xué)生編入A層;將測試成績較差并且沒有編程基礎(chǔ)的學(xué)生編入C層;其余多數(shù)學(xué)生編入B層。教師依據(jù)各層學(xué)生進行因材施教,即針對學(xué)習(xí)者不同的學(xué)習(xí)能力、態(tài)度等個體差異施行不同的教學(xué)模式,實際上是使三層學(xué)生各有側(cè)重、共同提高的一種教學(xué)方法。
其次,教學(xué)分層。分層授課是分層教學(xué)成功實施的關(guān)鍵,學(xué)生是教學(xué)活動中學(xué)習(xí)的主體,教師需要對所教層次學(xué)生的編程水平有準(zhǔn)確的認識,才能真正激發(fā)其學(xué)習(xí)激情,培養(yǎng)其學(xué)習(xí)能力,促進課堂教學(xué)質(zhì)量的提高。A層學(xué)生一般理解力較強,學(xué)習(xí)具有主動性,教師可以引導(dǎo)他們除了掌握教材知識點外,推薦課外參考書,盡快參與軟件開發(fā)項目或興趣小組。B層的學(xué)生通常情況下能夠掌握基本的語法規(guī)則及編程方法,但是對編程缺乏總體思路,就需要教師及時將學(xué)生學(xué)過的知識加以復(fù)結(jié),在掌握教學(xué)大綱要求的知識點外可通過綜合實訓(xùn)練習(xí)進行編程水平提升。對C層就要通過精心設(shè)計教學(xué)內(nèi)容、耐心的作業(yè)輔導(dǎo)、適時的課后交流激發(fā)他們的學(xué)習(xí)興趣和信心。分層教學(xué)從各層學(xué)生的實際出發(fā),“因人制宜”,關(guān)注各層次學(xué)生在學(xué)習(xí)方法上的差異,給予學(xué)生不同級別的指導(dǎo),刺激學(xué)生向高層次目標(biāo)努力,從而大面積地提高教學(xué)質(zhì)量。此外,在實施過程中也要注意保護學(xué)生的自尊心,以淡化各層間的人為界線,避免分層帶來的負效應(yīng)。
最后,分層評價。分層評價是針對各類學(xué)生的學(xué)習(xí)水平,建立一套完善科學(xué)的評價體系激發(fā)學(xué)生學(xué)習(xí)興趣、優(yōu)化學(xué)習(xí)方法、樹立學(xué)生的自信心,促使各成其才。對A、B、C 三層的學(xué)生不同的目標(biāo)要求體現(xiàn)在評價體系中。對平時成績的考核對應(yīng)不同層次,A層同學(xué)分組考核,分工協(xié)作完成預(yù)設(shè)項目,根據(jù)小組中的表現(xiàn)進行組員互評和老師評價相結(jié)合的方式。B層和C層的同學(xué)則通過上機實操進行編程水平的測試。期終試卷可在同一份試卷上進行分層,分別對應(yīng)于不同層次。試卷分成基礎(chǔ)和提高兩部分。基礎(chǔ)部分主要考核學(xué)生是否達到基本教學(xué)大綱要求,這部分是三個層次學(xué)生共同的必答卷,對于三個層次的學(xué)生同分但不同值,成績作為課程的考核分。例如編程題標(biāo)注10分,則如果A層學(xué)生做對考核分加10,B層和C層學(xué)生做對加15。第二部分為提高卷,也是A層學(xué)生的必答卷,B、C層學(xué)生的選答卷,成績作為課程的考核分。分層考核的目的是使各層次的學(xué)生經(jīng)過努力都能獲得較高的分?jǐn)?shù),獲得成功的體驗,激發(fā)學(xué)生的求知欲。
(二)基于實踐導(dǎo)向的任務(wù)驅(qū)動教學(xué)
以實踐為導(dǎo)向在教學(xué)活動中要求,以專業(yè)能力要求為依據(jù),將“教、學(xué)、練”一體化的教學(xué)模式融入教學(xué)課程設(shè)計中。根據(jù)行業(yè)需要的知識、技能確定課程內(nèi)容的選取與安排,課程設(shè)計是采用真實項目貫穿教學(xué)全程,項目按照內(nèi)容分成若干模塊,實現(xiàn)將化整為零進行學(xué)習(xí)。
任務(wù)驅(qū)動下分組學(xué)習(xí)討論是一種非常有效的方式。讓學(xué)生發(fā)揮主動性自由分組,依據(jù)編程能力水平給每組指派一名組長,上課時以組為單位,分析、討論項目任務(wù),具體包括需要收集資料、項目進度以及具體的工作任務(wù)。小組長主要負責(zé)小組內(nèi)任務(wù)分配、協(xié)調(diào)組內(nèi)成員等工作,老師輪流在每個小組旁聽學(xué)生的討論并接受學(xué)生的咨詢。
教師所指定的任務(wù)主要包括兩類內(nèi)容:一類是課本課后習(xí)題,并對完成任務(wù)所必需的知識點進行必要的說明;另一類是具有實用性的項目任務(wù)實例,讓學(xué)生更直觀地理解所學(xué)知識應(yīng)該如何與實踐相聯(lián)系。第二類任務(wù)需要教師進行設(shè)計,盡可能具有綜合性、可分割性,適合小組討論解決及協(xié)作完成。
制定合理的考核標(biāo)準(zhǔn)來綜合衡量學(xué)生的學(xué)習(xí)狀況是激發(fā)學(xué)生進行協(xié)作學(xué)習(xí)的動力。當(dāng)學(xué)生完成任務(wù)后,先在小組成員之間進行任務(wù)完成情況評論。最后由老師對每組學(xué)生的任務(wù)完成情況進行總結(jié)講評,對其中的不足進行點評,對比較好的做法給予鼓勵,并據(jù)此對每個學(xué)生計算平時成績,將小組整體得分與組內(nèi)個人得分進行綜合。課程采用綜合測試考評方式,突破單一的閉卷考試方式,將平時作業(yè)、課堂討論成績、與期末考試相結(jié)合。
三、結(jié)束語
C語言是一門實踐性很強、熱門的高級編程語言。根據(jù)目前的教學(xué)現(xiàn)狀,分析和總結(jié)教與學(xué)的不足,通過分層模式教學(xué)改革和以實踐為導(dǎo)向的任務(wù)驅(qū)動教學(xué)探索,不斷地提高課程的教學(xué)效率,使課程更具科學(xué)性,把學(xué)生的主動性充分地調(diào)動起來,讓學(xué)生在學(xué)習(xí)中嘗到樂趣。
[ 參 考 文 獻 ]
[1] 楊理云.“C 語言程序設(shè)計”教學(xué)方法探索[J].中國成人教育,2007,(5).
[2] 丁群,文明瑤.項目教學(xué)法在C語言教學(xué)中的應(yīng)用[J].電腦知識與技術(shù): 學(xué)術(shù)交流,2012,8(3).
[3] 陳洪超.項目教學(xué)法在“C語言程序設(shè)計”課程中的應(yīng)用[J].重慶電力高等專科學(xué)校學(xué)報,2012,17(3).
《C語言程序設(shè)計》是計算機相關(guān)專業(yè)的一門基礎(chǔ)課程,是培養(yǎng)學(xué)生計算思維能力、程序設(shè)計與實現(xiàn)能力的入門課程,同時也是《數(shù)據(jù)結(jié)構(gòu)與算法分析》等課程的先導(dǎo)課程;C語言也是IT企業(yè)中常用的編程語言。因此,該課程的教學(xué)對學(xué)生后續(xù)課程的學(xué)習(xí)和今后的工作都會產(chǎn)生重要的影響。對于初學(xué)者而言,因為邏輯思維能力較弱,所以在學(xué)習(xí)過程中積極性不高,學(xué)習(xí)效率低下,難以提高其編程語言解決實際問題的能力。經(jīng)過多年的授課,筆者對《C語言程序設(shè)計》的課程教學(xué)進行了一些探討和實踐
二、教學(xué)中存在的問題
1.教學(xué)主體以教師為主
在傳統(tǒng)的教學(xué)中,教學(xué)主體往往以教師為主,高等院校對教師的考核注重“科研”,因此很多教師容易忽視“教學(xué)”的重要性。在《C語言程序設(shè)計》的教學(xué)中教師方面的問題主要包括:①課程的知識點較多,存在教學(xué)內(nèi)容與教學(xué)時數(shù)之間的矛盾;②教師的教學(xué)方法、方式陳舊,難以激發(fā)學(xué)生主動學(xué)習(xí)的興趣;③教師在教學(xué)中大多重課堂教學(xué),輕實驗教學(xué);④任課教師往往沒有工程實踐經(jīng)歷,其綜合業(yè)務(wù)水平有待提高。
2.教學(xué)中沒有充分調(diào)動學(xué)生學(xué)習(xí)的積極性
《C語言程序設(shè)計》的課程學(xué)習(xí)是在新生入學(xué)的第一學(xué)期,這對課程的教學(xué)也帶來一定的消極影響,主要體現(xiàn)在:①學(xué)生學(xué)習(xí)目的不明,動力不足,很多學(xué)生以為進入了大學(xué)主要是鍛煉社會交往能力;②學(xué)生的邏輯思維能力較弱,想象空間較窄,遇到挫折容易產(chǎn)生厭學(xué)情緒;③由于受傳統(tǒng)應(yīng)試教育的影響,學(xué)生大多重教輕學(xué),重理論輕實踐,考試能力強,編程能力弱,不能用計算思維解決實際問題。
三、教學(xué)改進的舉措
針對上述問題,筆者摒棄以單向性知識傳授為主的教學(xué)模式,主張講課教師應(yīng)以課程的內(nèi)容和學(xué)生的知識積累為基礎(chǔ),積極引導(dǎo)學(xué)生創(chuàng)造性地運用知識和能力,自主地發(fā)現(xiàn)、分析和解決問題,學(xué)生在研討中學(xué)習(xí)知識、培養(yǎng)能力和提高素質(zhì)。具體的教學(xué)實施方案包括:
1.編制詳細的教學(xué)設(shè)計方案
為幫助學(xué)生提高自主學(xué)習(xí)和創(chuàng)新的能力,需要制定詳細的教學(xué)設(shè)計方案,該方案是課程教學(xué)具體實施的主線,它相當(dāng)于一場晚會的節(jié)目演出單,講課教師是導(dǎo)演和主持人,而學(xué)生是主角和演員。教學(xué)設(shè)計方案主要包括:教學(xué)日期和時數(shù)、教學(xué)內(nèi)容和主題、實驗內(nèi)容、教學(xué)方法、教學(xué)手段和作業(yè)安排等。
2.優(yōu)化教學(xué)內(nèi)容
該課程存在教學(xué)內(nèi)容較多而教學(xué)時數(shù)受限,全面而細致的講解所有的內(nèi)容已不合時宜。教學(xué)內(nèi)容的優(yōu)化應(yīng)滿足教學(xué)目標(biāo)的要求,滿足學(xué)生的學(xué)習(xí)需要,激發(fā)學(xué)生的學(xué)習(xí)興趣[1]。因此,我們按照“少而精、寬而新,突出核心的知識點”的原則優(yōu)化教學(xué)內(nèi)容,體現(xiàn)教學(xué)內(nèi)容的先進性、實用性。按照學(xué)習(xí)進度,給學(xué)生安排相應(yīng)階段的學(xué)習(xí)任務(wù),有些內(nèi)容要求學(xué)生自主完成。
3.改變傳統(tǒng)的教學(xué)方式
傳統(tǒng)的“填鴨式”教學(xué)方式效果并不好[2],因此,我們在教學(xué)引入并主要采用了“討論式”教學(xué),以充分調(diào)動學(xué)生學(xué)習(xí)的積極性,具體的做法包括:①每次授課結(jié)束前,布置預(yù)習(xí)思考題,要求學(xué)生在課下充分預(yù)習(xí),課上圍繞思考題展開討論,每次課分組討論1-3次,每次2-5分鐘;學(xué)生課堂討論、發(fā)言或回答問題的時間約占總學(xué)時的20%;②隨機抽查回答問題與各組指派同學(xué)回答問題相結(jié)合,回答問題不以正確性為唯一依據(jù),也注重表達過程的清晰度和邏輯性,尤其鼓勵問題回答者闡述自己的觀點或提出問題。統(tǒng)計表明,學(xué)生回答問題次數(shù)平均水平有6-8次;③將學(xué)生在課堂教學(xué)過程中的表現(xiàn)按評分標(biāo)準(zhǔn)將其分值記入到平時成績檔案中。
4.加強教學(xué)方法的改革
在教學(xué)中應(yīng)以學(xué)生為中心,引導(dǎo)學(xué)生走向知識,通過合理施壓,注重師生的互動交流,培養(yǎng)學(xué)生善于總結(jié)、發(fā)現(xiàn)問題和主動學(xué)習(xí)的能力[3-4]。在《C語言程序設(shè)計》的課程教學(xué)中,我們對教學(xué)方法做了如下改革:①“案例教學(xué)法”貫穿教學(xué)全過程,“學(xué)生信息管理系統(tǒng)”貫穿了該課程的全部章節(jié),是學(xué)生在學(xué)習(xí)過程中的“長期任務(wù)”;②“任務(wù)驅(qū)動法”引導(dǎo)學(xué)生學(xué)習(xí),“長期任務(wù)”可以分解為多個對應(yīng)于知識點的“短期任務(wù)”,有助于學(xué)生逐步提高編程能力;③用“負反饋教學(xué)法”解決學(xué)生學(xué)習(xí)中問題,有效的提高學(xué)生的學(xué)習(xí)效率;④弱化語法,以“算法為先”實現(xiàn)實際問題的求解;⑤并用“多媒體”教案擴大課堂信息量,精心制作與教材配套的CAI課件和習(xí)題。
5.建立新型的實驗教學(xué)模式
為了激發(fā)學(xué)生學(xué)習(xí)的積極性,我們通過建立新型的實驗教學(xué)模式[5],包括:①為增強學(xué)生學(xué)習(xí)的體驗感,減少了基礎(chǔ)驗證型實驗比例,增加綜合型實驗和設(shè)計性實驗的比例;②建立以小組為單位的實驗完成機制,培養(yǎng)學(xué)生的團隊合作能力;③加強實驗報告的規(guī)范,增強學(xué)生的職業(yè)崗位意識;④建立定期的課外討論機制,教師定期討論主題,學(xué)生以小組為單位進行準(zhǔn)備,然后通過專題討論和點評,并將學(xué)生的表現(xiàn)記入平時成績檔案;⑤鼓勵實驗動手能力的較強的同學(xué)自己設(shè)計實驗項目,并依據(jù)結(jié)果給予其一定的平時成績獎勵。
6.健全嚴(yán)格的學(xué)生考核機制
傳統(tǒng)的考核以筆試為主,學(xué)生為了應(yīng)對考試采取死記硬背的方式,為此我們建立嚴(yán)格全面的考核機制,包括:①建立學(xué)生學(xué)習(xí)小組,分組原則是小組內(nèi)部異質(zhì)化,小組之間同質(zhì)化;②建立每個學(xué)生平時學(xué)習(xí)成績檔案,學(xué)生的平時表現(xiàn)與分值相對應(yīng);③制定公平合理的成績評定方案:學(xué)期總評成績=平時成績×60%+期末考試成績×40%,平時成績=小組成績*小組人數(shù)*組員在項目組的貢獻百分比(組員的貢獻百分比是在教師給出小組成績之前,經(jīng)過該小組的全體成員一致同意后提交給任課教師),這種考核方式可以促進學(xué)生的團隊協(xié)作精神和競爭意識;而期末考試側(cè)重于通過編程以解決實際問題,從而促使學(xué)生平時多思考、多上機實踐,有助于提高他們的邏輯思維和編程能力。
7.積極開展第二課堂教學(xué)
積極引導(dǎo)學(xué)生參加課外實踐活動,主要采取了如下措施:①開設(shè)了網(wǎng)絡(luò)教學(xué)平臺資源,為學(xué)生提供大量的經(jīng)典實例程序、教學(xué)課件和習(xí)題,并通過電子郵箱、QQ群和微信群等手段,隨時為學(xué)生答疑,了解學(xué)生的學(xué)習(xí)狀況以調(diào)整教學(xué)內(nèi)容和手段;②鼓勵學(xué)生自主創(chuàng)立或參加各種創(chuàng)新社團和講座,目前,本學(xué)院已成立“海盜社”等實踐社團,面向全校學(xué)生舉辦多種創(chuàng)新活動,2014年共組織了11場關(guān)于程序設(shè)計相關(guān)的講座和活動;③將各類程序設(shè)計競賽和實踐教學(xué)相結(jié)合,鼓勵學(xué)生參加各類程序設(shè)計大賽,為此學(xué)院提供了穩(wěn)定的經(jīng)費和場地支持,并依據(jù)參賽結(jié)果給學(xué)生一定的表彰和物質(zhì)獎勵;④在大一第二學(xué)期末段,組織學(xué)生到印孚瑟斯技術(shù)中國有限公司等IT企業(yè)實地參觀學(xué)習(xí),了解這些企業(yè)的文化、發(fā)展和對職業(yè)崗位能力的需求,進一步讓學(xué)生明確個人今后的發(fā)展目標(biāo)和計劃,激發(fā)其學(xué)習(xí)熱情和自身的發(fā)展?jié)撃埽?]。
四、結(jié)束語
關(guān)鍵詞:C語言程序;調(diào)試技術(shù);探究與分析
近些年來,筆者在研究C語言程序設(shè)計過程中,發(fā)現(xiàn)許多人對于自身編輯的C語言程序運行中出現(xiàn)的錯誤的處理方法存在許多問題,無法有效判斷程序錯誤的原因以及其對應(yīng)的調(diào)試方法,文章主要從兩方面分析C語言程序設(shè)計調(diào)試技術(shù)。
一、運行錯誤的判斷與調(diào)試
一般情況下,C語言程序運行錯誤被分為兩種:邏輯錯誤與程序設(shè)計錯誤,前者是指編譯時沒有錯誤提示,可以運行,但實際的運行結(jié)果與程序預(yù)期結(jié)果之間有偏差;后者是指程序設(shè)計中存在的問題,在編譯與連接程序時也沒有被發(fā)現(xiàn),程序設(shè)計錯誤的主要表現(xiàn)為:計算機突然死機、自行熱啟動或輸出信息混亂等[1]。
文章主要介紹兩種常見的運行錯誤調(diào)試方法:
①程序算法設(shè)計不合理
有一種邏輯錯誤主要是由于C語言程序設(shè)計時的算法不合理而引起的,例如對邊界及特殊情況未作預(yù)先處理,例如下述循環(huán):
While(count)
x
…
count=count-1;
y
該循環(huán)的設(shè)計構(gòu)思是進行count次循環(huán),但是在該循環(huán)中,while旁邊的判斷條件恒為真,程序就會進入“死循環(huán)”,這顯然是由于算法設(shè)計錯誤而導(dǎo)致的,但是編譯器對于該類錯誤的敏感度較低,只有程序運行出現(xiàn)異常的時候才可能被發(fā)現(xiàn)[3]。再舉一個例子:根據(jù)海倫公式計算三角面積的時候,首先需要對給出的三條邊長是否符合“三角形任何兩邊的和大于第三邊”的定理,若不符合這一定理則運算結(jié)果毫無意義;而程序員在設(shè)計一般實系數(shù)一元二次方程的程序時,必須設(shè)定處理復(fù)數(shù)情況的程序,避免出現(xiàn)運行錯誤[4]。若采用手算的方法是不需要先考慮到這方面,可以在出現(xiàn)問題后再根據(jù)實際情況提出解決措施。但是C語言程序是為計算機設(shè)計的,計算機不具備人腦自行應(yīng)變的能力,因此,在程序設(shè)計的過程中必須事先將可能發(fā)生的一切問題都考慮到,特別是客戶委托程序員設(shè)計的或是作為商品出售的軟件更要注意這一問題。
②程序輸入時的打字錯誤
還有一種常見的邏輯錯誤是在C語言程序輸入過程中,由于程序員不小心打錯字導(dǎo)致的,例如將判斷條件中的“>=”輸為“>”,將相等判斷“==”輸為“=”等。存在此類錯誤的程序在運行過程中出現(xiàn)的錯誤表現(xiàn)具有多樣化,且很難將該錯誤出現(xiàn)的原因與打字錯誤聯(lián)系起來[5]。
數(shù)據(jù)輸入中存在的字符錯誤或字符的格式錯誤等都會影響程序的運行結(jié)果,尤其是在數(shù)據(jù)量大,且數(shù)據(jù)輸入采用人工輸入的工作中,極其容易發(fā)生這種錯誤。筆者以多年工作經(jīng)驗建議當(dāng)數(shù)據(jù)輸入量較大時,采用文件記錄的方式,再通過讀寫文件來進行數(shù)據(jù)輸入,這樣就能夠通過編輯數(shù)據(jù)文件來檢測數(shù)據(jù)中存在的錯誤,并且在重新計算或調(diào)試過程中就不需要反復(fù)輸入[6]。這種方法非常適用于科學(xué)或工程計算應(yīng)用程序中的數(shù)據(jù)計算。
還有一種方式就是采用自行編寫的、比較完善的數(shù)據(jù)校驗輸入模塊來取代C語言中的scanf()函數(shù)來輸入數(shù)據(jù)。這種方法多用于數(shù)據(jù)處理、事務(wù)管理等復(fù)雜的應(yīng)用程序開發(fā),常常需要將數(shù)據(jù)輸入與用戶界面等模塊相結(jié)合,對編程技能有較高的要求。
二、C語言程序設(shè)計基本調(diào)試方法
文章主要針對C語言程序設(shè)計基本調(diào)試方法的四種方法進行介紹。
1.標(biāo)準(zhǔn)數(shù)據(jù)校驗
在程序編譯、連接完畢之后,下一階段就是運行調(diào)試。運行調(diào)試階段首先需要使用若干組已知結(jié)果的標(biāo)準(zhǔn)數(shù)據(jù)對程序進行檢驗。在此過程中標(biāo)準(zhǔn)數(shù)據(jù)的選取對檢驗結(jié)果具有重要影響,因此,標(biāo)準(zhǔn)數(shù)據(jù)的選擇需要選取具有代表性且比較簡潔的數(shù)據(jù),主要是為了簡化對檢驗結(jié)果正確性分析的不足[7]。此外,對重要的臨界數(shù)據(jù)也需要進行檢驗。
2.程序跟蹤
對于復(fù)雜的大型程序而言,上述檢驗一次性通過是不可能完成的。一般情況下,程序存在各種各樣的問題(程序存在問題是一個普遍現(xiàn)象,一個錯誤也沒有的程序在實際中較少),因此,需要對程序進行嚴(yán)謹(jǐn)?shù)母櫿{(diào)試。
程序跟蹤是調(diào)試工作中的一種方法。程序跟蹤的方法是通過讓程序一句一句的執(zhí)行,通過觀察程序執(zhí)行過程中的數(shù)據(jù)以及程序的流程變化來分析其中存在的錯誤。例如在Turbo C中,可以采用兩種程序跟蹤的方法,一種是通過利用集成環(huán)境中分步執(zhí)行、斷點設(shè)置以及變量內(nèi)容顯示等功能觀察程序的合理性;還有一種方法是傳統(tǒng)方法,其主要通過在程序中直接設(shè)置斷點、打印重要變量來觀察程序有無錯誤存在。
3.邊界檢查
在數(shù)據(jù)檢查過程中,要重視邊界可能存在的特殊情況,例如以下循環(huán):
While(count
x
…
y
需要檢查設(shè)計數(shù)據(jù)count等于0、負數(shù)、999及1000等情況。若程序中存在if-else或switch等語言組成的分支時,也需要設(shè)計相應(yīng)的判斷數(shù)據(jù),且對分支中的路徑進行檢測。
4.簡化循環(huán)次數(shù)
在調(diào)試程序的過程中,可以通過簡化程序來實現(xiàn)提升調(diào)試速度的目的,例如減少循環(huán)次數(shù)、減小數(shù)組規(guī)模、屏蔽部分次要程序段等方法。但是在簡化程序的過程中,要注意不能太過簡化,否則無法代表程序真實的運行狀況。舉個例子來說,對于一個求解N元一次方程組的程序來說,僅通過將N設(shè)置為2的檢測是遠遠不夠的,不能確定該程序是否在數(shù)值較大的方程組中也能得出正確的數(shù)據(jù)。若在N=5或6的情況下程序計算正確,則可以確保程序出錯的可能性較小。
結(jié)束語
計算機技術(shù)的不斷發(fā)展促使現(xiàn)代人們工作、學(xué)習(xí)以及生活方式發(fā)生巨大改變,且隨著計算機軟件功能的不斷強大,使得計算機軟件廣泛應(yīng)用于各個領(lǐng)域中。但是在C語言程序應(yīng)用過程中,程序錯誤的出現(xiàn)威脅著程序軟件的正常運行。因此,提高程序安全性成為程序員有待解決的問題。文章主要針對C語言程序設(shè)計調(diào)試技術(shù)展開分析,首先介紹了C語言運行錯誤的判斷與調(diào)試,分析了2種常見邏輯錯誤判斷與調(diào)試方法,然后針對4種C語言程序設(shè)計基本調(diào)試方法進行闡述,旨在提高C語言程序設(shè)計調(diào)試技術(shù)水平。
參考文獻
[1]張秀美,趙旭霞.程序調(diào)試技術(shù)在C語言函數(shù)教學(xué)中的應(yīng)用[J].教育教學(xué)論壇,2014,22(11):85-86.
[2]崔光佐,程旭,佟冬等.面向處理器的系統(tǒng)級模擬、仿真及調(diào)試技術(shù) ――基于軟硬件協(xié)同設(shè)計的新方法[J].計算機研究與發(fā)展,2011,38(3):361-367.
[3]李從宇,王寶光.嵌入式DSP系統(tǒng)C語言硬件編程技術(shù)[J].測控技術(shù),2013,26(4):68-70.
[4]姚放吾,金鑫.基于Monitor的C語言源代碼調(diào)試器的設(shè)計與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2014,21(6):55-58.
[5]吳興華.基于C語言軟件開發(fā)的效率、移植及調(diào)試[J].數(shù)字技術(shù)與應(yīng)用,2013,14(12):172-172.
[論文摘要]C程序設(shè)計語言作為大、中專學(xué)生入學(xué)后的首門計算機語言課程,也是重要的程序設(shè)計課程。對于學(xué)生來說,程序設(shè)計的思維方式和概念都是全新的,學(xué)生接受起來很困難,通過對C程序設(shè)計語言教學(xué)方法探討,能收到較好的教學(xué)效果。
一、引言
《C程序設(shè)計語言》是計算機及相關(guān)專業(yè)中一門重要的計算機基礎(chǔ)課程,由于其在當(dāng)今系統(tǒng)軟件和部分應(yīng)用軟件的開發(fā)中具有實用性強的特點,又與硬件和程序設(shè)計環(huán)境底層的聯(lián)系緊密,是當(dāng)今計算機軟硬件工程師應(yīng)該掌握的一種基本的、比較實用的程序設(shè)計語言。它作為學(xué)生入學(xué)后第一次系統(tǒng)地學(xué)習(xí)與高級程序設(shè)計語言和程序設(shè)計有關(guān)的內(nèi)容的一門新課程,本身就比較難;再加上其內(nèi)容的龐雜、語言描述的靈活,更讓學(xué)生感覺難上加難。因此對于擔(dān)任該課程的老師來說,如何教好這門課程,培養(yǎng)學(xué)生運用C程序設(shè)計語言分析問題、解決問題的能力,是這一門課程的目的和宗旨。
二、采用案例教學(xué),培養(yǎng)學(xué)生的興趣和積極性
C程序設(shè)計是應(yīng)用性很強的一門課程它既有理論又有實踐,既講方法又講動手能力。一般來說,教材中前幾章都是先介紹C程序設(shè)計語言的一些概念和基礎(chǔ)知識,然后才介紹程序的建立和運行。這些概念和基礎(chǔ)知識,既枯燥又比較抽象難懂。在教學(xué)中,我們打破課本原有的順序組織課堂教學(xué)的方式的邏輯結(jié)構(gòu)體系,改用從案例入手,通過給學(xué)生演示、讓學(xué)生模仿,在實際應(yīng)用中去探究和領(lǐng)悟這些概念,并適時地加以歸納總結(jié)和概念的延伸,讓學(xué)生在輕松愉快的氣氛中學(xué)習(xí)新知識。
案例教學(xué)法打破了以教材為中心的傳統(tǒng)教學(xué)模式,不按教材的順序授課,而是以精選出的程序設(shè)計的案例為中心,把學(xué)習(xí)的重點放在具體案例的講述上,把要學(xué)習(xí)的語法和概念融入到具體案例中來講解。整個教學(xué)過程中強調(diào)在應(yīng)用中學(xué)習(xí),從而避免了枯燥的理論說教,不僅能增進學(xué)生的學(xué)習(xí)興趣,而且對提高學(xué)生綜合分析和解決實際問題的能力也大有幫助。那么該如何培養(yǎng)學(xué)生對C語言課程的興趣呢?案例教學(xué)法是培養(yǎng)學(xué)生學(xué)習(xí)興趣的有效途徑一。
三、運用多媒體CAI課件教學(xué),提供交互式學(xué)習(xí)環(huán)境
C語言的內(nèi)容比較繁雜,我們把概念、定義等一些知識性的東西用幻燈的形式投影出來就會使課堂內(nèi)容更加豐富,提高學(xué)生的注意力,節(jié)省老師板書的時間,讓整堂課的效果改觀。但是課堂上課件的演示也要適當(dāng),避免喧賓奪主,使學(xué)生更多地關(guān)注了形式的變化,而忽略了內(nèi)容本身。相應(yīng)的,課件在其他內(nèi)容的處理上就要慎重了。比如算法、程序的設(shè)計,我們不是只注重給學(xué)生一個結(jié)果、一個程序,而更應(yīng)該展示給學(xué)生的是一個過程,一個思想,也就是怎么樣去解決這個問題。我們的重點在于教會學(xué)生掌握方法,即幫助學(xué)生學(xué)會自己解決問題,而不是幫助學(xué)生解決問題。即授人以漁,而非授人以魚。因此在講解這些內(nèi)容的時候就不能是一張幻燈一個算法、一個程序,而應(yīng)該重點介紹方法、思想,根據(jù)題目求解的過程,一步一步把結(jié)果“ 寫” 出來。
多媒體CAI課件主要包括課程內(nèi)容、算法演示、在線測試、在線討論以及資源中心五部分功能。多媒體CAI課件可以提供交互式環(huán)境供學(xué)生學(xué)習(xí),并自動根據(jù)操作過程進行實時評價。將多媒體CAI課件和教師課堂講授有機地結(jié)合起來,能形成最佳教學(xué)任務(wù)的綜合性手段與教學(xué)方案。
四、把握課堂教學(xué)方法,提高課堂教學(xué)質(zhì)量
(一)注意“互動式教學(xué)”,切記不要“自演自說”。互動式教學(xué)就是要改變老師是課堂上唯一主體形式的狀況,讓學(xué)生也作為主體形式參與到課堂上來。互動式教學(xué)既可以提高學(xué)生的參與積極性,還可以避免學(xué)生上課疲勞,產(chǎn)生注意力不集中的現(xiàn)象。互動式教學(xué)在形式上有老師提問,讓學(xué)生上黑板演算、上教師機操作,讓學(xué)生討論等,讓學(xué)生進行正誤判析,解決普遍性問題,或者請有獨特思路的同學(xué)演示自己的方法或程序,對比各種方法的優(yōu)缺點,鼓勵大家再提出新方法。實踐證明,這種教學(xué)方法效果顯著,課堂活躍,學(xué)生的參與程度很高。但是我們在進行師生互動方面也要注意把握一個度的概念,讓課堂既要有互動的活躍氛圍,也要有好的課堂秩序,使得課堂互動有序有效進行。
(二)培養(yǎng)學(xué)生讀程序的能力。程序是C語言的本質(zhì),讀程序是學(xué)習(xí)C語言入門最快,也是最好的方法。要培養(yǎng)學(xué)生獨立編程的能力,首先應(yīng)該培養(yǎng)學(xué)生讀程序的能力。學(xué)生讀的程序越多,見識的編程的思想、方法、技巧也就越多,就能更加擴展自己的編程思路,還能在某些時候把別人的東西拿來歸為己用。
在培養(yǎng)學(xué)生讀程序方面要注意循序漸進,先給學(xué)生讀一些簡單的、只有幾行的程序,然后逐漸增大程序的復(fù)雜度。
(三)采用問題驅(qū)動法。在C程序設(shè)計語言課程中,有一些概念之間的差別和程序的設(shè)計步驟如果只通過教師講述,學(xué)生在字面上可以接受,但在理解深度上往往難以達到令人滿意的效果,如果能設(shè)計出一系列問題,讓學(xué)生在實踐和解決問題的過程中自己去探究和體驗,情況將完全是另一個樣子。另外,采用一些有趣的問題來引入對某些語句結(jié)構(gòu)的學(xué)習(xí)同樣有相同的作用。
采用問題驅(qū)動法,一切都要求學(xué)生自己動手動腦設(shè)計,他們在操作過程中探究和解決問題的積極性和主動性得到
了調(diào)動,從而達到了我們的教學(xué)目標(biāo)。
五、加強實驗環(huán)節(jié)的教學(xué)設(shè)計,輔助理論教學(xué)
C程序設(shè)計語言是實踐性很強的一門課,培養(yǎng)學(xué)生的實踐能力是教學(xué)的首要目的。因此,在授課的同時,如何引導(dǎo)學(xué)生利用上機實驗來加強實踐也是教學(xué)中的一個重要環(huán)節(jié)。C程序設(shè)計語言實驗教學(xué)的目的應(yīng)是:1. 緊密配合理論教學(xué),通過相關(guān)實驗,幫助和加深對語句功能的理解;2. 通過實驗可以將各門課程學(xué)到的知識融會貫通,思考利用C程序設(shè)計語言解決實際應(yīng)用問題的有效方法,從而使學(xué)生分析和解決問題的能力得到鍛煉和提高。依據(jù)實驗教學(xué)的目的,考慮學(xué)生的個體差異,將實驗設(shè)置成不同的類型:必做和選做實驗:這兩類實驗都是結(jié)合相關(guān)課程的教學(xué)需要由授課教師設(shè)計的;前者目的在于幫助學(xué)生掌握基礎(chǔ)知識和實驗研究方法,后者則在于培養(yǎng)和鼓勵學(xué)生的學(xué)習(xí)興趣、擴大知識面以及培養(yǎng)學(xué)生的應(yīng)用能力和創(chuàng)新意識。從而大大激發(fā)了學(xué)生的學(xué)習(xí)熱情,為其今后的學(xué)習(xí)和工作打下良好的基礎(chǔ)。
六、結(jié)束語
要教學(xué)好C 程序設(shè)計語言,關(guān)鍵在于教師要有效地組織教學(xué),才能激發(fā)學(xué)生的學(xué)習(xí)興趣,讓學(xué)生主動、愉快地學(xué)習(xí),滿足他們的求知欲,這樣才能取得良好的教學(xué)效果。
參考文獻
摘 要: 教師要提高《C語言程序設(shè)計》教學(xué)質(zhì)量,必須依據(jù)教學(xué)目標(biāo),對教學(xué)內(nèi)容進行重新組織梳理;用案例教學(xué)、項目驅(qū)動教學(xué)等手段豐富教學(xué)方法;構(gòu)建多元考核評價體系。從而在實踐中取得良好效果。
關(guān)鍵詞: 教學(xué)改革 《C語言程序設(shè)計》 組織結(jié)構(gòu) 教學(xué)方法
1.引言
《C語言程序設(shè)計》是高校計算機專業(yè)的重要基礎(chǔ)課程,在計算機專業(yè)的課程體系中占有極其重要的地位。一方面C語言是學(xué)生接觸的第一門專業(yè)類課程,是培養(yǎng)學(xué)生專業(yè)興趣的起點。另一方面,C語言是其他很多核心專業(yè)課的先修課程,如數(shù)據(jù)結(jié)構(gòu)、計算機圖形學(xué)等。所以C語言的掌握水平在很大程度上決定了學(xué)生專業(yè)基礎(chǔ)知識的掌握,直接影響后續(xù)課程的學(xué)習(xí)效果和專業(yè)素質(zhì)的培養(yǎng)。所以如何提升教學(xué)質(zhì)量,讓學(xué)生確確實實地學(xué)好這門課程,是教學(xué)改革的目的和指導(dǎo)方向。
2.改革教學(xué)內(nèi)容組織結(jié)構(gòu)
《C語言程序設(shè)計》的主要內(nèi)容包括語法基礎(chǔ)、控制結(jié)構(gòu)、數(shù)據(jù)類型、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體與共用體、文件等。近年來因為學(xué)校培養(yǎng)方案的改革,很多專業(yè)課程課時都被壓縮。C語言現(xiàn)有學(xué)時滿足不了把所有知識點都教授給學(xué)生的教學(xué)要求。改革內(nèi)容組織結(jié)構(gòu)就很有必要,首先要明確課程教學(xué)目標(biāo)。《C語言程序設(shè)計》的課程教學(xué)目標(biāo)要求學(xué)生掌握C語言的基本概念、語法和程序設(shè)計的常用方法;領(lǐng)會結(jié)構(gòu)化、模塊化程序設(shè)計的基本思想;通過編程訓(xùn)練,熟練使用編程工具編寫和調(diào)試程序;在課程學(xué)習(xí)的過程中,形成良好的編程風(fēng)格和程序設(shè)計思維方式,提高分析問題及通過設(shè)計程序解決實際問題的能力,為專業(yè)課程體系中后續(xù)課程的學(xué)習(xí)打下基礎(chǔ)。依據(jù)教學(xué)目標(biāo),把教學(xué)內(nèi)容分為三個層次。
3.改革教學(xué)方法
3.1教學(xué)手段的改革
C語言的課堂內(nèi)容多是抽象的理論,對大多數(shù)學(xué)生來說枯燥無味。首先,教師可以通過研討和網(wǎng)絡(luò)資源,向優(yōu)秀教師學(xué)習(xí),不斷提高自身能力。其次,整合資源制作優(yōu)秀的教學(xué)課件,既要體現(xiàn)新的教學(xué)方法,又要現(xiàn)實教學(xué)內(nèi)容的層次性。再次,充分利用現(xiàn)代教育技術(shù),把教學(xué)資源放在網(wǎng)絡(luò)上,供學(xué)生自行調(diào)用,也可在網(wǎng)上給學(xué)生答疑。最后,以案例教學(xué)、分組討論等方式豐富課堂教學(xué)方法,不單純依賴多媒體教學(xué)。
3.2實驗教學(xué)的改革
在實驗教學(xué)中,可采用“項目驅(qū)動,分層教學(xué)”的方法。
項目驅(qū)動教學(xué)是整個實驗教學(xué)圍繞一個工程項目進行,逐步拓展實訓(xùn)項目和設(shè)計,將每一個階段的學(xué)習(xí)作為項目的一部分完成,最后課程結(jié)束時,完成一個小型系統(tǒng)程序的建立。
通過實驗?zāi)軌驅(qū)崟r了解學(xué)生的內(nèi)容掌握及編程能力。在教學(xué)過程中,由于個體差異的存在,學(xué)生在內(nèi)容掌握和編程應(yīng)用方面會有較大差異。針對這種現(xiàn)狀,就需要應(yīng)用“分層教學(xué)”。對基礎(chǔ)好的學(xué)生,可以多給一些深入的實驗題目,而對基礎(chǔ)不好的學(xué)生,就要幫助其弄懂、掌握學(xué)習(xí)內(nèi)容。
3.3多元的考核評價體系
課程考核評價分為兩部分:過程考核和期終考核。過程考核就是平時成績,依據(jù)學(xué)生的出勤、日常表現(xiàn)、課后作業(yè)、實驗報告、測驗和項目完成情況和完成質(zhì)量對學(xué)生進行考核,占總成績的60%,期終考核是以卷面考試方式檢測學(xué)生對于所有知識點的綜合掌握情況,占總成績的40%。
4.結(jié)語
通過本學(xué)期的教學(xué)實踐,課堂教學(xué)和實驗教學(xué)效果都得到很好的改善,調(diào)動學(xué)生的學(xué)習(xí)積極性。學(xué)生的編程能力和課程內(nèi)容掌握水平都有明顯提高,取得長足發(fā)展。
參考文獻:
[1]何克抗,鄭永柏,謝幼如.教學(xué)系統(tǒng)設(shè)計[M].北京師范大學(xué)出版社,2002.
[2]戴大蒙.“程序設(shè)計類”課程層次型教學(xué)模式的研究與實踐[J].中國成人教育,2010.9.
[3]張秋生.C語言程序設(shè)計課程教學(xué)改革與實踐[J].軟件導(dǎo)刊,2012.11.
[4]何欽銘,顏暉,蘇小紅等.“程序設(shè)計基礎(chǔ)”課程教學(xué)實施方案[J].中國大學(xué)教育,2010.5.
1.1理論教學(xué)
對于大多數(shù)課程而言,從宏觀上將課程知識點及其關(guān)聯(lián)講授給學(xué)生非常必要,這便于學(xué)生更加系統(tǒng)深刻地理解所學(xué)內(nèi)容。作為教材講解C語言程序設(shè)計的知識點結(jié)構(gòu)。知識點之間的關(guān)聯(lián)可以層層細化,教師首先從宏觀上給學(xué)生介紹C語言程序的整體組成結(jié)構(gòu)。教師對涉及的知識點進行歸類,共包含預(yù)處理命令、數(shù)據(jù)類型、運算符、語句和函數(shù)等5部分,從宏觀上梳理C語言與程序設(shè)計課程的知識點是非常必要和重要的,這樣可以避免學(xué)生“只見樹木,不見森林”,最后只學(xué)到一堆零散的知識點,只有從宏觀上把握各個知識點在知識體系中的位置和作用,才能學(xué)得深、記得牢。對于程序語言課程,如果僅僅介紹語法的運用,學(xué)生往往對知識點理解不深刻。我們在教學(xué)實踐中的體會是:在講解C語言語法的基礎(chǔ)上,適當(dāng)?shù)仄饰鼍幊陶Z言在計算機中的運行機制,會讓學(xué)生的理解更加透徹。因此,我們的課堂教學(xué)方法分為如下兩部分。
1)課件講解。課件講解包括兩部分,即知識點要點總結(jié)和知識點運行機制剖析。知識點要點總結(jié)就是告訴學(xué)生該知識點如何使用;而知識點運行機制剖析則告訴學(xué)生該程序在計算機內(nèi)存中的執(zhí)行過程。由于絕大部分高校在開設(shè)C語言程序設(shè)計之前都會開設(shè)計算機文化基礎(chǔ)等課程,因此學(xué)生有足夠的計算機基礎(chǔ)知識來理解C語言程序的運行機制。
2)實例演示。作為一門編程語言,C語言需要在實踐中理解和掌握,因此,課堂教學(xué)中,在具體的編程環(huán)境(如VC++6.0)下演示十分必要。通過在具體的軟件環(huán)境下編程,告訴學(xué)生應(yīng)該做什么和不應(yīng)該做什么,并總結(jié)該知識點的注意事項。相比傳統(tǒng)的脫離編程環(huán)境,只在PPT或黑板上進行板書的教學(xué)模式,該方法的教學(xué)效果要好得多。在課堂教學(xué)中,具體的教學(xué)步驟如下:①使用PPT或者板書列出該知識點的注意要點;②在編程環(huán)境(如VC++6.0)下演示該知識點的用法,給出正確的和錯誤的使用方法,并進行對比;③通過幻燈片動畫或Flas等形式演示程序在計算機內(nèi)存中的執(zhí)行過程,讓學(xué)生更加深刻地理解程序的運行機制。
3)教學(xué)難點與重點——“復(fù)合知識點”。從C語言的教學(xué)內(nèi)容來講,數(shù)組、函數(shù)和指針是教學(xué)的重點章節(jié),這些章節(jié)之間相互關(guān)聯(lián)的部分又是重點中的難點,如數(shù)組和函數(shù)結(jié)合,數(shù)組名做函數(shù)參數(shù),數(shù)組和指針結(jié)合,指向數(shù)組的指針變量,函數(shù)和指針結(jié)合,指向函數(shù)的指針變量等。在教學(xué)過程中要反復(fù)強調(diào)各個知識點的注意事項,如果基本知識點能夠理解透徹,上述難點內(nèi)容也就迎刃而解了。
1.2上機實踐教學(xué)
在實踐教學(xué)中,教師可以通過實際教學(xué)案例循序漸進地強化學(xué)生對C語言知識點的理解。上機實踐的教學(xué)內(nèi)容通常分為兩部分:基本知識點練習(xí)和綜合訓(xùn)練。首先通過基本知識點的練習(xí),讓學(xué)生掌握該知識點的使用,即鞏固課堂所學(xué)內(nèi)容;然后通過一個綜合性的大作業(yè),訓(xùn)練學(xué)生綜合應(yīng)用C語言知識點的能力,例如,通過編寫“學(xué)生課程成績統(tǒng)計系統(tǒng)”考查學(xué)生對數(shù)組、結(jié)構(gòu)體、指針、函數(shù)、文件等知識的綜合掌握情況。對于初學(xué)編程語言的學(xué)生,往往沒有養(yǎng)成良好的編程習(xí)慣,出錯的可能性較大,而出錯之后進行調(diào)試又將耗費較長的時間,這勢必對學(xué)生的學(xué)習(xí)熱情產(chǎn)生負面影響。因此,一開始就給學(xué)生制定科學(xué)的編程步驟和規(guī)范,使學(xué)生養(yǎng)成良好的編程習(xí)慣,將大大減少程序出錯的可能。下面是按照上述五步編寫的一個完整的C語言程序,用來比較兩個整數(shù)的大小。按照上述五步進行編程,經(jīng)過一段時間的訓(xùn)練之后,學(xué)生出現(xiàn)語法錯誤的可能性大大降低,此時學(xué)生更多的精力將集中在程序算法的設(shè)計和實現(xiàn)上。
1.3考試形式
對于C語言程序設(shè)計的考核方式,我們采用知識點考核和編程實踐相結(jié)合的方式。知識點考核偏重于C語言基本語法,用于檢驗學(xué)生對知識點的掌握是否全面,此項考核約占總成績的40%;編程實踐考核用于檢驗學(xué)生的實際動手能力,學(xué)生將在規(guī)定的時間內(nèi)根據(jù)題目在機器上編程,此項考核約占總成績的60%。為了實現(xiàn)知識點的考核,我們將考試與計算機二級C語言上機考試緊密結(jié)合,采用題庫平臺進行上機考試,學(xué)生直接在機器上答題并提交,知識點考核多采取客觀題,如填空題、程序修改題以及讀程序題等,編程題在實戰(zhàn)編程中考核。C語言程序設(shè)計課程的重要特點就是實踐性強,學(xué)習(xí)該課程的目的就是為了編寫程序。因此從考試的角度講,進行編程實踐是最合適的方式,通過上機編程來考核學(xué)生的學(xué)習(xí)情況也是最公正和客觀的方式。
2C語言程序設(shè)計教學(xué)實踐結(jié)果分析
中國礦業(yè)大學(xué)(北京)每年都有40多個班級同時開設(shè)C語言程序設(shè)計課程,因此該課程教學(xué)質(zhì)量的高低將直接影響全校理工科學(xué)生對C語言的理解和掌握。中國礦業(yè)大學(xué)(北京)C語言程序設(shè)計教學(xué)團隊經(jīng)過長期的探索總結(jié)出一套行之有效的C語言教學(xué)方法,我們將上述方法在學(xué)校越崎實驗班中進行了試點。如圖2所示,采用上述教學(xué)法的越崎實驗班的C語言程序設(shè)計課程考試成績要明顯好于其他班級,其中90分以上的學(xué)生占10.7%,80分以上的學(xué)生占總?cè)藬?shù)的53.6%。另外,學(xué)生的學(xué)習(xí)積極性比采用上述方法前得到明顯提高,很多學(xué)生都對計算機編程產(chǎn)生了濃厚興趣,實踐證明我們提出的上述方法是行之有效的。
3結(jié)語
關(guān)鍵詞:教學(xué)方法;教學(xué)模式;思維訓(xùn)練;自學(xué)能力
中圖分類號:G642文獻標(biāo)識碼:A文章編號:1009-3044(2008)21-30486-03
The Research of Teaching Methods in "C Programming Language"
LIU Jian-you
(Zhaoqing Science and Technology Polytechnic,Zhaoqing 526020,China)
Abstract: C is a typical structural programming language, many colleges and universities use it as basic programming language. Students often complain about C language difficult to learn, to use, to build the application software, lack of programming and debugging capabilities. How to better carry out the C language courses teaching?Author on the problems that exist in teaching, with his personal experience in teaching and experience, talk about their own views, to promote the C language teaching.
Key words: teaching methods; teaching mode; thinking training; self-learning ability
1 引言
程序設(shè)計語言的種類多得難以計算,為什么要以C語言作為編程入門語言呢?還有人說為什么一定要學(xué)習(xí)C語言,干嘛不直接從C++學(xué)起?而且學(xué)C++不一定要有C語言基礎(chǔ),有了反而會有些內(nèi)容混淆。還有人說C語言都已經(jīng)過時了,怎么還要浪費時間去學(xué)?C語言在教學(xué)過程中,抱怨C語言難學(xué),難懂,難用,在解決實際問題編制應(yīng)用軟件時往往無以下手,缺乏編程和調(diào)試的能力。。久而久之,學(xué)生對學(xué)習(xí)此門課程就會產(chǎn)生厭倦的心理,不但影響本課程的學(xué)習(xí),還會影響以后相關(guān)課程的學(xué)習(xí)。本文針對以上問題,指出了如下措施:
2 學(xué)習(xí)《C語言程序設(shè)計》的意義
我認為在學(xué)習(xí)C語言之前有必要弄清學(xué)習(xí)的意義所在,這樣才能讓學(xué)生對其產(chǎn)生興趣。興趣是人類最好的老師,只有對其產(chǎn)生了興趣,我們才能學(xué)好這門語言。
將C語言作為入門語言具有重要的意義。C語言是一門典型的結(jié)構(gòu)化程序設(shè)計語言,它具有語言簡潔、嚴(yán)謹(jǐn),用途廣泛等特點,能夠體現(xiàn)結(jié)構(gòu)化程序設(shè)計的優(yōu)良控制結(jié)構(gòu),非常適合初學(xué)者。通過這門課程的學(xué)習(xí),能夠使學(xué)生掌握一門結(jié)構(gòu)化程序設(shè)計語言,更為最重要的是能讓學(xué)生樹立用程序解決現(xiàn)實問題的思路和方法。為今后的學(xué)習(xí)打良好的基礎(chǔ)。再學(xué)其他程序設(shè)計語言,就能夠在短時間內(nèi)迅速的掌握。
3 改革課程教學(xué)內(nèi)容,重視算法的編程思想,培養(yǎng)創(chuàng)造性思維
精選課程內(nèi)容是一項非常重要的工作,它是教學(xué)內(nèi)容的核心部分,《C語言程序設(shè)計》的核心內(nèi)容包括C語言基本語法、程序設(shè)計思想和程序調(diào)試方法。語法是任何一門語言的基礎(chǔ),同時,各種程序設(shè)計語言在基本知識點上是相同的,學(xué)生對基礎(chǔ)知識的正確理解和準(zhǔn)確運用,其意義是深遠的。
C語言程序是由函數(shù)組成的,無論問題多么復(fù)雜,我們都可以將其看成是一個大任務(wù),這個大任務(wù)又可化分成若干個小任務(wù),將這些小任務(wù)解決了,那么大任務(wù)也就完成了。也就是說其任務(wù)只有一個,就是編寫函數(shù)(一個main()主函數(shù)和其他函數(shù))。執(zhí)行程序時,從mian()的第一個“{”,開始直到最后一個“}”結(jié)束,其他函數(shù)只有在執(zhí)行的過程中被調(diào)用才執(zhí)行。
學(xué)習(xí)C語言程序設(shè)計不僅是為了掌握一種開發(fā)工具,更重要的是用計算機解決問題。而算法是解題的方法和步驟,算法就是對操作的具體描述,是計算機的解題過程。編制程序,就是根據(jù)算法,用具體的語言依據(jù)某種規(guī)則編寫計算機執(zhí)行的命令序列。因此學(xué)習(xí)語言的重點是鍛煉分析、分解,最終歸納整理出算法的能力。在教學(xué)過程中,學(xué)生能否理解算法,并掌握算法,成為教學(xué)的關(guān)鍵。
在C語言的教學(xué)過程中,改革傳統(tǒng)的語法學(xué)習(xí)內(nèi)容,將算法教學(xué)融入到語言教學(xué)中。由于C語言語法的邏輯性較強、結(jié)構(gòu)性要求較高,初學(xué)者剛接觸的時候容易考慮不全。因此算法教學(xué)可以通過實例進行, 從最簡單的例子入手,使學(xué)生在解決具體問題的過程中學(xué)習(xí)C語言的基本邏輯結(jié)構(gòu)和語句。生活中到處都存在著算法。而對于同一個問題可以有不同的解題方法和步驟,可以讓學(xué)生根據(jù)同一個問題提出不同的算法,并比較這些算法之間的優(yōu)劣,并讓學(xué)生根據(jù)分析對算法進行優(yōu)化。通過對算法的優(yōu)化練習(xí),可以在無形中提高學(xué)生寫算法的水平。
4 改革課堂教學(xué)模式,培養(yǎng)學(xué)生自學(xué)能力
在教學(xué)中可以使用下面的一些方法,提高教學(xué)效果,培養(yǎng)學(xué)生的邏輯思維能力和動手能力。
4.1 改變傳統(tǒng)的教學(xué)方式
雖然這個話題是老生常談了,但是現(xiàn)在部分老師還沒有認識到這個問題的重要性,仍然是“教師單向灌輸”的教學(xué)模式。教師首先要在教學(xué)過程中樹立以學(xué)生為主體,老師為主導(dǎo)的教學(xué)思想,正確處理傳授知識與培養(yǎng)能力、提高素質(zhì)之間的關(guān)系;其次改變教學(xué)模式,償試采用以下教學(xué)方式。
4.1.1 任務(wù)驅(qū)動教學(xué)方式
在教學(xué)過程中避免照本宣科、枯燥乏味,“任務(wù)驅(qū)動”是建構(gòu)主義理論中的一種教學(xué)模式,是將所要學(xué)習(xí)的新知識隱含在一個或幾個任務(wù)之中,學(xué)生通過對所提的任務(wù)進行分析、討論,明確它大體涉及哪些知識,在老師的指導(dǎo)、幫助下找出解決問題的方法,最后通過任務(wù)的完成對學(xué)生知識的傳授。事實上它并不是簡單的給出任務(wù)就了事,重要的是要讓學(xué)生學(xué)會學(xué)習(xí),使他們學(xué)會從多方位、多層次、多角度去考慮問題。使學(xué)生認識到學(xué)有所用、學(xué)以致用,自然地產(chǎn)生學(xué)習(xí)的愿望和動力。
可以先給出一個比較典型的C語言編寫的例子。給學(xué)生具體的演示,通過這個效果激發(fā)學(xué)生的積極性。要求學(xué)生在期末的時候編寫出相應(yīng)的程序。有了這個任務(wù),在講課的時候逐步的告訴學(xué)生每一章可以具體的實現(xiàn)例子的那個部分,讓學(xué)生逐步的去實現(xiàn)相應(yīng)的功能。他們實現(xiàn)了相應(yīng)的效果,就會極大地增強學(xué)習(xí)的興趣和熱情。這樣可以讓學(xué)生在愉悅的過程中學(xué)好這門課程。
4.1.2 啟發(fā)式教學(xué)
為培養(yǎng)學(xué)生邏輯思維和創(chuàng)新能力,在教學(xué)過程中,教師遵循啟發(fā)式教學(xué)原則,通過各種教學(xué)方式和手段激發(fā)學(xué)生的學(xué)習(xí)欲望,積極投入到學(xué)習(xí)活動中,積極思維,發(fā)現(xiàn)問題,提出問題,并逐步解決問題。例如,在講解程序設(shè)計舉例時,不是簡單地給出程序清單,而是從分析問題入手,繼而找出解決問題的方法,再給出算法,最后編寫出完整的程序,而在這一全過程,最關(guān)鍵的是每一步都采用與學(xué)生一起探討的方式,讓學(xué)生在啟發(fā)下思考,在思考中解決問題,從而掌握獨立分析問題、解決問題的方法。
4.1.3 互動式教學(xué)
互動式教學(xué)是教師駕馭講臺能力的具體體現(xiàn)。一個教師站在講臺上,要不斷地掃視下面的學(xué)生,觀察學(xué)生的表情,了解學(xué)生的接受程度,并能及時地調(diào)整教學(xué)的進度和步驟,必要時到達到學(xué)生與教師在課堂上互相之間的交流。允許學(xué)生在不明白的時候隨時提出問題,教師根據(jù)實際情況決定是當(dāng)場解答,還是課后解答。真正實現(xiàn)課堂上的互動,其教學(xué)的效果就會顯著地提高。教師在教學(xué)過程中,還應(yīng)當(dāng)注意設(shè)置疑難問題,引導(dǎo)學(xué)生思考和探索,讓他們的思想活躍起來。
4.1.4 項目分析式教學(xué)
為培養(yǎng)學(xué)生綜合應(yīng)用知識的能力,通過對完整的項目的系統(tǒng)分析,培養(yǎng)學(xué)生良好的編程習(xí)慣,善于獲取他人經(jīng)驗的能力以及掌握綜合運用所學(xué)知識的能力,從而真正提高編程水平。
4.2 激勵個性化學(xué)習(xí)
在微觀課堂上采用項目遞進驅(qū)動教學(xué)法,改變滿堂灌的做法,將學(xué)生的眼手腦全部調(diào)動起來。精心設(shè)計實例,給學(xué)生一個比較實際的切入點,通過老師的演示使學(xué)生感覺能夠入手,然后再通過將此實例不斷修改、擴充,引導(dǎo)學(xué)生參與到程序的編制過程中,在這個過程中,再將學(xué)生所作的程序展示,讓學(xué)生來評判優(yōu)劣,吸收優(yōu)點,修改錯誤,引導(dǎo)學(xué)生進行優(yōu)化。在這樣的實例教學(xué)中,因為有提出問題、解決問題、擴展問題、再解決問題、對解決問題的方法評價、優(yōu)化設(shè)計等幾個環(huán)節(jié),實際上是一個螺旋式滾動向前的過程,在這個螺旋式不斷向前的過程中,能夠非常自然地調(diào)動學(xué)生的參與,而且通過問題的不斷擴展,通過一個問題的多種解決方法,有效開闊學(xué)生的思維,使得學(xué)生在課堂上真正地成為 “ 主體 ” ,教師扮演 “ 主導(dǎo) ” 角色。 這種通過一個程序的層層推進,引入課程內(nèi)容,使得學(xué)生的每一步學(xué)習(xí)都有基礎(chǔ),是循序漸進,螺旋式上升的過程,使學(xué)生的學(xué)習(xí)是在“走臺階”,而不是“三級跳”,效果很好。
4.3 加強對學(xué)生程序設(shè)計思維訓(xùn)練
《C語言程序設(shè)計》課程不僅僅是一般意義上的知識傳授,要讓學(xué)生掌握程序設(shè)計的基本方法,對學(xué)生進行邏輯思維能力的培養(yǎng)。在實際的教學(xué)過程中,我們發(fā)現(xiàn)有些學(xué)生平時學(xué)得很認真,對語法、語句等細節(jié)也很熟悉,但碰到稍微復(fù)雜一點的編程則無從下手,教師在教學(xué)過程中要樹立正確的教學(xué)思想,即注重算法設(shè)計,加強學(xué)生的程序設(shè)計思維訓(xùn)練,幫助學(xué)生順利地實現(xiàn)思維方式的轉(zhuǎn)變,而不能只單純地講授語言的語法、語義、語用,應(yīng)該將復(fù)雜枯燥的語法知識分解到一個個生動實用的程序?qū)嵗校簿褪窃诮虒W(xué)過程中以程序設(shè)計為主線,有意識淡化計算機語言本身語句的介紹,而重點介紹程序設(shè)計,在分析程序和程序設(shè)計中熟悉語法、應(yīng)用語句,掌握程序設(shè)計和解決問題的思路(算法),并把軟件工程學(xué)的思想貫穿于算法分析和程序設(shè)計的過程中。一定要避免陷入這樣的誤區(qū):教師一味地給學(xué)生講解語句的功能和語法規(guī)則,使學(xué)生陷入冗繁的語法規(guī)則之中,形成以語言為中心的思維模式。這樣教出來的學(xué)生語法背得滾瓜爛熟,只會生搬硬套,缺乏實際編程能力,所以教師應(yīng)注重培養(yǎng)學(xué)生形成以算法為中心的思維模式。對于從未受過算法設(shè)計訓(xùn)練的初學(xué)者來說,可能會感到無從下手,對此,教師應(yīng)該有意識地加強這種思維方式的訓(xùn)練,通過講授一些常用算法、典型算法,如記數(shù)、累加、連乘、兩數(shù)交換、求最大(小)值、迭代、排序、分類等為以后編寫程序、軟件設(shè)計奠定基礎(chǔ),同時典型算法熟練的掌握,也可增加學(xué)生學(xué)習(xí)的信心并提高學(xué)習(xí)的興趣,同時培養(yǎng)學(xué)生的思維能力。
5 強化實踐教學(xué),培養(yǎng)學(xué)生動手能力
實行實踐教學(xué)形式多樣化,上機操作,老師通常讓照著書本的例子進行驗證,這樣無法增加學(xué)生的成就感,使學(xué)生覺得很無聊,在《C語言程序設(shè)計》上機實驗教學(xué)中,除傳統(tǒng)的課堂實驗外,還開展課程設(shè)計、典型程序分析與設(shè)計等實踐環(huán)節(jié),還可以教師組織C程序設(shè)計興趣小組,組織C程序設(shè)計大賽,組織學(xué)生參與科研開發(fā)等,將每一階段的學(xué)習(xí)進行小結(jié)性的貫穿與能力提高。將 C 的知識點都溶化到一個個實訓(xùn)項目的程序編寫中。整個過程以學(xué)生獨立完成為主,教師只提供必要的輔導(dǎo)。經(jīng)過實踐訓(xùn)練,尤其經(jīng)過綜合訓(xùn)練中模擬實際軟件開發(fā)的演練,使學(xué)生得到了鍛煉,進一步激發(fā)了學(xué)習(xí)興趣,培養(yǎng)了問題求解和編程能力,還有利于培養(yǎng)探索和創(chuàng)新能力。
6 改革考核方式,全面實行考教分離
C語言課程所有考試均實行考教分離,這不僅促進了任課教師對教學(xué)的精益求精,而且也給了教師充分發(fā)揮、施展個人教學(xué)才能的空間。在考核方法上,考慮到高職院校是培養(yǎng)應(yīng)用性的實用人才的這一特點,該課程除采用傳統(tǒng)的筆試外,大膽采用更能反映學(xué)生知識應(yīng)用能力的上機考試,這一考試形式非常受學(xué)生的歡迎。可以采用多種形式考核學(xué)生,重點考核學(xué)生的實踐動手能力。
7 結(jié)束語
以上是作者近幾年關(guān)于C語言教學(xué)經(jīng)驗的總結(jié),在實際的教學(xué)過程中取得了良好的教學(xué)效果。筆者認為在教學(xué)過程中除了要使學(xué)生掌握C語言程序設(shè)計這門語言外,最重要的是要讓學(xué)生樹立用程序解決現(xiàn)實問題的思路和方法(算法)。學(xué)生能否理解算法,并掌握算法,成為教學(xué)的關(guān)鍵,這是也學(xué)習(xí)C語言程序設(shè)計的重中之重。
參考文獻:
[1] 譚浩強.C程序設(shè)計[M].2版.北京:清華出版社,2001.
(一《)C語言程序設(shè)計》的教學(xué)目標(biāo)
社會對于人才的需要,并不是要求他們只要學(xué)會理論知識就可以,各個單位對人才的要求更看重于他們的實踐能力,要求他們能夠把所學(xué)習(xí)過的知識轉(zhuǎn)化為動手能力與實際解決問題的能力。因此,對于學(xué)生的《C語言程序設(shè)計》課程的教學(xué)只是進行理論知識的教育是遠遠不夠的,還有提升學(xué)生的綜合能力。學(xué)生要達到的認知類目標(biāo)包括:掌握C語言程序設(shè)計課程相關(guān)的基本概念;理解解決問題的基本技巧;理解標(biāo)記控制循環(huán)與計數(shù)控制循環(huán);把握程序性的知識,并學(xué)會如何應(yīng)用。學(xué)生要達到的能力類的目標(biāo)包括:掌握C語言程序設(shè)計的基本技能,進行程序計算;熟練運用與、或、否命題,以此來解決實際中的程序問題;熟練運用一些基本的邏輯運算符;能夠使用break和continue程序控制語句;學(xué)會編寫基本字符模式下的簡單程序;另外還有培養(yǎng)學(xué)生動手實踐能力和與他人合作的能力。除此之外,還有培養(yǎng)學(xué)生學(xué)習(xí)C語言程序設(shè)計的興趣,養(yǎng)成學(xué)習(xí)工作中嚴(yán)謹(jǐn)、務(wù)真求實的良好態(tài)度,培養(yǎng)解決程序問題的開放性思維。
(二《)C語言程序設(shè)計》教學(xué)策略設(shè)計
對學(xué)生進行C語言程序設(shè)計的教育,其最終目的就是要讓學(xué)生掌握這門課程,并且運用到實際工作中,而教學(xué)策略的設(shè)計,就是為了在最短的時間內(nèi),讓學(xué)生掌握更多的知識,并且將其轉(zhuǎn)化為自身的實踐能力。(1《)C語言程序設(shè)計》的教學(xué)方法教學(xué)方法多種多樣,其中講授法、談話法、演示法、實踐法等最為常見。教師在選擇教學(xué)方法的時候,要充分考慮教學(xué)大綱的要求和教材中的內(nèi)容,還要考慮學(xué)生的學(xué)習(xí)情況與學(xué)習(xí)能力,以及現(xiàn)有的教學(xué)條件,從而選擇最適合教學(xué)工作的一種方法。同樣的教學(xué)方法,對于某一個班級的學(xué)生合適,對于另外一個班級也許就不適用,因為每個班的學(xué)習(xí)氛圍不同,同理,對于某一位學(xué)生教學(xué)方法很恰當(dāng),而對另外一個學(xué)生來說,可能就是阻礙學(xué)習(xí)的因素。因此,教師在教學(xué)過程中要對各個方面影響教學(xué)效果的因素進行充分的考慮。對學(xué)生的教學(xué)工作,可以采取分組教學(xué)的形式,這種方法不但可以讓教師能夠更大程度上關(guān)注到每一位學(xué)生的學(xué)習(xí)情況,還能夠通過小組間學(xué)生相互幫助,分享交流學(xué)習(xí)經(jīng)驗,從而獲得更多提高成績的機會。另外,學(xué)生之間的交流要比學(xué)生與教師之間的交流更為順利,學(xué)生之間相互學(xué)習(xí)更容易發(fā)現(xiàn)自身的優(yōu)勢與不足之處,從而把自己的學(xué)習(xí)經(jīng)驗分享給其他人,同時向其他同學(xué)學(xué)習(xí)自己沒有掌握的知識。小組教學(xué)還能夠增強學(xué)生的交流能力,加強學(xué)生之間的人際關(guān)系,培養(yǎng)學(xué)生的團隊合作能力,從而提升學(xué)生的綜合素質(zhì)。(2《)C語言程序設(shè)計》的學(xué)習(xí)組織形式學(xué)習(xí)組織能力是指學(xué)生在學(xué)習(xí)的過程中,師生的共同活動在程序、人員、時空關(guān)系上的組合形式。運用適合學(xué)生的學(xué)習(xí)組織形式,有助于學(xué)生提高C語言程序設(shè)計學(xué)習(xí)的效率,同時,還可以將一些高效率的學(xué)習(xí)方法、學(xué)習(xí)敬仰在學(xué)習(xí)組織形式中進行運用,由于《C語言程序設(shè)計》教學(xué)分為基礎(chǔ)知識與課程設(shè)計兩種基本形式,我們把以問題為導(dǎo)向的《C語言程序設(shè)計》教學(xué)模式下的學(xué)習(xí)組織形式也分為兩種類型。一種是課堂小組合作學(xué)習(xí)。在《C語言程序設(shè)計》所有課時中,基礎(chǔ)知識的課程占據(jù)了絕大多數(shù),教學(xué)地點可以選為網(wǎng)絡(luò)機房,以問題為導(dǎo)向的《C語言程序設(shè)計》有利于學(xué)生培養(yǎng)團隊合作精神,提高彼此之間的交流能力,鼓勵學(xué)生在學(xué)習(xí)的過程中勇敢地提出問題回答問題,為學(xué)生營造一種良好的學(xué)習(xí)氛圍。教師充分發(fā)揮自身的引導(dǎo)與輔助的作用,幫助學(xué)生發(fā)現(xiàn)問題,解決問題。另一種類型是課程設(shè)計探究學(xué)習(xí)。課程設(shè)計的時間一般比較短,在此期間,教師要通過合理的課程設(shè)計來為學(xué)生創(chuàng)造一個和諧的學(xué)習(xí)氛圍,師生之間、學(xué)生之間進行交流,分享學(xué)習(xí)經(jīng)驗與解決問題的方法,一方面可以增加學(xué)生彼此學(xué)習(xí)的機會,另一方面也可以監(jiān)督學(xué)生完成自己的學(xué)習(xí)任務(wù)。(3)網(wǎng)絡(luò)環(huán)境下的問題導(dǎo)向教學(xué)模式網(wǎng)絡(luò)環(huán)境下的以問題為導(dǎo)向的《C語言程序設(shè)計》課程教學(xué)模式,則是利用網(wǎng)絡(luò)科技來輔助教師的教學(xué)活動,在這個教學(xué)過程中,教師是教學(xué)活動中的引導(dǎo)者與輔助者,而學(xué)生才是學(xué)習(xí)的主體。教師為學(xué)生設(shè)計好學(xué)習(xí)任務(wù),明確每一位學(xué)生所要解決的問題,再對學(xué)生進行合理的分組,讓學(xué)生充分利用網(wǎng)絡(luò)資源,收集對自己有利的信息,并且對信息進行有效的篩選與整合。學(xué)生在尋求解決問題的過程中,能夠充分利用網(wǎng)絡(luò)環(huán)境的優(yōu)勢,推動以問題為導(dǎo)向的教學(xué)模式的實施,實現(xiàn)學(xué)生的自主學(xué)習(xí)、互動合作、自覺約束自己的學(xué)習(xí)活動。這樣,學(xué)生在整個學(xué)習(xí)過程中,不僅解決了教師提出的問題,還掌握了搜集、處理信息的能力,收獲成功之后的成就感,增強與他人之間的交流,提高自身的創(chuàng)造能力,真正做到增強自身的綜合素質(zhì)。
2以問題為導(dǎo)向的《C語言程序設(shè)計》的實踐
在《C語言程序設(shè)計》課程教學(xué)過程中,教師的教學(xué)工作與學(xué)生的學(xué)習(xí)活動總是會暴露一些問題,如教師講解不到位,學(xué)生不能理解理論知識,教師講課難以吸引學(xué)生的學(xué)習(xí)興趣,學(xué)生學(xué)習(xí)效率低下等問題。而以問題為導(dǎo)向的《C語言程序設(shè)計》教學(xué)模式,要如何進行具體的實施,才能夠幫助學(xué)生掌握解決問題的技巧,加深對理論知識的理解呢?
(一)以問題為導(dǎo)向的教學(xué)模式中的課程設(shè)計
在《C語言程序設(shè)計》教學(xué)過程中,使用以問題為導(dǎo)向的教學(xué)模式,要明確本次課程的教學(xué)目標(biāo)是什么,所有的課程設(shè)計的大方向要以教學(xué)目標(biāo)為準(zhǔn)則,教學(xué)中要以人為本,以學(xué)生為中心,站在學(xué)生的立場上,充分考慮到學(xué)生的接受知識的能力與完成任務(wù)的可能性。另外還有考慮哪些教學(xué)設(shè)備可以供學(xué)生使用,做到最大程度利用現(xiàn)有的資源,幫助學(xué)生掌握更多的知識。同時,對于學(xué)生的要求要合理,要求過高,學(xué)生難以完成目標(biāo),將會打擊學(xué)生的參與教學(xué)的積極性與信心,要求過低,將會浪費時間,學(xué)生的實際能力達不到質(zhì)的飛躍。因此,課程的設(shè)計要實事求是,一切從實際出發(fā)。
(二)以問題為導(dǎo)向的教學(xué)模式實施的原則
1.遵循現(xiàn)代社會教育事業(yè)的發(fā)展規(guī)律,尊重學(xué)生的認知規(guī)律,鼓勵學(xué)生運用自己的優(yōu)勢進行創(chuàng)新性的學(xué)習(xí)。2.堅持以學(xué)生為主體、以學(xué)生為中心的原則,讓學(xué)生出于教學(xué)中的主體地位。營造輕松的學(xué)習(xí)氛圍,讓每一位學(xué)生都積極大膽地參與到其中,敢于提出自己的疑問,敢于回答教師與其他學(xué)生提出的問題,積極參與具有挑戰(zhàn)性的任務(wù)。3.教師發(fā)揮自身的引導(dǎo)與輔助的作用,引導(dǎo)學(xué)生進行有利于提高自身能力的學(xué)習(xí)活動,幫助學(xué)生解決難度較大的問題,并且監(jiān)督學(xué)生對問題作出總結(jié),從完成任務(wù)的過程中學(xué)到更多的知識。
(三)以問題為導(dǎo)向的教學(xué)模式應(yīng)當(dāng)注意的問題