王鳳蘭,漆 珣
(汕頭職業(yè)技術學院,汕頭 515078)
C 語言一直以來都是大多數(shù)高校普遍開設的一門程序設計入門語言,不僅僅是計算機專業(yè),其他的理工科專業(yè),甚至是諸如經濟、心理學等其它專業(yè)也會開設該課程。
隨著現(xiàn)代電子技術、信息技術、互聯(lián)網技術、人工智能技術的快速發(fā)展,C 語言的應用領域也達到了空前擴展,除了系統(tǒng)軟件、應用軟件、數(shù)值計算、游戲開發(fā),還可用于服務器端開發(fā)、網絡底層和網絡底層務器端等,圖形處理、嵌入式開發(fā)、人工智能等領域。對于高職院校的學生來說,C 語言作為他們接觸到的第一門程序設計語言,且是在對諸如計算機基本硬件組織結構,工作流程、內存的組織方式、軟硬件的關系等這些有助于理解編程的知識知之甚少的情況下,學習C 語言卻存在著很大的困難。
所以,不斷探索適合高職院校學生的學習《C 語言程序設計》這門課程的教學方法,提高學生的學習動力和學習效果顯得尤為重要!
大多數(shù)高職院校的學生知識基礎薄弱,邏輯推理能力較弱,學習上自我控制力也較弱,遇到學習困難,容易退縮。所以《C語言程序設計》的一線任課老師常常見到學生剛剛學編程的時候,熱情高漲,信心很足,可過了一段時間就心灰意冷,甚至干脆放棄了。所以,找到一種能夠讓他們快速入門,馬上體驗到效果的教學方式顯著尤為重要。其實老師們一直都在孜孜不斷的做著這些探索,慕課、微課,翻轉課堂,游戲代入等等,取得了非常大的成效,但還是在學生們對編程入門前難以逃脫復雜的邏輯推理,冥思苦想的過程,顯得不盡人意。而連小學生都可以容易上手的智能電子設計,機器人編程、嵌入式編程等創(chuàng)客技術為高職院校的學生們輕松進入C 語言世界帶來了曙光。
隨著電子、信息、人工智能、網絡技術的發(fā)展,各種嵌入式可編程控制芯片,電子元器件變得方便易得,使得創(chuàng)客技術蓬勃發(fā)展起來,創(chuàng)客教育也變得越發(fā)普及紅火。因為C 語言具有面向硬件的特性,這些可編程的器件大多采用C 語言進行編程。配合他們提供的用C 語言創(chuàng)建的API 函數(shù)庫,往往很少的幾行代碼,就可以得到一個觸手可及的具有實際功能電子作品,如超聲波測距、電子屏顯示、具有不同功能的智能小車,這會大大激發(fā)起學生們的學習興趣,增強他們客服學習困難的決心。
2.1.1 激發(fā)學生的學習興趣,輕松入門C 語言編程
我們知道,學習某些新的知識,技術,有一個入門的過程,在入門前會覺得很難,一旦入門,便漸入佳境。而這個入門過程卻需要大量時間精力的投入,由量變到質變。且學習有一個頓悟的過程,通過吸引力極大的創(chuàng)客教育導入C 語言的學習,吸引學生將課上學習延續(xù)到課下,由剛開始簡單的幾行代碼的程序搭建,慢慢讓學生體會到程序是什么,能干什么,到熟悉C 語言的基本結構,C 語言的基本語法、主要控制語句,再到編程入門。
2.1.2 引導學生更早進行有關職業(yè)的思考
創(chuàng)客教育使學生體會到了“學以致用”,激發(fā)他們把自己的一些創(chuàng)新想法變成現(xiàn)實的欲望,自然會激發(fā)他們學習的積極主動性。隨著創(chuàng)客技術的發(fā)展,創(chuàng)客領域的擴展,也產生了很大的人才需求。如現(xiàn)在中小學的創(chuàng)客教育師資就比較緊缺。特別熱愛創(chuàng)客的學生們可能就會考慮選擇這一領域職業(yè),從而激勵他們?yōu)榱诉_成目標加倍努力。
創(chuàng)客教育的軟硬件學習資源眾多,方便易得,且上手容易。在本人的《C 語言程序設計》的教學改革中,使用的是價格相對低廉,編程簡單,容易上手的Arduino 套件。而中小學的創(chuàng)客教育課中也大多選擇Arduino。一套基本的Arduino 套件從幾十到幾百元不等,學生們可以自發(fā)組成工作坊,合買所需的套件,也可以根據需要補充所需的各種元件,不會帶來太大經濟負擔。
其次,Arduino 套件體積小巧,便于攜帶,使用不受場地限制,方便學生課上課下隨時使用。課下,學生工作坊的同學仍舊可以一起工作,一起學習。
在初次嘗試中我們采用的都是比較簡單的例子,代碼較少,學生很容易記憶和模仿:LED 呼吸燈、LED 交通燈、LED 點陣顯示,超聲波測距、智能避障、智能循跡,測量環(huán)境溫度、聲音控制等,在此基礎上引導學生自己拓展設計,就有學生根據巡線傳感器的功能自己實現(xiàn)了智能跟隨、走迷宮(其實這些就是當今熱門的無人駕駛的基本技術原型);有學生將LED 燈光變色效果加入到智能循跡中,顯得更加有趣;有的用聲音控制機器人的運動等等。因為課堂時間有限,而這些例子大多是學生們課下以工作坊的方式實現(xiàn)的。
圖1
圖2
圖1 、圖2是一個完整的Arduino程序,實現(xiàn)“機器人循跡”運動。這是我們引入的Arduino 例子中代碼相對比較復雜的一個例子,這個例子包含預包含命令、變量的定義、調用庫函數(shù)、if…else語句、函數(shù)的實現(xiàn)。學生開始只是模仿著編輯這些代碼,為了更好的用Arduino 實現(xiàn)他們的想法,學生們會努力的弄清楚這些代碼的含義,使用方法,從而調動起學生學習C 語言的主動性。當在課堂上講解C 語言的知識的時候,一方面他們有似曾相識的感覺,不會覺得一片茫然,一方面他們是帶著問題學習,積極性會大大提高。
在沒有引入創(chuàng)客教育前,我們對《C 語言程序設計》學習效果的考核一般采用上機實操考核和筆試(表1中分析的是實操部分的考核)。我們將所學C 語言的知識盡量分解為很小的元知識單位,每一個元知識設計兩到三道簡單的程序設計題,讓學生現(xiàn)場抽取一道限時上機完成。
表1
本文就2017、2018年和2019年(融入了創(chuàng)客教育)實操考核結果進行了對比分析。我們選每年計算機軟件專業(yè)兩個班的數(shù)據,對比順利完成每一知識主題考核的百分比。
由表3.2-1可以看出,通過引入創(chuàng)客教育,學生學習《C 語言程序設計》的各部分知識都有不同程度的提高。
對于高職院校的學生,將創(chuàng)客教育融入《C 語言程序設計》的學習中確實是一種曲徑通幽的方法,符合高職院校學生知識基礎薄弱,邏輯思維能力較弱,學習熱情不足,學習上容易畏難退縮的特點。通過,創(chuàng)客教育一方面可以提高學生的學習積極性,用電子游戲般的吸引力克服了學生的畏難情緒。引入學生工作坊,大家一起工作學習,創(chuàng)設積極的學習氛圍,降低學習的難度,提高學習樂趣。當前創(chuàng)客教育、創(chuàng)客技術是比較熱門的一個職業(yè)選擇,讓學生早一點接觸到創(chuàng)客教育,可以引導學生更早的考慮個人發(fā)展,職業(yè)規(guī)劃的問題,從而激發(fā)學生更加努力的學習。