前言:尋找寫作靈感?中文期刊網用心挑選的程序設計課程案例教學模式,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
摘要:在新工科背景下,對高校計算機基礎程序設計課程是一個新的挑戰,如何與專業結合,更好的為專業課程服務,是改革的方向與重心。教學模式改革,合理利用mooc等教學手段實現線上線下結合、小組討論的學習方式,同時設計合理的與專業相關的案例,充分調動學生的學習興趣,使學科交叉不僅拓展了寬度,更挖掘了深度。
關鍵詞:學科交叉;線上線下;小組討論
引言
大數據、云計算、網絡空間安全等新興技術的提出標志著智能時代的到來。對大學生的能力提出了更高的要求,除了要求熟練計算機基礎操作外,還要具有程序設計能力,以便于在今后的學習和工作中更好的滿足專業需求。在新工科建設過程中,高校大一開始的計算機程序設計課程與專業融合,提高該課程的教學質量,有利于教學改革和教育創新,有利于創新人才的培養。計算思維培養及編程能力的提高是程序設計課程教學的終極目標。學生如何從基本語法規范的學習提高到掌握編程技巧最后升華為計算思維能力的培養,程序設計課程的案例教學和課程設計相應環節是解決問題的關鍵環節。
1教學模式的改革
C語言程序設計是一門理論與工程實踐密切相關的專業基礎課程,培養目標是學生熟練掌握基本的語法規則和算法思想,可以運用C語言編寫程序解決實際問題,為后續課程的實踐環節打下良好的基礎。“重語法,輕能力”是目前程序設計課程普遍存在的問題,雖然這種教學模式有利于知識的系統性與完整性,但忽略了程序設計能力和思維創新能力的培養,特別是C語言語法復雜靈活,各種語法細節讓學生望而卻步,無法使學生建立真正的編程思想,以致學生學習語言的積極性不高,難以達到良好的教學效果。《斯坦福大學2025計劃》提出軸翻轉的概念,將“先知識后能力”反轉為“先能力后知識”,能力成為大學生本科學習的基礎。[1]現在很多教育工作者提出了“重程序、輕語法”的思想和“強化算法、弱化語言”的原則。把教學的重心轉向程序設計能力的培養上,但是C語言的語法和算法思想是相輔相成的,沒有基本語法的支撐,編程思想很難具體化。算法思想的實現需要具體的語句來體現,如何在有限的學時下不顧此失彼,基于任務驅動小組討論線上線下結合的教學模式為我們提供了解決的方案。線上教學,教師可以根據課程前后連貫性分析,提取相應的知識點設計任務目標內容小視頻在網絡上,以if語句為例,相應的學習任務要求及學習方法如表1所示。學生在課前通過網絡預覽知識點、自學教學視頻,如果出現疑問可以查閱相關資料還可以網上提問留言,教師和學生均可回復,這樣培養學生自主學習能力的同時有利于開展討論式教學。簡單的基礎語法學生通過課前預習,做教師預留的相關測試題,評估是否達到目標要求,如果有疑問可以把問題,帶到線下課堂解決,這正是“任務驅動”向“問題驅動”轉化的有效途徑。線下教學,“學生為主、教師為輔”的角色轉換,讓學生成為課堂的主體,教師起到引導作用。教師通過啟發式提問對線上知識點進行查漏補缺,根據前后課程的互通設計綜合性的案例,把學生分成學習小組,對任務進行分解分配,在明確學習目標的前提下,通過小組討論學習可以夯實學生的知識基礎,更好地培養學生計算思考的能力。線上、線下結合,學生案例進行報告,教師隨時對各組學生案例進度進行跟蹤,對學生疑難點提取并討論,學生的疑難知識得以消化和鞏固,同時教師根據課程內容和學生的學習進展程度設計測試題目對學生學習情況進行跟蹤評估。
2基于學科交叉的案例選取
計算機程序設計課程作為大一學生的通識課程面向全校不同專業學生,由于各學科、各專業對程序設計的需求不同,有些專業關注科學計算,有些專業關注數據處理,有些專業關注通訊與控制。面對不同的需求,如果還是單純地將程序設計課程定位于通識課程,[2]面對不同專業需求,如果采取同一方案,同一案例,例題基本是求素數,各種累加求和,求階乘,求方程,斐波拉契數列,冒泡排序等簡單數學問題或經典算法,而且只講授編程基礎知識是不能滿足實際需求的,不能與本專業建立關聯,讓學生覺得學無所用,沒有學習動力,這樣會導致很多學生認為非計算機專業開設程序設計類課程無用,學習的目的只是應付考試或者考取個等級證書。學生自主學習能力差,教學效果很難提高。我們需要根據各種專業需求設計出相關案例、作業和綜合訓練題目,將通識教育與專業需求有效結合在一起,實現從程序設計知識教學到程序設計能力培養的升華。筆者在化學專業學生授課時,對化學專業后續專業需求進行了調查研究,根據需求分析合理的設計案例,如分析化學的核心內容是化學平衡的定量解析,其中涉及到較為復雜的數學處理,編程可以實現精確解析,分析化學中的方程一般不太復雜,而且多是求解濃度,例如常見的求pH問題。[3]學生可以使用相關的工程軟件如Matlab,如果讀者已有高級語言的基礎,最多只要一星期或更短的時間就可完全進入角色。隨著專業的深入,特別是研究生階段,分析化學與計算機的聯系越來越緊密,一些研究常常要借助計算機建模,把復雜的分子,復雜的反應模擬出來,這時工程軟件不能勝任,更多的是要自己設計程序才行的,培養學生程序設計能力為后續專業提升打下堅實的基礎。對于專業課沒有深入學習的大一學生,案例的選取既要考慮與專業的結合性,同時又不能過度依賴專業知識。可以適當選擇一些獨立的不太復雜的求解方程問題。例如采用“二分法”求解方程。其他方程求根算法包括不動點迭代法(Picard迭代)、切線法(Newton-Raphson迭代)、割線迭代法等。與各種迭代法相比,二分法無須建立迭代公式,不必考慮迭代初值,也不必考慮迭代收斂問題,所以在易用性方面具有顯著優勢,對于非計算機專業用戶來說尤其如此。案例設計由簡單到復雜到優化,循序漸進地通過實際應用場景的不斷變化和實例功能的不斷擴展,依次引入C語言的各個語法元素,從專業角度闡述各個C語言概念。這樣能更好地加強學生對知識點的理解和運用,特別是加深學生對各個知識點使用場合的理解,有利于工程實踐能力的培養。在新工科的背景下,學科交叉融合是新工科建設的落腳點。作為通識課程的程序設計要更好地與專業融合服務于專業,為專業創造性、主動性工作打下堅實的基礎,學科交叉融合將該課程建設與其他專業課程相結合,發揮通識課程的優勢,真正提高學生的實踐動手能力和創新協作能力。程序設計對實踐性要求很強,編程能力的培養不能僅憑借教學課程,更要學生通過實踐與應用來循序漸進培養。為提高學生的工程實踐能力,我們在程序設計課程中設置了大量的實踐環節。依據要解決的實際問題的步驟分解為一系列的任務,把學生分成學習小組,學生結合自己專業知識和研究興趣,可以收集相關資料,來協同合作完成數據分析建模,完成相關任務書寫實驗報告,完成綜合實驗。教師在此過程中給予學生引導,定期檢查學生進展情況并給出定量評估成績完成綜合實驗教學過程。通過此任務可以充分調動學生的積極性,引導學生主動思考,進而培養學生編程能力。
3結語
知識的真正價值在于實踐,學習的根本目的在于運用。以能力培養為導向,把知識融于實踐,再根據實踐中遇到的問題來學習新知識進行求解,這樣相互促進以積累實踐經驗并提升應用能力。從知識與實踐相結合中不斷發現新問題和解決新問題,才能使學生真正掌握程序設計技術。程序設計教學在通識教育框架下應該考慮到不同專業學生的知識結構和能力要求,構建全新的教學體系和教學模式,系統、科學地設計教學案例,實施個性化教學,培養學生計算思維能力,為各專業的學習提供良好的信息技術支撐。
參考文獻:
[1]王佳,翁默斯,呂旭峰.斯坦福大學2025計劃:創業教育新圖景[J].世界教育信息,2016,(10):23-26.
[2]趙廣輝.面向新工科的Python程序設計交叉融合案例教學[J].計算機教育,2017,(08).
[3]邵利民.開發面向分析化學的復雜方程繪圖求解軟件[J].大學化學,2017,(10).
作者:于莉莉 張磊 李晶 單位:佳木斯大學信息電子學院