斯仁圖雅
(錫林郭勒職業(yè)學院,內蒙古 錫林浩特 026000)
當前社會逐步跨入互聯(lián)網(wǎng)時代,計算機的應用非常廣泛,很多行業(yè)也都離不開計算機以及編程程序,高校計算機基礎教學隨之發(fā)展,程序設計課程不僅是在培養(yǎng)學生的邏輯思維能力,更是在提高學生對計算機編程的認知,提升學生的綜合計算機素養(yǎng),但當前計算機程序設計課程的教學仍存在一定問題,從下面幾個方面逐一展開分析,并給出幾點相應建議。
要讓課程質量得到提升,需讓學生全面認識這一部分課程內容的重要性,如果學生對程序設計課程的重視程度不夠,認為程序設計課程更偏向于計算機科學與技術學科的基本知識與理論多一些,總體太過基礎,就會出現(xiàn)不夠重視,認為考試時突擊記憶理論即可[1-2],這樣的問題。在學習時對程序設計課程的知識死記硬背,沒有融會貫通,就很難發(fā)揮作用,要知道程序設計課程雖然是基礎,但包含的課程內容卻比較多,著重培養(yǎng)學生的程序性思維,只有學生養(yǎng)成良好的編程思維,學生在后續(xù)的學習才會更加輕松,如果學生認知不到位,在后續(xù)的學習就會是知識的單純積累,無法對知識靈活應用。
需明確,學生在發(fā)展的過程中是存在個體差異的,在教學的過程中,應該充分尊重學生存在的差異。一部分學生對計算機以及程序性思維已經有了深入了解,程序設計課程教學一點就通,再三講授就會讓學生覺得枯燥,而對于沒有計算機或編程思維基礎的學生,在初接觸抽象化的編程設計課程時,又會出現(xiàn)學習困難的現(xiàn)象,長而久之就會形成抵觸情緒,嚴重者還會產生自我懷疑,使得學習越發(fā)困難。對此教師需要積極解決這一問題,在課堂上可以開展分層教學,針對不同層次的學生設定不同的目標,不能以同樣一套目標要求所有學生。以更好的顧及所有學生的發(fā)展水平。
程序設計課程沒有捷徑可走,只有多看書、多練習,把所有結構和類型以及用法都牢記于心,學生在學在練的過程中,編程性思維就會水到渠成的養(yǎng)成,而沒有足夠的代碼量,很多程序的概念是很難體會到的[5-6],總而言之,計算機程序設計課程要從基礎抓起,程序設計是需要持續(xù)不斷去學去練的課程,要求學生要有數(shù)千行的代碼量,基礎知識的認知與使用穩(wěn)固了,才能更好地開展后續(xù)的學習。
上文提到教師在思想上存在一定誤差,認為計算機程序設計是基礎課程,偏向理論所以重視程度不夠,但事實上,如果缺少基礎的鋪墊,學生難以形成有效的編程思維,在今后的學習中會產生不小的影響,如果學生只是一味地生搬硬套、沒有形成自己的思考與記憶,那么學了等于白學。另外,在眾多的基礎性知識中,結構與類型是一大類,算法是一大類,要著重計算機算法的重要性,沒有算法內涵的程序設計是膚淺的,在基礎認知還不錯的情況下,教師應將算法教學作為自己的主要部分,講究主次協(xié)調,突出重點,這樣學生也能隨教師的引導重視起來。
另外,教師要重視計算機系學生與非計算機系學生的區(qū)別,對于非計算機系的學生,適可而止就好,不宜造成過多壓力,個別突出有學習意向的學生,可以深入教導,對于計算機系的學生,一定要讓他們知道程序的本質是什么,任何一個細節(jié)處都不容忽略。
上文提到計算機程序設計課程相對零散,教學時間不足,因此教師才在課堂上忙著給學生講授教學進度內容,導致學生自主思考時間不足,學生聽得昏昏入睡,根本難以理解教學內容,急促的教育時間很容易束縛學生思維的發(fā)散,為了應對這種情形,教師有必要運用“互聯(lián)網(wǎng)+”思維,將學生的課外實踐利用起來,讓教學時間不至于太急促,而且也會將零散的教學時間調整成為一個整體,這樣學習效果會更好,簡單來說既是:
3.3.1 課前引導學生自學
在互聯(lián)網(wǎng)上有許多的教學資源,不管是學生自主尋找的教學資源還是教師推薦的教學資源,學生在拿到教育資源后,積極展開自學,利用大學生較為豐富的課外實踐,對程序設計課程進行自主思考與學習,形成一定理解,在課堂上才能跟得上教師的教學內容;
3.3.2 課堂上合理規(guī)劃
優(yōu)秀的課前自學,能讓學生先一步接觸教學內容,教師的程序設計課程的教學就會相對輕松一些,就可以改善以往平鋪直敘的教學方式,用更輕松更有引導性的口吻吸引學生的目光,重視培養(yǎng)學生的探索心理,還會給學生留下不少自主思考的時間,學生的思維發(fā)散會更為徹底,更有利于教師了解學生的實時學習進度,加強交流力度,讓學生學習過程中的問題與困惑早發(fā)現(xiàn),早解決。
3.3.3 課外延伸教學
在互聯(lián)網(wǎng)如此普及的今天,如果只把教學放在課堂上可就大錯特錯了,在課外實踐,教師有必要培養(yǎng)學生的自學意識,以及去各類教學論壇上獲取信息的能力,互聯(lián)網(wǎng)上有許多程序員經常關注和使用的網(wǎng)站與論壇,例如CSDN技術社區(qū)、碼農網(wǎng)、果殼網(wǎng)等,學生能在里面學習到不少書本上教不到的細節(jié),學生也可以將自己的問題與困惑提問出來,對學習會有極大幫助,同時,現(xiàn)代通訊類軟件非常發(fā)達,教師利用微信等軟件建群,讓學生之間、學生與教師之間的交互變得更加密切和頻繁,減少空間、時間、以及方式上帶來的交流限制,學生的困惑可以立刻被解決,在學習的過程中,多一位同行者和引導者,會讓學生的學習輕松很多,因此,培養(yǎng)學生自學能力非常有必要。
3.3.4 科學合理的分層教學
上文提到學生的基礎能力不同,導致兩極分化較為嚴重,懂的人覺得程序設計課程太枯燥,反復在講同一類問題,不懂的人卻覺得程序設計課程太難入門,確實,程序設計課程中有許多名詞和概念對初次接觸程序設計的學生難以理解,因此,就需要教師展開分層教學(如圖1),把教學內容分層,還要把學生對象群體分層。教學內容分層應該遵循先易后難,以點帶面的教學原則,合理安排教學內容,先教授各個概念,再綜合歸納,先把什么是硬件什么是軟件講清楚,再談類型與框架,最后說算法,“不以事小而不教”,在教導一個程序的時候,要把幾種不同的算法拿出來反復比較,幫助學生尋找其中的差異,有助于提高學生對算法的認識和思維的廣度[9-10]。
對學生進行分層,顧名思義就是從學生的基礎水平入手,橫向縱向分層,縱向分層為學生的學習水平,對較優(yōu)秀的學生講解更深入一點,對成績較差的學生要更關注一些,了解他們學習中的困惑與問題,及時解決,橫向分層的意思是,就算同一水平的學生,擅長點也會不同,某些學生擅長理論和類型籌劃,有的學生則擅長邏輯思維和抽象思維,針對這種情況,開展不同的課程內容,對特別薄弱的內容設定專項學習課程,補齊水桶的最薄弱木板[5]。
圖1 分層教學基本內容
3.3.5 實踐大于理論
計算機程序設計課程中,永遠都是實踐大于理論,教師對學生講授的再多,也比不上學生親自動手實驗一次,學生在學在練的過程中,會自然而然生成編程性的思維,難題會迎刃而解,學生的代碼基礎與算法運用都會得到質的飛躍,所以當前高校越來越重視學生代碼量充足與否,這一點與上文第一點又重復之處,筆者認為需要明確提出,卻不再贅述。
3.3.6 教師對學生的反饋要做到實時性、合理性[6]
反饋與評價是每一個教學必不可少的部分,計算機程序設計課程也不例外,現(xiàn)階段教師對學生的評價存在單一性,甚至一個學期過去教師都無法將班級內的學生認清認全,評價起來就會非常困難,教師應改變這一點,對學生實行動態(tài)性的了解把控,而不是期末考試幾個冰冷的數(shù)字就決定學生的學習程度,對學習較差的學生更要給予持續(xù)關注和激勵,往往會有意想不到的效果。
高校計算機程序設計課程雖然是基礎課程,但也不容忽視,其中涉及的內容較多,但也有主次之分,教師應徹底重視起來,并構建科學合理的教學模式,根據(jù)學生的實際學習情況進行分層,設定更優(yōu)秀更貼合的教學,調動學生積極性與學習能力,最終的目的是培養(yǎng)學生綜合程序素養(yǎng)。