李順琴 蔣小東 何嬌
【摘要】本文結合現今大多數MOOC平臺中《C語言程序設計》課程出現的知識點選取缺乏內在邏輯聯系,不符合學生學習理解規律,缺少學習連貫性和及時知識校驗的問題提出了完整的教學設計方案。
【關鍵詞】MOOC C語言程序設計 在線課程
一、引言
在“互聯網十教育”的大環境下,在線課程的建設與應用現已成為現階段高校教學信息化變革的重要舉措。計算機程序設計類課程如《C語言程序設計》是電子信息類相關專業的基礎入門課程。然而由于其具有很強的邏輯性,程序編寫較為復雜,對于基礎較差,形象思維能力遠強于邏輯思維能力的高職生來說,這類課程的學習尤為困難。而MOOC作為一種多模塊化的在線教學模式,不僅提供網絡教學視頻,還同時附有隨機提問,單元測試,課后作業,網絡論壇,結業考試等單元,為解決C語言程序設計課程教學過程中遇到的傳統課堂教學時間短且內容多,吸收難,無法實時跟蹤教學進度,討論答疑時間有限等問題提供了嶄新的解決思路。
二、國內外發展現狀
在諸如“學堂在線”,“Coursera”等國內外知名MOOC網站中均有來自于不同名校的教師開設的《C語言程序設計》課程,在線選修學生群非常龐大。然而在此類在線課程中我們不難發現,絕大多數教師缺乏對整門課程的總體規劃,章節設置不合理,知識點選取零散,資源本身缺乏內在邏輯聯系。學生看到的是獨立毫無關聯的微課視頻羅列,以及各章節最后附上的測驗和實訓資源等,學生的學習缺乏連貫性,學習成效差。
本文就是以《C語言程序設計》課程為例,結合課程特點及學生的學習理解規律,設計出一套合理的在線課程教學設計方案,以充分保障學生在線學習的科學性及有效性。
三、MOOC背景下C語言程序設計在線課程的教學設計
(一)學習連貫性原則
由于《C語言程序設計》往往是電子信息類相關專業的第一門專業課程,大多數學生并沒有形成成熟的編程思維。因此,在教學設計時應充分結合學生的學習基礎及理解規律,考慮前后微課的上下承接關系。所以并非所有知識點都需做成微課,我們僅需在學生的學習理解規律線上抽取重要的知識點即可。
(二)章節環節設計及選題
通過梳理整門課程的所有知識點及內在聯系,可以將《C語言程序設計》課程的學習分為五個階段。
第一階段:初識C語言。這一階段的主要任務是明確C語言程序到底長什么樣以及C程序在計算機中如何運行。
第二階段:走進C語言。這一階段的主要任務是帶領學生學會解讀C程序結構,對編寫C程序建立起初步的輪廓概念及編程思維。
第三階段:淺觸C語言。這一階段的主要任務是從有趣的程序案例出發,帶領學生開啟正式的C語言語法學習。
第四階段:深探C語言。這一階段是整門課程的核心部分。因此該階段需要通過合適的舉例問題分析、步驟拆解、編程引導及講解應用讓學生養成良好的編程習慣,形成正確的編程思維。
第五階段:進階C語言。這一階段的主要內容包括文件操作及異常處理。
(三)微課教學設計
主要微課教學設計舉例如下:
(1)第一階段——初始C語言。以微課“程序初識”為例。首先拋出問題——C語言程序到底長什么樣?接下來,以遞進的方式,從最簡單不包含任何語句,到有一條輸出語句,再到有函數調用的三個范例程序,讓學生認識程序的不同面貌及執行的原理,讓他們明確看到程序由簡到難的演變過程。
(2)第二階段——走進C語言。以微課“算法流程圖繪制”為例。通過兩段視頻案例引出算法設計及流程圖繪制的重要性。案例一:某同學拿到任務就開始寫代碼,由于沒有整體規劃,條理不清晰,結構不明確,越寫越迷茫,事倍功半;案例二:某同學拿到任務首先進行算法分析,建構流程圖,然后再將其轉變為程序代碼,高效準確,事半功倍。以此為基礎首先介紹什么是算法,接下來介紹流程圖的具體繪制方式。
(3)第三階段——淺觸C語言。以微課“常用輸入輸出函數”為例。拋出一個打印輸出問題引出有哪些常用的輸入輸出函數,并通過講解分析介紹它們的使用方式,并用以完成一開始拋出問題的輸入輸出。
(4)第四階段——深探C語言。由于這一部分的內容是整門課程的核心技術部分,相對生澀難懂,學生需要通過具體的應用案例反復練習才能真正地掌握。因此這一階段的微課設計主要從應用出發,通過動態地拆解問題,分析講解讓學生能順藤摸瓜找到循環、數組、函數及指針使用的本質原理。
以微課“一重循環的應用”為例。拋出問題——用循環怎樣解決“猴子吃桃”問題。由此引出怎樣用For/While循環去解決所有的類似循環問題。第一步:分析猴子吃桃問題本質,得出可以用循環來快速求解;第二步:分析循環的四要素——循環變量初始化、循環條件、循環體和循環變量更新,確定循環結構;第三步:繪制流程圖;第四步:流程圖轉換為程序代碼。通過以上一步步準確明了的分析引導學生真正掌握循環結構以及循環語句的使用原理。
(四)合理設置測驗輔助微課學習
通常的MOOC在線學習系統中,微課與測驗、作業等教學資源是獨立開來的。往往一個章節只有一個測驗,教師會安排學生在結束這個章節前完成測驗以檢驗這一章的學習成效。其實這樣的做法沒錯,但是效果不佳。正確的方式應該是讓測驗貫穿在整個學習過程中,方法是將測驗放入微課演示環節中,當學生學習完某個知識點或技能點后馬上彈出測驗,讓學生及時檢測自身的掌握情況。
四、結束語
現如今線上的MOOC平臺很多,上線使用中的《C語言程序設計》課程也不少。可是普遍存在微課視頻與測驗等配套資源相對獨立,知識點選取也缺乏內在聯系,沒有遵循學生的真實學習習慣及規律,無法讓讓學生完成連貫性的學習的問題。本文從章節環節設計及選題、微課教學設計、合理設置測驗輔助微課學習等方面提出了一套完整的《C語言程序設計》在線課程教學設計方案。通過以上改革措施,勢必能有效地提高該課程的教學質量,取得更好的教學效果。筆者也將繼續努力探索,力求進一步完善該課程的教學實施。