正文 從中澳教師的C++課程作業看中外教學差別(1 / 2)

摘要:C++課程是計算機本科教育為培養學生的編程能力而開設的重要課程。本文通過對比中國和澳大利亞教師為該課程布置的課程作業,探討中外教學在教學目標、教學方法、教學考核方麵的差異。

關鍵詞:C++;課程作業;教學差別

中西方在教學方麵的差異引起了教育界的極大關注,教育研究者們從各個方麵、各個角度論述了自己的認識和觀點[1-3]。為了提高中國大學教育的水平和中國學生的競爭能力,各級教育機構和教育工作者積極進行教學改革,從教學觀念和教學理論的變革到具體教學技能的應用和提高[4]。本文從C++課程作業這一微觀的實例入手,探討了中外教學在具體課程目標、所用方法和考核方麵的差異,希望給教育工作者以啟示。

C++課程是計算機本科教育中為培養學生編程能力和麵向對象思想而開設的重要課程。中外大學都將這門課程看做是計算機專業的專業基礎課。為了讓學生學以致用,提升解決問題能力,大多數教師在學期中布置了一個需要各種編程技巧的綜合課程作業。

下麵我們以中外教師布置的兩個典型課程作業為例,分析他們各自的教學目標、教學方法、教學考核以及學生的完成情況。

1中澳教師的C++課程作業

可能是考慮到學生的熟悉程度,國內大學的教師通常將課程作業定位到學生成績管理程序設計或工資管理係統設計。但是不管應用領域是什麼,教師對課程作業的布置形式依然大同小異,首先會描述涉及到的數據結構信息甚至數據庫信息,然後將具體功能需求詳細羅列出來,最後要求學生提交設計報告和源程序。表1就是從國內不同學校選擇的兩個典型C++課程作業。

北京工業大學計算機學院和澳大利亞JAMES COOK大學合作開設了信息技術本科班,C++課程由中澳教師共同承擔,其中實踐和課程作業都由澳洲教師負責。和中方教師的明確需求不同,澳洲教師的課程作業並沒有提供明確的需求說明,而是一個或幾個可直接運行的用C++完成的可試用係統。第一步要求學生按照說明自己運行該係統或程序,並根據運行情況完成係統功能和需求分析,第二步才是用所學C++知識實現這些功能和需求,有些還需要根據實際情況提升功能或修改需求;最後提交自己的源代碼和課程設計報告,並演示自己的設計理念和操作步驟,供大家提問、評定、打分,演示部分成績占總成績的50%。

2中澳教學的差別分析

根據上邊兩類作業及學生的反饋情況,我們從教學目標、教學方式、考核方式及學生的反應四個方麵總結了中澳教學存在的差異,如表2所示。下邊詳細分析不同要求的C++課程作業是如何導致這些差異的。

第一類作業因為具備了明確的數據結構、數據庫信息和需求分析,所以隻需要程序員的設計能力。而第二類作業要試運行係統,並根據自己的實際操作分析係統的功能和需求,要完成這一任務,需求分析能力是必備的。此外,因為沒有明確的數據結構和數據庫信息,設計合適的數據結構和數據庫也是設計程序的前提。最後,就是根據自己得到的詳細需求分析及數據結構和數據庫要求進行程序設計,和第一類作業一樣,程序員的設計能力也是完成第二類作業必備的能力。

很明顯,不同形式的課程作業對學生的能力要求不同,學生學到的實踐經驗也不同。從教學角度看,他們的教學目標也明顯不同。第一類作業更關注課程本身的知識掌握,即能否熟練運用C++語言進行程序設計;第二類作業除了強調課程本身應該具備的能力外,更注重解決一個問題的完整步驟和應具備的能力。在現實的項目流程中,我們更需要全麵解決問題的能力,因為很多時候客戶都無法提供詳細的需求分析,而隻能是一些模糊的描述或一個類似的舊係統,這就需要程序員直接接觸客戶,將客戶的模糊要求整理成一份詳細的需求分析。而這種能力在第一類課程作業中完全沒有涉及。

此外,這兩類作業也能引發學生的不同反應。第一類作業的需求明確,動腦的部分很少,很多同學的第一反應就是請教高手或上網查找合適的參考係統,這一點從Google和百度上的眾多求教帖子就可以看出,導致教師收到很多相似的代碼。第二類作業沒有現成的需求,同一試用係統經過功能組合和調整可以生成很多版本,如果給每人一個不同的試用版,讓他們根據試用結果整理一份需求文檔,再設計程序,用C++實現,雷同的情況將會減少,教師至少在需求文檔部分就能知道學生有沒有自己試用。對於一個未知功能的係統,學生的興趣和好奇心都很強,他們更願意去試用並自己實踐,總結出自己的結論和改進意見。當然,也不排除有些同學會反編譯這個可運行係統,並將得到的程序上交,可是這也需要他具備很多編程知識及各種反編譯工具的使用技能。這種作業模式有點像遊戲,可以極大地激發學生的求知欲。從教學角度看,這種讓學生保持興趣並自己探索、實踐是獲得知識的最好方法。