張思++全婕++涂英
摘 要:目前多數(shù)大學(xué)都要求在校大學(xué)生學(xué)習(xí)并掌握一種編程語言,由于編程思想中的一些晦澀難懂的抽象概念,學(xué)生在學(xué)習(xí)入門級課程中都備受煎熬。文章主要了介紹一門專為大學(xué)生學(xué)習(xí)Java編程入門而設(shè)計的慕課。在新教學(xué)方法中,編程新手可以通過使用Alice3 可視化編程環(huán)境,直觀的學(xué)習(xí)體會抽象的編程思想。此外,本方法已經(jīng)應(yīng)用到2015-2016學(xué)期的Java教學(xué)中;同2014-2015學(xué)期的學(xué)生成績對比,本方法對學(xué)生掌握編程技術(shù)有積極的影響。
關(guān)鍵詞:Java;MOOC;Alice
中圖分類號:TP311 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-8454(2017)10-0021-03
近年來,教育信息化領(lǐng)域發(fā)生了革命性的變化。基于游戲?qū)W習(xí)[1],手機(jī)練習(xí)[2]和MOOC教學(xué)等新型教學(xué)模式及方法,不僅可以解決教育研究與教學(xué)實踐中的一些問題,而且還可以幫助教師改進(jìn)課程以及提高學(xué)生的學(xué)習(xí)效率。本文的貢獻(xiàn)是嘗試把可視化編程教學(xué)引入到編程教學(xué)過程中來,在教學(xué)方法和手段上進(jìn)行研究,努力提高學(xué)生對編程課程的學(xué)習(xí)興趣。在當(dāng)前MOOC的大環(huán)境下,此項研究有利于充分發(fā)揮教師和學(xué)生的主觀能動性;也可以為在移動互聯(lián)開放環(huán)境下的教學(xué)提供輔助支撐和基礎(chǔ)研究數(shù)據(jù)。本文首先介紹編程教學(xué)相關(guān)研究成果以及目前所面對的一些問題;然后介紹一種專為大學(xué)生學(xué)習(xí)Java編程入門而設(shè)計的教學(xué)方法;最后對比分析兩個學(xué)期兩個班的學(xué)習(xí)情況,總結(jié)新方法對學(xué)生掌握編程技術(shù)積極的影響。
一、編程教學(xué)現(xiàn)狀及問題
程序設(shè)計是高等院校非計算機(jī)專業(yè)學(xué)生的基礎(chǔ)課程。目前,程序設(shè)計語言有很多種,而且更新很快。初學(xué)者難以理解其中抽象的概念,難以掌握復(fù)雜的語法,無法下手檢查程序的語法錯誤,編寫程序成為一項枯燥而又艱苦的工作,讓不少初學(xué)者生畏,從而失去編程的興趣 [3]。
在傳統(tǒng)的計算機(jī)語言教學(xué)過程中,教師們主要的教學(xué)方法是通過在課堂上以教學(xué)為主、課后線下或QQ答疑為輔來實行。在這個過程中,我們強(qiáng)調(diào)了學(xué)生的課堂學(xué)習(xí),卻忽視了激發(fā)學(xué)生興趣導(dǎo)向的自主學(xué)習(xí)能力的培養(yǎng)。由于內(nèi)容抽象難懂,無法引起非計算機(jī)專業(yè)的本科生學(xué)習(xí)興趣。在計算機(jī)工科領(lǐng)域,男女比例嚴(yán)重失衡,這對學(xué)科長期發(fā)展很不利。
二、教學(xué)方法設(shè)計與實現(xiàn)
本研究項目針對當(dāng)前武漢市高等教育教學(xué)改革和建設(shè)中的突出問題,從理論和實踐兩個方面進(jìn)行研究和探索,尋求解決問題的方法和途徑,主要從以下4個方面的改革入手:教學(xué)手段,教學(xué)方法,實驗內(nèi)容和評價體系。該項目是以超星-泛雅平臺為載體,借助于江漢大學(xué)計算中心的自主學(xué)習(xí)平臺教育資源的支持而實現(xiàn)的。在線課程演示圖如圖1所示。
1.教學(xué)手段
數(shù)據(jù)可視化編程是指通過對可視化元素的相關(guān)操作進(jìn)行程序編寫。數(shù)據(jù)可視化編程就像是拼積木。邏輯積木的組合方式比較靈活,可以嘗試很多解決問題的思路。零基礎(chǔ)的初學(xué)者在完全不懂語法和算法的情況下可以快速實現(xiàn)自己的程序設(shè)計。
在學(xué)習(xí)編程的過程中,首先是學(xué)生自己用最簡單的方式盡快實現(xiàn)程序的主要功能,這樣有助于增強(qiáng)初學(xué)者信心和進(jìn)一步明確學(xué)習(xí)需求;然后在進(jìn)一步的學(xué)習(xí)中,學(xué)生會很快發(fā)現(xiàn)不是所有需求都能用可視化編程實現(xiàn),為了實現(xiàn)某些特定需求自己必須編寫代碼;接下來學(xué)生可以帶著問題,一邊閱讀相關(guān)書籍,一邊不斷修改調(diào)整已有代碼;最后經(jīng)過學(xué)習(xí)再使用程序設(shè)計的架構(gòu)來組織代碼。這樣學(xué)生既能最快地完成工作,又能逐漸養(yǎng)成較好的編程習(xí)慣和深入理解程序設(shè)計思想。
針對在Java編程課教學(xué)中遇到的一些實際問題,本項目通過使用Alice 3[4];該系統(tǒng)是一種面向三維模型的編程工具,學(xué)生可以使用系統(tǒng)來創(chuàng)作出三維動畫游戲,或?qū)а菀徊縿赢嫻适?。在該系統(tǒng)中,抽象的類、對象已經(jīng)換成可視的三維模型,系統(tǒng)中建造好的模型庫,包含各類動物、人、建筑物以及場地等,而且可以不斷地從網(wǎng)上補(bǔ)充新的三維模型到庫中。因為該系統(tǒng)是Java語言寫成,學(xué)生能將所編的游戲或者動畫程序通過Netbeans開發(fā)環(huán)境轉(zhuǎn)換成對應(yīng)Java源程序[5]。
2.教學(xué)方法
采用游戲教學(xué)法[1],激勵學(xué)生編程的興趣和欲望,培養(yǎng)計算思維能力,邏輯分析能力和發(fā)展創(chuàng)新能力。打破傳統(tǒng)按章節(jié)知識點授課的方式,從實際游戲項目出發(fā),在游戲設(shè)計開發(fā)的過程中,學(xué)生很容易初步掌握編程的基本概念及基本技能,從實戰(zhàn)中找到自信,再通過充分調(diào)動其自主學(xué)習(xí)能力,充分利用網(wǎng)上豐富學(xué)習(xí)資源,自行深入繼續(xù)學(xué)習(xí)。讓學(xué)生從親身經(jīng)歷的案例中分析原理,從實際現(xiàn)象中看出本質(zhì),最后將自己抽象領(lǐng)悟出來的概念同書本上的理論知識相對應(yīng)。例如:Java程序設(shè)計課程重難點一般包括:常用系統(tǒng)類的使用,數(shù)組的運用,OOP設(shè)計及實現(xiàn)。通過讓學(xué)生導(dǎo)演自己的電影或者創(chuàng)作游戲?qū)⒅R點隱形的傳達(dá)給學(xué)生。本課程包括8個主要章節(jié),21個課程知識點,以及32個學(xué)習(xí)任務(wù)。首先,學(xué)生通過學(xué)習(xí)一個個的教學(xué)小短片了解主要知識點;然后,完成課后小測驗,檢查自己的學(xué)習(xí)情況;接下來,到課堂實驗時,可以有的放矢的提出問題;最后,通過完成一個完整的實驗項目,掌握所學(xué)知識。這種教學(xué)方法相對于傳統(tǒng)教學(xué)來說有其復(fù)雜性,大大增加了教師的工作量;需要教師投入更大的精力和時間,更加全面的,合理的制定教學(xué)策略。具體課程模塊設(shè)計圖如圖2所示。
3.實驗內(nèi)容
根據(jù)學(xué)生的不同專業(yè)背景,設(shè)計不同的類型題材的實驗。對于非計算機(jī)專業(yè)的學(xué)生,程序設(shè)計是一個全新的領(lǐng)域,計算思維是一種新的思維方式;當(dāng)人初次接觸一個新事物時,抵觸和恐懼往往大于好奇和興奮。對這類學(xué)生,需要采用投其所好的教學(xué)策略。首先從他們熟悉的方向著手,再慢慢的使其解除抵觸心理,最后引導(dǎo)學(xué)習(xí)掌握新知識。學(xué)生專業(yè)與游戲類型的例子如表1所示:
4.評價體系
平時和期末成績各自占比為40% 和60%。平時成績主要考察學(xué)生動手能力,團(tuán)隊協(xié)作能力,以及表達(dá)能力。采用Quizzes + Project + Presentation形式作為平時成績考核。其中Presentation是由學(xué)生講解自己完成的作品,其余同學(xué)根據(jù)其講解給其作品評分。期末采用統(tǒng)一集中上機(jī)考試方式進(jìn)行考核。
三、教學(xué)效果對比分析
本文介紹的新教學(xué)方法已經(jīng)應(yīng)用到2015-2016學(xué)期的Java教學(xué)中,對學(xué)生掌握編程技術(shù)有積極的影響。如圖3所示:左圖為2014-2015學(xué)期Java程序設(shè)計課程A班學(xué)生成績,右圖為2015-2016學(xué)期Java程序設(shè)計課程B班學(xué)生成績。A班一共有54名學(xué)生;采用傳統(tǒng)教學(xué)方式授課。B班一共有56名學(xué)生;采用本文介紹的新教學(xué)方式授課。兩個班都是由非計算機(jī)專業(yè)學(xué)生(商科)組成,沒有編程基礎(chǔ)。通過一學(xué)期的學(xué)習(xí),A班平均分為51.68/100;B班平均分為54.23/100。B班高分段有6人,但是A班在高分段為1人。B班不及格人數(shù)比A班不及格人數(shù)少6人。A班最高分為82分,但是B班最高分為90分。
四、結(jié)語
本文所介紹的新教學(xué)方法,將傳統(tǒng)的“課堂 + 多媒體”教學(xué)模式,過渡到“移動互聯(lián) + 學(xué)生自主學(xué)習(xí) + 開放式自學(xué)方式”的模式。強(qiáng)化實踐教學(xué),提高教學(xué)效率和質(zhì)量,增加基于移動互聯(lián)網(wǎng)絡(luò)的自主學(xué)習(xí),建立MOOC課程,學(xué)生可以隨時隨地在網(wǎng)上完整地學(xué)習(xí)到一門課程,通過在線測評,檢查學(xué)習(xí)情況。借助Alice3D可視化編程技術(shù)手段,帶動學(xué)生的學(xué)習(xí)積極性,優(yōu)化教學(xué)效率。下一步研究主要是在挖掘?qū)W生相關(guān)數(shù)據(jù)的同時注重學(xué)生隱私保護(hù),體現(xiàn)學(xué)生為教學(xué)中心的指導(dǎo)思想。
參考文獻(xiàn):
[1]張思,向華. 基于游戲驅(qū)動的Java程序設(shè)計課程教學(xué)改革研究[J]. 計算機(jī)時代,2015(1):72-74.
[2]張思,吳開誠,廖恩陽. 基于Android的在線考試練習(xí)系統(tǒng)設(shè)計與實現(xiàn)[J]. 計算機(jī)時代, 2015(3):27-29.
[3]Lahtinen, E., Ala-Mutka, K., &J?覿rvinen, H. M. (2005, June). A study of the difficulties of novice programmers.In ACM SIGCSE Bulletin (Vol. 37, No. 3, pp. 14-18).ACM.
[4]Dann, W. P., Cooper, S., &Pausch, R. (2011). Learning to Program with Alice (w/CD ROM).Prentice Hall Press.
[5]Dann, W., Cosgrove, D., Slater, D., et al. (2012, February). Mediated transfer: Alice 3 to java.In Proceedings of the 43rd ACM technical symposium on Computer Science Education (pp. 141-146).ACM.
(編輯:郭桂真)