蔡木生



摘要:了解獨立學院IT類專業本科生程序設計能力的現狀及對相關課程的看法,為教學改革提供依據,組織3所在穗獨立學院的1147名學生進行抽樣調查。調查顯示,獨立學院學生的程序設計能力普遍較弱,影響了他們專業課程的學習和就業競爭力。文章對形成這一結果的原因進行調研和分析,提出加強學習興趣培養、強化編程思維訓練、完善課程體系等一系列改革思路和建議。
關鍵詞:獨立學院;IT類專業;程序設計能力;調查報告
引言
獨立學院是民辦高等教育中的重要組成部分,在高等教育中的地位和作用不斷增強。為適應國家經濟社會發展的需要,許多獨立學院陸續開辦了計算機科學與技術、軟件工程、網絡工程、數字媒體技術、電子信息工程、物聯網工程等IT類相關專業。信息技術的核心是計算機,計算機的本質是“程序的機器”,只有懂得程序設計,才能懂得計算機,因此,程序設計在IT類學科知識體系中不可或缺,對IT類專業學生來說,程序設計能力是其專業基本能力之一,同時也是理解、掌握信息技術的基礎。由于獨立學院在生源結構、培養目標等方面與公立高校存在差異,這就決定了其人才培養要有自己的特色。
1調查目的與方法
本調查旨在了解獨立學院IT類專業本科生程序設計類課程的學習狀況、程序設計能力及水平,為教學改革提供一定的數據支持。調查自2014年11月始,至2015年5月止,先后對廣州大學華軟軟件學院、中山大學南方學院、華南農業大學珠江學院3所在穗獨立學院的學生進行了抽樣調查和個案訪談,調查內容包括學生的學業基礎、程序設計能力現狀、學習行為及習慣、存在困難與問題、意見或建議等7方面40個問題,累計發放問卷1270份,回收有效問卷1147份,有效率為90.3%。調查樣本中大一至大四學生分別為255人、437人、350人、105人,其中男生占84.1%,女生為15.9%。
2調查結果及其分析
2.1學業基礎和課程開設情況
調查顯示,學生中數學基礎“非常好”和“比較好”的共占43.2%,“中等”的為46.9%,“比較差”和“非常差”的為9.9%;英語基礎“好”、“中”、“差”的比例分別為17.9%、44,3%、37.8%。這說明IT類專業大部分學生的數學基礎比較好,有利于理解程序邏輯;但英語基礎較差,會對程序標識符命名、英文文檔閱讀等造成影響。這與獨立學院錄取分數偏低的現實相吻合,也是教學過程不容忽視的基本學情。
調查的3所高校都開設了c語言或C++等程序設計入門課程,大多數學生都要修讀數據結構與算法、數據庫等專業基礎課程。學習過這兩種及以上編程技術的學生超過80%,由此說明獨立學院IT類專業的課程設置比較注重專業基礎和綜合能力的培養,但不同學校間的課程設置有較大差異。
2.2程序設計能力現狀
將學生的程序設計能力劃分成四個不同級別進行調查,統計結果見表1:
從表1不難看出:學生的程序設計能力普遍較弱,只有12.4%專業基礎較好,有一些項目經驗;近50%學生學習過幾門程序設計語言,但泛而不精,離應用有較大差距;38.0%學生停留在“學過”層面,不會寫、用,情況令人擔憂。這一結果還可以從學生讀、寫程序的最大長度統計數據中得到驗證(見表2和表3):
只有30%左右的學生讀、寫過較長程序,高達40%學生只會讀寫簡單程序。
盡管有87.3%學生認為“程序設計能力在自己所學專業中非常重要或比較重要”,但由于能力較弱,當問及今后工作打算時,學生的回答并不樂觀.具體數據見表4:
有近50%學生回答“不確定”,這一群體比例較大;如果能夠幫助他們改進學習狀況、樹立專業自信,所占比例可縮小。
2.3學習行為與習慣
1)對課程興趣度。
近70%的學生對課程有興趣,希望學好專業;約有30%學生對專業興趣不大,會影響學習效果,見表5。
2)上課專注度。
近70%學生上課時比較專注,10%左右在自學,約20%做其他無關的事,見表6。
3)預習、復習情況。
課前能預習的學生不超過45%,偶爾預習和從不預習的學生高達55%;課后能及時復習的約為50%,另外一半學生幾乎不復習。這說明較多的學生沒有養成良好的學習習慣,見表7-8。
(4)參與課堂教學情況。
只有25%學生能較好參與課堂教學,近75%較少參與或從不參與。這表明學生主動參與課堂教學的積極性較低,課堂氣氛難免沉悶,須引起任課教師注意,見表9。
(5)對待例題程序代碼的態度。
課堂例題的程序代碼是老師精心準備、展示知識應用的范例,也是培養編程思維的寶貴資源。34.4%的學生態度積極,有思考、會動手;44.4%學生只是運行代碼而不去編寫,學習效果大打折扣;21.2%學生態度消極,投入專業學習時間、精力太少,見表10。
6)實驗課表現和效果。
獨立學院比較注重對于學生應用能力的培養,在實踐環節上安排較多的課時。從統計數據來看,有78%的學生能認真實驗,完成題量在2個以上;42%學生能完成實驗任務,實驗效果比較好;但仍有20%學生在做其它事情,白白浪費練手機會,見表11-12。
7)對待作業態度和課外學習時間。
獨立完成作業的學生只有26%,多達66%的學生在不會做的情況下就去參考別人答案,這其實是一種變相抄襲行為;除上課外,一周中用于程序設計學習時間達3小時及以上的學生比例為35%。作業缺乏獨立思考、課外學習時間不足是影響程序設計課程教學質量的兩個重要原因,見表13-14。
8)程序代碼書寫量自評情況。
15.5%學生認為自己程序代碼書寫量較多,32.4%認為中等,52.1%認為較少。編程訓練量不足也是影響程序設計能力的重要原因之一,見表15。
9)對待學習中困難和問題的態度及解決方法。
超過半數的學生在遇到困難時能逐一解決,堅持學下去,約48%的學生有畏難情緒;學生解決問題的主要途徑依次是:上網求助、請教老師或同學、上機調試、查閱教材或資料,見表16-17。
2.4首門程序設計課程影響
大多數學生是從大學開設的第一門程序設計課程時開始學習編程技術的。相關調查數據如下:
認為教學效果“非常好”的占8.0%,“大部分內容能懂”的占47.2%,“近一半內容不懂”的為36.4%,“幾乎都不懂”為8.4%,也即是說,約55%的學生認為首門程序設計課程的教學效果良好,45%左右學生感覺至少有一半內容不懂。當問及“出現上述結果的主要原因”時,27.9%學生認為“教師教學得法,自己比較努力”,16.3%認為“老師沒講明白”,48.1%認為“自己沒用功”,7.7%認為“選用的教材不合適”。即便是沒有學好的學生,大多數也認為主要原因在于自身。共計81.1%學生認為第一門程序設計課程的教學會對后續課程的學習產生影響。
2.5對課程教學的看法
1)對教學內容和進度的看法。
61.2%的學生認可現有課程的教學內容與進度,38.9%學生對此不滿意,見表18。
2)教學中存在的主要問題(多選)。
學生認為存在的主要問題依次是:課程內容多、難度大,教學方法單一、互動少,語法講得太細、編程訓練少,課程設置不合理,前兩項的比例均超過50%。獨立學院的學生基礎不是很好,教學內容、進度要切合他們實際,教學手法應靈活多樣,見圖1。
3)對編程思維的培養。
超過70%的學生不認可課程對編程思路的講解、編程思維的培養,需要任課老師認真反思、加以改進,見表19。
4)對教學內容銜接和教學資源的評價。
對于課程間教學內容的銜接,認為“非常好”的占6.0%,“比較好”的占30.0%,“一般”的占49.0%,“比較差”的占12.0%,“非常差”的占3.O%;對于教學資源豐富程度的評價,認為“比較豐富”的為22.0%,“有一些”的為53.0%,“很少”的為23.0%,“沒有”的為2.0%。總體來看,學生基本認可這兩項指標,但仍有較大的改進空間。
2.6課外學習行為
1)網上學習狀況。
約1/3的學生會上網瀏覽專業文章或參與技術討論,2/3的學生很少或從不參與此類活動,這說明多數學生的專業視野比較窄,見表20。
2)下載網絡資源自學情況。
41.9%的學生會通過下載視頻、文檔、軟件等資料來拓展專業能力,58.1%的學生在這方面做得不夠,未能很好利用互聯網資源,見表21。
3)課外實踐活動。
由此可知:學生參加專業競賽的積極性極低,競賽只是少數優秀學生的“專利”;專業考證、興趣學習小組的情況略好。總體來看,這兩方面現狀都不容樂觀,還有很大潛力尚待挖掘,見表22-23。
2.7提高程序設計能力意見或建議
1)對“上機考試”的看法。
66.8%的學生認為“程序設計課程有必要組織專門的上機考試”,33.2%認為無必要。
2)對“程序設計能力強”的同學的看法(多選)。
學生心目中“程序設計能力強”同學依次在如下方面做得較好:“愛動腦、勤上機”(77.6%),“上機調試程序,程序調試完了,問題自然就解決了”(55.0%),“問老師、同學或者朋友”(46.6%),“模仿能力強”(40.9%)。從排序結果看,大多數學生都能認識到‘“編程思維的培養和多上機實踐”的重要性,見圖2。
3)學習過程中遇到的主要困難。
該選項要求學生限選四項,他們認為“學習中的主要困難”依次是:編程思路的理解(56.5%)、編程訓練量不足(54.6%)、學習任務太重、時間不夠(53.8%)、課后未及時復習(53.4%)。如圖3所示。
4)影響程序設計能力的五大因素。
5大影響因素依次是:學習興趣(74.0%),學習態度與學習目標(33.3%),學習方法(15.5%),編程思維的培養(14.9%)和學習持久力(10.2%),見圖4。
5)提高程序設計能力的主要途徑。
學生認為提高程序設計能力的主要途徑是:自己多動手編程,多上機調試程序;多看參考書、多看別人編寫的程序;上課集中精力聽講;課后認真做作業;多花時間自學等。即抓實教學中的各個環節,聽懂、多看、多思、多寫、多調試、多問。調查結果如圖5所示。
依據前面提及的“程序設計能力的層次分布”數據,將學生劃分成“較強”、“一般”和“較弱”三類,然后計算出各類因素中表現“積極”的學生比例,得到圖6:
題代碼,較多程序閱讀量、書寫量等;盡管各因素“積極”率有高有低,但始終保持r程序設計能力較強>r程序設計能力一般>r程序設計能力較弱數量關系不變,這說明上述因素與程序設計能力存在著“正相關”關系,提高程序設計能力需要“通用法”“特定法”一同使用。
3結論與建議
3.1結論
通過上述調查數據,可以得出如下結論:獨立學院IT類專業學生認為程序設計能力在所學專業中很重要,他們對專業的興趣度較高,學校對專業基礎和綜合能力的培養也較為重視。但只有25%左右的學生程序設計能力較強,他們在諸多方面表現比較積極,投入的時間精力更多;由于獨立學院的錄取分數偏低,學生質量總體不高,超過半數的學生沒有養成良好的學習習慣,
這17個因素可分為兩類:一類是對各類課程學習都有效的良好行為、習慣,如對課程感興趣、課前預習、課后復習等,另一類是對程序設計課程學習有針對作用的做法,如輸入、思考例學習自覺性不夠,編程能力普遍較弱,就業競爭力受到影響。這種狀況如果不改變,就勢必影響獨立學院IT專業的教學質量。
3.2建議
1)培養學習興趣,激發學習熱情。
孔子說:“知之者不如好之者,好之者不如樂之者”,如果一個人對所學內容有興趣,就能激發出無限的潛力,甚至為它廢寢忘食。在教學過程中,時常聽到學生說自己不是學習編程的“料”,畢業后也不想從事相關工作,要找借口放棄。究其原因,是學習過程中遇到的較多問題。教師應當及時給予這些學生鼓勵和信心,協助學生走出困境。培養學習興趣并不是一句空話,要結合學生實際、落實在具體教學活動中。
2)將程序設計作為IT類專業學生的一項基本能力來培養,并貫穿于大學教育的全過程。
程序設計能力包括基礎能力和專業能力,涵蓋多門課程的相關知識點,需要認真設計、科學安排,并在課程體系中體現出來,遵循全程化、層次化、模塊化的原則,注重應用能力的培養。獨立學院學生的基礎要比普通高校本科生差,培養目標、教學內容、授課方式方法等都不能生搬硬套,要切合學生實際,體現辦學特色。
3)加強編程思維的培養,保證充足的代碼訓練量。
不少學生在調查時反映對程序代碼“能看懂但不會寫”,究其原因是平時對編程思維的訓練不夠、動手實踐機會太少。程序設計的目的是利用計算機來解決實際問題,編程前需要先分析、了解問題,清楚其求解過程,再用計算機能理解的形式(如變量、數據、代碼等)表示出來,并不斷運行、調試,直至得到正確結果為止。教師在教學時,首先要讓學生熟悉程序的基本結構、機器解題的基本方式和調試方法,其次是掌握常用算法,這是解決基本問題的“鑰匙”,對于較大型的程序,則可以采用模塊化、面向對象等方式來解決,最后是程序的設計與實現。應避免“把語法講得過細”的傳統教法,多從解決問題的角度出發,強調解決問題的方法、思路。程序設計入門階段,應當認真閱讀和理解一些基本問題的求解算法和程序,并模擬計算機執行的算法和程序,這是培養編程思維的一種比較有效的辦法。只有閱讀、編寫的代碼足夠多(如幾萬行代碼),才能掌握編程的基本技能,體會其中的樂趣,從而熟能生巧,邏輯思維、抽象思維能力也會隨之提高。
4)建立行之有效的考核、激勵機制,逐步改進學生的學習行為和習慣。
提高學生的程序設計能力無捷徑可走,需要師生間的配合。獨立學院不少學生存在著學習目標不明確、學習動力不足、自制力差、缺乏吃苦耐勞精神、基礎較弱等問題,改變這種狀況需要建立相應的考核、激勵機制。要求學生應做到的可設置成課程的考核項,鼓勵學生做到的可作為加分項,還可以通過建立網絡學習平臺、豐富學習資源等為學生自主學習提供支持、幫助。通過不斷鼓勵、強化,學生慢慢就會接納,變被動學習為主動學習。
5)重視首門程序設計課程的教學。
大多數學生在調查中反映,首門程序設計課程的教學情況對后續課程的學習有較大影響。因此,院系對于新生的第一門程序設計課程要高度重視,在師資安排、教學內容把握、教學方法選用、學習方法指導、學習資源提供等方面給予更多的支持與關注,讓學生感受到“程序設計”并不難,多體驗編程樂趣,增強信心,為后續課程學習打下良好的基礎。
6)積極開展第二課堂活動,增強網絡學習能力,拓展學生專業視野。
第二課堂是專業課程教學的補充和拓展。院系可通過舉辦各類專業競賽,做到“以賽促學”;通過組織創新創業實踐活動,提供學生施展才華機會;引導學生報考IT類專業技能證書,實現專業教育與技能培養的有機結合;向學生傳授獲取網絡資源技能,增強網絡學習能力,通過與技術高手交流,拓展專業視野,不斷提高程序設計能力。