一個學期下來,對於這門課教學還是感受挺多,多個教學平台輔助,確實和我前10年的教學方式區別很多,也辛苦很多。
一、課堂教學方面
1.課堂派預習作業
主要借助課堂派平台,每次課前發布預習作業。而預習作業答題情況可以作為課堂互動的教學數據。解答學生預習中的疑問。預習作業好處:
- 教師掌握學生預習情況
- 提高課堂效率,不用學生課堂做題,互動時間可以根據預習作業情況結題,提高課堂效率。
- 預習作業講解作為課堂互動緩和學生聽課過程中注意力不集中、課堂沉悶情況。
通過上述平台非常方便了解學生預習情況,統計習題答題情況,便於課堂講解。
2.課堂派復習作業
從學生期中考考試成績看,學生成績很不理想。我也開始反思,雖然有實驗作業訓練學生編程,但是實驗作業題目有限,而且不好接觸優秀代碼,學生閱讀代碼能力還是很薄弱,會編程(或則說會解決PTA某個題),但是語法基礎薄弱,如果PTA沒涉及知識點,就不會做或不會用了。所以后面找一些題放在課堂派,主要讓學生閱讀代碼、填空、讀程序功能、改錯等,訓練學生閱讀代碼能力,也接觸一些優秀代碼寫法。
3.課堂派測試作業數量
統計下從C最簡單數據處理到最后C的文件讀寫共布置了23次測試作業,期末統計學生成績時候才發覺有這么多作業,確實挺多。90%作業填空、簡單、改錯都是人工批改,想想工作量挺大的。
4.感受
- 本學期引入預習作業,確實老師工作量增加一些,不過對課堂教學效率還是提高不少。預習作業評分也是一種監督方式,讓學生更認真預習。
- 看到部分學生期末總結寫到“覺得學習是被老師牽着走”,還有不少對博客作業抱怨。內心也是挺感慨。博客作業和預習作業確實增加不少學生和教師的工作量。有時候想想為啥要布置呢,其實到后面幾章內心也是很想放棄的,布置下PTA,看看他們排名,代碼就可以了,這樣大家都輕松。
- 但最后還是堅持布置下去。不能說少布置方式就不好。只能說是自己一個堅持,如同電視劇《風箏》中的信仰,當然我還沒到信仰的地步。只是覺得曾經教學就是作業布置不多,下課走人狀態,也很認真教學,但和學生很陌生,你也不懂他們是否真正掌握,或者你明白他們沒掌握,你也不知道怎么辦狀態。去年開始看博客園中班級博客作業,博客可以看到學生做作業一個個過程,了解他們做做作業想法。開始反思:我們曾經作業只有老師一個人可以看到,這樣好么?大家作業應該是要共享出來,互相分享,才能最大程度受益。
- 成績不應該只是期末考試一次成績決定,平時成績也是不能忽視,代表學生一個學習過程。而平時成績最好評分方式就是通過作業。
- 一份份作業代表學生學習過程,教師通過作業確實看到學生遇到問題、體會、學習程度。課堂是傳授內容,作業才是真正監督及反饋。
二、實踐教學方面
PTA平台布置編程題,博客作業總結PTA實驗內容。PTA實驗共有12次作業,博客共有13次作業。
1.PTA實驗
PTA實驗圍繞教材每章內容設計。目前存在問題:
-
學生反應難度偏大。后續教學中需要改進,盡量5題容易題目,5題難度加大題。還有一些題目可以讓學生選做,讓編程能力好的同學挑戰更高難度題目。編程能力比較薄弱同學通過容易題目訓練,提高編程積極性。
-
部分編程能力薄弱同學調試程序、查錯能力較差。這部分學生比較少把錯誤代碼貼出請教老師或群里問,所以雖然明白他們編程能力比較弱,卻不好去改進。這方面需要想辦法營造q群氣氛,讓大家盡量把不懂內容多拿出來問,只有找到問題才能解決問題。
-
PTA只能訓練單文件編程,對於偏向應用的項目作業是無法訓練。這塊可以在后續教學中適當引入大作業。多寫代碼量大的項目作業,才能檢測學生系統編程能力。尤其是專業學生,訓練語法是不夠的。多做點項目級作業,更有助於所有知識點銜接。事實上,編程興趣也會更高。
2.博客作業
博客作業其實就是傳統的實驗報告,把PTA實驗中碰到問題、編程體會內容用博客方式總結,並可以通過WEB分享。從學生期末總結看。對博客作業意見比較多,主要是:
- 博客比較花時間,對編程能力提高沒有用。確實和學院其他班級學生比,多了博客作業,部分學生心理是比較抵觸。覺得這些總結沒意義,又中覺得自己文筆不行,寫不好。事實上博客看的不是你文筆,而是你實驗過程體會並記錄。(如果你能把自己代碼思路優勢描述出來,我們一般都會高分)但是大部分學生整個學習時代並沒有這種習慣,中學的學習主要強化練習高考內容,而自己去總結去反思很少。所以大學初就要求大家開始寫總結,寫體會。很多學生覺得沒必要。能理解部分學生的抵觸心態。
- 還是覺得大家首先接受博客,老實說博客園也是一群年輕人自費在做的平台,很難得免費開放給各個高校老師。通過博客分享,我們有幸看到福大、北航等高校學生或老師布置作業,這種分享真心對我們學校師生來講是很受益的。我們經常百度搜索一些C的資料,里面很多來源就是博客園的技術分享,那我們自己為什么不把自己學的內容也分享出來,而作業正好是一種很好分享。
- 在博客中,我們看到班上優秀同學博客作業,了解他們編程思路、學習過程、總結、想法,這些都有助於我們去提高編程思路。
- 博客作業內容我也是第一次設計,確實有一些不足,我也很認真聽同學們意見,改掉之前要調試截圖、過多總結。多了代碼互評、閱讀代碼。目的都是為了大家多去看看優秀代碼,擴大編程思維。很多事情不可能一開始就完美,只能邊實踐邊完善,也希望一些抵觸博客同學能慢慢去接受這樣一種作業方式。
- 博客目的是總結,學習方法中一個非常重要內容就是會總結。把一周學的內容用一個下午時間慢慢回顧,用文字方式總結,描述出來。確實能讓你對所學知識清晰很多。
三、課程設計
本次課設共布置六道題目:
- 圖書管理系統
- 購物系統
- 電影票預定系統
- 醫生預約系統
- 猜單詞游戲
- 博客作業統計系統
所有系統數據重新設計,數據來源真實數據,更能檢測學生系統的健壯性。同時改變數據結構以防學生網上找代碼。這6個系統學生比較熟悉系統,很多功能平時也在用,相對來講設計思路比較明確。學生主要把所學的知識點銜接起來,用工程、多文件思路去實現系統。
1.課設中發現亮點
- 5天課程設計,沒有其他課程干擾,只專心編程。發現這5天有認真去編程同學,編程能力提高不少。代碼量有500--1000行左右。
- 課設內容比較接近實際應用,學生編程興趣提高不少。
- 有些小組會互相討論,交流比較多,明顯同組同學課設效果好很多。
2.課設存在問題
- 函數設計不合理,不部分同學設計函數都是類似
void fun()
,這樣函數沒返回值,沒參數。只是封裝功能。但是函數間沒任何聯系。導致問題是:文件中的數據很多同學在每個函數要用的時候都要去打開。文件頻繁打開很耗內存,效率極低。 - 本次課設系統中都要打開文件的數據,其實在用戶登錄成功后打開一次文件,把文件中內容寫入結構體或鏈表中后,把鏈表地址通過函數傳遞其他文件或函數就可以。所以函數的應用還不熟練。
- 用鏈表結構實現學生不多。鏈表效率比較高,尤其設計到刪除、添加,鏈表操作更簡單。后續課設還是要多引導學生鏈表去做。畢竟直接在內存地址操作數據,這是c一個優勢,效率比較高。
- 工程中文件建太多。有同學一個系統有10多個文件,每個文件才一個函數,很沒必要。其實一直強調一個模塊一個文件。如增刪除完全封裝一個文件中就可以。但是很多同學設計完還是沒聽。
- 還是有同學編程存在問題不愛問人,導致問題是課設答辯那天運行還有問題。結果我看下,竟是很簡單問題。編程能力比較薄弱同學還是建議要多交流多問,否則很難進步。
四、總結
本學期C的教學情況,整體比較滿意。預習作業+PTA+復習作業模式,雖然剛開始比較辛苦,但是通過這樣訓練,學生編程基礎還是得到一定程度訓練。后續要改進和嘗試的教學方式有:
- 翻轉課堂設計。本學期有同學提出“課堂多做習題,然后互動”。看出部分同學還是很喜歡課堂派互動方式,覺得課堂更有氣氛及興趣。在日后課堂可以考慮部分內容翻轉學習,學生講,教師聽並點評模式。當然考慮到學生人數比較多,翻轉中會有部分同學應付情況,教師難以兼顧情況,需要好好做翻轉模式的設計,多向其他高校老師學習。
- 鄒欣老師的“做中學”模式,我非常喜歡。他也一直建議我們要做代碼量大作業,所以后續教學考慮大作業,迭代式大作業,可以在每次作業改進功能,互評找bug模式,讓學生感受系統編程,這個方向是C教學改進重點。作業設計確實是很耗教師精力,需要多查閱資料,學習改進。尤其要做偏向設計能用系統,用C這樣工具實現,要好好設計功能。
五、建議
通過一個學期的學習,我對班上63位同學算有一定了解,至少名字都知道了,呵呵。這個學期有同學說我們是“相愛相殺”,感覺也挺貼切,無論師生是哪種關系,我都希望你們再下學期學習中:
- 編程能力薄弱同學,請不要對編程產生抵觸。其實你們很多同學有一定語法基礎,但是經常不懂問題不願意或不好意思去問老師同學,導致問題越積越多,最后對編程只會越來越抵觸。希望下學期數據結構學習中,請把不懂內容無論多簡單都貼圖在群上,我們都會回答你。只有說出問題,我們才能幫你解決。否則會一直落后。編程就是一個多實踐過程,實踐中會迷茫很正常,需要人幫忙引導,否則會迷失。
- 編程能力中等同學,不要只局限我把基礎題做出來就OK的自我滿足。多閱讀優秀代碼,多學習優秀博客。不一定每個人都是最好,但我們應該不滿足,一直在追求最好路上。
- 編程能力比較好同學,不要局限在班級前幾名感覺不錯。畢竟在計算機學院或者其他高校,我們能力還是有一定差距,多去參加編程比賽,有精力話也可以去學學計算機其他語言。學院一些專業社團如機器人、網絡安全協會、硬件協會等踴躍參加,優秀一定要讓人看見。
- 計算機內容非常多,大家日后研究方向也會不一樣。寒暑假有時間的話建議你學學計算機其他一些編程語言,尤其是可視化語言,把自己想做東西、有興趣東西如游戲、APP、WEB等可以着手去學去做。有些同學也許C\數據結構學的一般,但是寒暑假花時間去學學Python、C#等其他計算機工具,很快他的計算機能力大幅提高,可以去做一些項目,輔助學院教師科研,專業能力大大提高。
寒暑假建議學習內容有:
- 對算法編程有興趣的,可以先學習《數據結構》,網易慕課觀看浙大陳越老師的《數據結構》視頻。尤其想參加天梯賽同學,數據結構要先學。
- 人工智能、數據分析、網絡運維、數據結構有興趣,先學Python
Python PTA題集的驗證碼是:747593
- UI有興趣,如網頁、app界面,可以學學 html+css+js,H5
- 對游戲有興趣,游戲前端先學C#,Unity3D.游戲后端先學C++.
- 對app有興趣,可以先學學Java