陳文蘭
(南通大學信息科學技術學院,江蘇南通 226000)
隨著信息技術的廣泛應用,信息技術與教育教學的融合,正在改變著傳統(tǒng)的教育教學觀念、教學組織形態(tài)、教學與學習方式、教學管理機制、教學方法手段以及教師布局[1]。“強化現(xiàn)代信息技術與教育教學深度融合,解決好教與學模式創(chuàng)新”[2]是目前高校教育教學研究的熱點問題。伴隨著互聯(lián)網(wǎng)成長起來的“00 后”學生,具體很強的主體意識,傳統(tǒng)面對面的課堂教學已經(jīng)無法滿足他們的自主學習及個性化學習的需求;同時,C++程序設計課程的線下課堂教學也存在著諸多問題。開展課程線上資源建設和線下教學活動設計,融合傳統(tǒng)課堂教學和線上教學開展混合教學,可以有效地解決目前課程教學存在的問題,進而提高教學效果。
C++程序設計作為南通大學計算機類專業(yè)學生入學后的第一門專業(yè)必修課程,目前課程線下教學主要存在以下問題:
1)學生缺乏必要的基礎知識。C++程序設計課程在學生入學后的第一學期開設,學生尚未完成計算機導論課程的學習,對計算機中數(shù)據(jù)的表示、存儲及程序執(zhí)行過程等課程學習所需的基礎知識缺乏必要的了解,導致學生普遍存在入門困難的問題。
2)課程教學和考核重理論輕實踐。課堂教學由48 個理論學時和32 個實驗學時構成,以語法和編程方法講授為主,上機實驗為輔。課程考核以期末卷面考試為主(占70%),以平時學習過程和實驗考核為輔(占30%)。重理論輕實踐的教學過程和考核方式不能有效地提高學生的編程能力,達到學以致用。
3)課程教學以教師為主導。教學過程中主要以教師講授的形式開展理論課程的教學,學生參與度不高,無法突出學生學習的主體地位,不能充分調動學生學習的積極性和主動性。
4)課程教學不能滿足不同層次學生的需求。本課程的學生來自多個省份,學生的學習基礎和學習能力存在較大的差異。但受到課程教學學時的限制,課程教學只能按照相同的內(nèi)容和過程向前推進,無法兼顧不同層次的學生,教學內(nèi)容的深度和廣度不足,從而導致部分學生“吃不飽”或者“吃不了”。
5)教學反饋不及時且不全面。C++程序設計課堂教學時,主要采用課堂提問、作業(yè)、實驗情況及平時測驗等進行教學反饋。受教學時間安排等客觀因素的限制,教師不能全面、及時地了解學生的學習情況,進而有針對性地開展教學。
相對于傳統(tǒng)的課堂教學,線上教學為教師教學和學生學習提供了更廣闊的空間,合理規(guī)劃和有效組織的線上教學具有傳統(tǒng)課堂教學無法比擬的優(yōu)勢,主要包括:
1)線上教學可以突破時間和空間限制。線上教學可以不受課堂教學時間和空間的限制,學生可以自主地安排學習時間和學習進度,特別適合學生自主學習。
2)教學資源分享和使用方便靈活。授課視頻發(fā)布到網(wǎng)上,學生可以無限次觀看學習;補充的教學內(nèi)容可以由學生根據(jù)自身情況有選擇地學習;線上題目也可以供學生反復練習。
3)可以有效地解決教學內(nèi)容、過程和考核方式同一化問題。教師通過合理規(guī)劃和設計線上教學內(nèi)容可以滿足不同層次學生的學習需求,可以采用分層次考核方式以更準確地評價學生的學習效果。
4)能夠得到及時全面的教學反饋。線上教學平臺可以對學生學習過程和學習效果進行記錄和分析,教師可以通過平臺記錄及時全面地了解學生的學習情況,從而有針對性地開展教學。
盡管線上教學具有諸多課堂教學不可比擬的優(yōu)勢,但是,線上教學要求學生必須具有較強的自主學習能力、自我控制和管理能力,對于缺乏相關能力的學生由于缺乏教師的監(jiān)督,僅僅安排線上教學很難保質保量地完成課程學習。因此,充分利用線上教學的優(yōu)勢組織線上線下混合教學,突出學生學習的主體地位,可以有效地調動學生學習的積極性和主動性,進而提高課程的教學效果。
C++程序設計是南通大學計算機類專業(yè)學生必修的一門專業(yè)基礎課,也是學習程序設計的入門語言。課程的教學目的是使學生掌握程序設計的基本思想和方法,建立良好的編程習慣,基本具備使用C++語言進行軟件開發(fā)的能力。同時,該課程也是后續(xù)學習數(shù)據(jù)結構、操作系統(tǒng)等專業(yè)課程的基礎。從某種程度上來說,課程的學習情況直接決定了學生后續(xù)的學習和發(fā)展。
課程組基于工程教育專業(yè)認證標準的畢業(yè)要求制定了課程質量標準,從知識、能力和素質三方面確定了課程目標。
知識方面:熟悉C++的基本語法;理解面向對象程序設計概念和方法。
能力方面:能夠熟練使用C++的編程環(huán)境,掌握C++程序的調試方法;能夠針對具體的應用問題,運用面向對象設計思想,設計、編寫并調試程序;能夠完成小型軟件的開發(fā)。
素質方面:形成良好的團隊合作精神和溝通能力,勇于探索的科學精神。
課程組選擇中國大學MOOC[3]和頭歌實踐教學平臺(EduCoder)[4]作為C++程序設計理論和實驗教學的線上教學平臺,基于課程教學需求,進行課程資源建設。
1)教學視頻
按照課程教學過程錄制C++程序設計理論教學視頻,建立理論教學SPOC 課程。為了滿足實驗課程線上線下混合教學的需要,基于單次實驗,錄制實驗指導視頻,主要介紹實驗涉及的知識點、重難點、易錯點和實驗所需的課外知識。理論教學視頻和實驗課程教學視頻依據(jù)教學進度,按章發(fā)布給學生。
2)導學案
導學案是教師在學習理論、教育原理的指導下,在授課前依據(jù)課程質量標準和學生認知結構的特點從學生的角度設計的指導學生進行自主學習、自主探究、自主創(chuàng)新的導學材料[5]。在C++程序設計教學過程中,由教師根據(jù)課程質量標準中學習目標和學習內(nèi)容分章和課次編制導學案,詳細說明知識準備、學習目標和重難點,分析學習內(nèi)容結構,指導自學流程,解析學習難點,另外,每課次均設置不少于3道思考題。導學案發(fā)布到SPOC,以指導學生自主學習。
3)試題庫
中國大學MOOC 支持在SPOC 建立試題庫,并允許對一道題目打多個標簽。建立試題庫時為每個題目打4個標簽,分別是章、課次、類型和等級,其中“章”標識題目所在教材章節(jié),分為ch1~ch12;“課次”標識題目為所在章的第幾次課,分為No1、No2……;“類型”即題目類型,分別為選擇題、填空題,題目考查內(nèi)容包括基礎知識、程序閱讀和程序填空;“等級”標識題目難度,分別為高、中、低三個難度。課前測試和課后測試均按照難度設置三份試卷,試卷由在題庫中隨機抽取題目自動生成,根據(jù)題目難度和數(shù)量設置完成時間,要求學生在指定時間內(nèi)完成。課后作業(yè)除編程題外也按測試試卷生成方法生成,只是不限制學生的完成時間。
4)EduCoder項目
EduCoder 上的項目分為作業(yè)和實驗2 類,作業(yè)部分為課后作業(yè)的編程題,實驗部分為實驗項目。C++程序設計共有32個實驗學時,設計12個單人實驗和1個團隊實驗,每個實驗由易到難設計初級、中級和高級3類實驗項目。初級難度只涉及課程的基礎知識,要求所有學生都要完成;中級難度對學生具有一些技術性的要求,大部分學生能夠完成;高級難度涉及需要學習的新知識,少部分有能力的學生通過進一步學習和探索可以完成。以數(shù)組為例,初級難度包含回文判斷、九九乘法表打印、矩陣轉置運算;中級難度包括字符數(shù)組中刪除重復字符、多項式加法、丟手絹問題、幻方問題;高級難度包括混合四則運算表達式求解、歸并排序。課后作業(yè)的編程題也按相同方式設置。
線上線下混合教學活動設計時,應突出學生學習的主體地位,以調動學生的主觀能動性,激發(fā)學生學習熱情,而教師則作為學生學習的引領者、指導者和督促者,引導和督促學生主動學習和充分參與教學活動過程,并為學生答疑解惑和指明學習方向。將C++程序設計線上線下混合教學活動劃分為課前(線上)、課堂(線下)和課后(線上)三個階段,理論教學各階段的活動如圖1所示。

圖1 C++程序設計教學活動
1)課前活動
課前教學活動為課堂教學的準備階段,教師通過SPOC發(fā)布導學案、課程學習視頻和其他教學資料,學生以此為基礎完成內(nèi)容學習,參與學習效果測試,并準備進行課程交流匯報的材料。學習過程中,學生可通過SPOC 討論區(qū)和QQ 群進行討論,教師進行線上輔導。
教師基于線上測試、討論和輔導情況進行學情分析,確定課堂教學內(nèi)容,并以此為基礎將學生按學習情況進行分成三類,從每類學生中選取部分同學參與課堂匯報交流。
2)課堂活動
課堂教學中,首先由教師進行內(nèi)容串講,主要講授重難點內(nèi)容和學生在課前學習中出現(xiàn)的問題,中間穿插進行課堂交流和基于慕課堂的在線答題;然后,由學生進行學習情況匯報,每個學生匯報完成后,允許其他同學進行提問和交流;最后,基于學生匯報和交流情況,由教師進行點評和總結。各部分大致按照30分鐘、40分鐘、10分鐘進行安排。
3)課后活動
課后教學活動以SPOC 課程內(nèi)容為主導,學生通過作業(yè)、測試和討論鞏固學習成果,基于內(nèi)容擴展開展進一步學習。作業(yè)和測試中低級難度的內(nèi)容要求所有學生都必須完成,中、高級難度內(nèi)容由學生根據(jù)自己情況自主選擇完成。
實驗課也按照三個階段組織,課前由學生基于導學案和實驗指導視頻進行預習和實驗準備,并完成相應的思考題;課堂教學過程中,前60分鐘由學生完成EduCoder在線實踐平臺上的初級難度的實驗項目,教師巡查學生的上課情況,對有需要的學生提供指導,并通過平臺反饋了解學生實驗情況;后20分鐘由教師進行總結實驗情況,并與學生進行交流。課后由學生根據(jù)自己的能力選擇完成中級和高級難度的實驗項目。團隊實驗課題則將學生分成3人一組,每組自主選擇一個題目,共安排8個學時,前6個學時由學生進行設計、編程和調試,后2 個學時由學生進行匯報和交流。
為了能夠對學生學習過程、學習態(tài)度和學習效果進行綜合評價,課程組修改了課程質量標準中課程考核大綱。課程總評成績由平時成績和期末考試成績構成,各占50%。平時成績包括線上學習情況(5%)、作業(yè)及測試成績(15%)、交流匯報情況(5%)和實驗情況(25%)。作業(yè)及測試成績中,低級難度內(nèi)容占10%,中高級占5%;實驗情況中初級難度實驗占20%,中高級難度實驗占5%。期末考試成績?yōu)榫€下考試的卷面成績。
以上教學方法在“數(shù)據(jù)科學與大數(shù)據(jù)技術”專業(yè)2022級96位學生中進行了實踐,取得了較好的效果。主要體現(xiàn)在:1)學生學習的積極性得到了有效調動。能夠按要求完成所有課前任務的學生為92人,占比為95.83%,按時完成低級難度作業(yè)和測試的學生為95人,占比為98.95%,全部學生均完成了初級難度實驗項目。2)學生學習的主動性和探索精神有了較大的提升。完成中級難度實驗的學生為81 人,占比84.38%;完成高級難度實驗的學生為46 人,占比47.91%;主動參與教學互動和提問的學生比例明顯高于往屆。3)教學質量有了一定程度的提高。大部分學生較好地掌握了C++程序設計的基礎知識和程序設計方法,具有一定的程序設計能力。期末考核成績相對于2021級有了一定程度的提升,達成課程目標的學生比例由79.37%提高到91.67%,平均成績由76.03分提高到84.67分。
線上線下混合教學是高校課程教學發(fā)展的一個趨勢。通過融合線上理論和實踐教學平臺并為實現(xiàn)分層次教學建設相應的教學資源,開展C++程序設計理論和實驗課程的線上線下混合教學,可以充分利用線上教學的優(yōu)勢以解決傳統(tǒng)課堂教學存在的問題。通過線上線下混合的方式組織課程教學,可以有效地提升課程的教學效果。