李 麗,王大勇,易 俗,殷慧文
(遼寧大學 創(chuàng)新創(chuàng)業(yè)學院,遼寧 沈陽 110036)
大學計算機基礎課程是高校大學生的必修課程,也是將來學習和工作中應用最廣泛的一門課程,承擔著培養(yǎng)學生計算思維和計算機技能的重要任務。計算機知識更新快,內容涵蓋廣泛,教學內容更要緊跟時代步伐,培養(yǎng)學生掌握學科前沿和應用性的技術,才能對其今后的學習和工作起到良好的促進作用[1-2]。
目前大學計算機基礎課也面臨著諸多問題:一方面,隨著課外輔導機構針對低齡學生的計算機教育不斷升溫,大學生入學時的計算機水平將會在一定時期內不斷提高;另一方面,學生間的計算機水平差距也會逐漸加大,因為入學前的計算機教育普遍存在常識性、基礎操作性等特點,而計算機高階教育只針對于個別群體或個別學生,另外,地區(qū)性差異也是加大學生計算機水平差距的一個重要因素。
入學時進行計算機水平測試固然是一種解決辦法,但多年教學經驗告訴我們,經過高考選拔考試入學的學生,在不考慮主觀因素的情況下,同等專業(yè)的學生其學習能力是相近的。很多入學前很少接觸計算機的學生,在經過一段時間的追趕學習后,會減少差距甚至出現(xiàn)反超,因此單憑入學時的計算機水平測試就決定學生的計算機水平是不科學的。我們可以通過課上知識的調整對學生計算機水平的差異進行協(xié)調,而對于一些在計算機方面特別優(yōu)秀的學生,可以在社團、競賽等環(huán)境下進一步提高能力。
第二個比較顯著的問題是文科學生對程序設計課程的學習能力和興趣程度相對較弱。教學中發(fā)現(xiàn),經管類的文科學生在掌握較難的計算機問題時有良好的表現(xiàn),而文史哲、語言類的學生則相對較弱,但對于趣味性較強的問題,整體表現(xiàn)都有所提升,因此,在通識教育中,富有趣味性的教學案例在教學環(huán)節(jié)中也十分重要,特別是一些能夠循序漸進引導學生逐級深入學習的教學案例,對于教學工作有著很好的促進作用。
Python 語言輕語法、重解決問題,具有簡單易學、易用、直觀、適用范圍廣的特點,因此特別適合非計算機專業(yè)學生學習。Python 語言還具備豐富的生態(tài)庫,非計算機專業(yè)的學生可以借助該語言解決各類本專業(yè)的計算機應用問題[3]。為促進文科專業(yè)學生程序設計的學習,Python 課程在內容設置方面應注重多元化設計,可以采用多位教師專題授課、多種教學模式混合、多層次教學案例應用等形式。課堂案例需要根據(jù)學生的接受程度深入淺出、逐級加深,特別是要抓住學生的興趣點,使其更積極主動地投入Python 語言的學習中。
目前許多高校都陸續(xù)開展了針對計算機專業(yè)和非計算機專業(yè)的Python 教學工作,很多高校教師在推動Python 教學的發(fā)展中也取得了豐碩的成果[4-6]。北京理工大學的嵩天[1-2]、南京大學的張莉[7-8]、中南大學的劉衛(wèi)國[9]、北京交通大學的魯凌云、西安郵電大學的王小銀等多位教師在Python 教學方面都有著深入的研究。此外,哈爾濱工業(yè)大學、大連理工大學、北京師范大學、北京工商大學、電子科技大學、南京郵電大學、西南財經大學、上海師范大學、大連外國語大學等高校也都開展了面向非計算機專業(yè)的Python 語言程序課程。
多元化的教學模式可以從幾個方面進行,包括教學方式的多元化、教學內容的多元化、考核方式的多元化。
將教學方式的多元化分成兩種形式:[1:n]教學方式和[1+n]教學方式。
[1:n]教學方式是指1 到n種教學方式共存,且比重相當,即同比重的教學方式共同應用于教學;[1+n]教學方式是指1 種主體教學方式輔以其他n種教學方式的融合。
[1:n]教學方式與傳統(tǒng)的教學方式相比較變化更大,在實際應用中可能會涉及許多顛覆性的改變。例如,課堂教學不再是以教師為主,而是以學生為主;手機不再游離課堂之外,而是作為學習的一個重要手段;將課堂講授與MOOC、SPOC、微課、翻轉課堂、智慧教學等形式組合在一起,課堂講授不再是教學活動的重點。
[1+n]教學方式則更接近傳統(tǒng)形式,只是在原有的100%教師講授為主體的課堂中,適當加入一定比例的其他教學方式,而這些教學方式可以是一種形式,也可以是多種形式。
由于[1+n]的教學方式更好操作,特別適合初期改革的應用。在實際教學中,可以嘗試[1+n]的教學方式,主體課程采用“電子教室軟件+電子教案+邊講邊練”的教學方式,部分內容輔以微信群、“雨課堂”、分組討論等多種教學方式。在練習環(huán)節(jié),利用微信小程序向微信群發(fā)布課上練習和課后作業(yè),可以實時獲取學生的答題情況,方便問題的講解,也可以進行課上測驗。“雨課堂”智慧教學解決方案可以協(xié)助進行簽到、評價學生課上表現(xiàn)、反映課上答題情況、布置預習任務、發(fā)放課件、進行課上考核等一系列教學輔助工作。分組討論應用在一些綜合題目中,可以提升學生的團隊精神,使學生共同完成一個指定的任務,如綜合運用多個標準庫或第三方庫進行圖形繪制。
教師授課不局限于由一位教師由始至終地講授一門課程,而是可以由多位教師以專題的形式講授。這種講授方式早已存在,但所占比例并不高。教學內容可以根據(jù)學生的水平進行分層次教學。分層次教學包括不同課程教學和同課程分級教學。
不同課程教學是指對于某一類課程,針對不同的學生開設不同課程。例如,對于計算機基礎課程,可以針對理科類、文科類和藝術類的學生分別設置不同的課程,常用的課程設置為程序設計、數(shù)據(jù)庫、多媒體技術等。
同課程分級教學是指針對不同專業(yè)、不同層次的學生,講授同一門課程,但講授的難度不同。例如,同為計算機程序設計課程,針對理科生可以講授比較全面的程序設計知識體系結構,而針對文科學生就可以刪減一些需要較多理科知識的內容。
實際教學中,將教學內容分為3 個模塊,分別由3 位教師講授。具體內容及學時分配見表1。根據(jù)文史類、經管類學生的特點增減教材中的章節(jié),教學內容也可以根據(jù)專業(yè)需要的不同進行適當調整。
一般的考核方式是平時成績+期末考試。平時成績一般包括出勤、作業(yè)、課堂測試等。這已經是一種多元化的考核方式,但采用不同的考核手段,效果也有所不同。以出勤為例,可以采用的方式就是多種多樣的,傳統(tǒng)的有按名單點名、電子教室簽到,“雨課堂”“慕課堂”“學習通”等平臺也推出了多種形式的掃碼簽到。目前可作為作業(yè)或測試考核方式的有紙質試卷、電子試卷、電子教室、考試軟件、智慧教學APP、微信小程序等以供選擇。

表1 內容設置及學時分配
Python 語言程序設計課程采用平時考核及期末考試的考核方式,在考核學生基礎理論知識的同時,重點考核學生的實踐操作能力。考核方式如圖1 所示,3 位授課教師平均分配平時成績,包括出勤和作業(yè)設計。作業(yè)設計是根據(jù)3 部分的特點分別布置不同難度的作業(yè)題目。利用電子教室、“雨課堂”和微信小程序輔助課堂出勤統(tǒng)計、課上考核以及作業(yè)提交。期末考試部分則采用考試軟件,對學生整個學期知識點的掌握程度進行考核。
在實際教學中,可以將教學內容分成3 個級別,分別為初級式教學、中級式教學和高級式教學。
初級式教學內容用于平衡學生間的計算機水平差異。對于計算機水平較為薄弱的學生,初級階段的內容用于入門,而對于計算機水平相對較強的學生,初級階段的內容用于將以往零散的計算機知識系統(tǒng)化。
中級內容用于進一步平衡學生間的差距,并注重教學案例的逐級式深入,以及案例的新穎性和趣味性,使學生更有意愿參與學習中。
高級階段注重學生水平的整體提升,并針對不同專業(yè)的學生進行不同內容的教育。
逐級式的教學模式可貫穿整門課的教學工作,也適用于某一知識點的教學工作。
Python 程序設計教學中以小型案例的形式進行講解,以逐級深入的方式進行滲透,既能夠平衡學生間差距,又能鞏固學生對知識的掌握。這種教學模式也是綜合了教學經驗和學生意見的結果。
在教學過程中設計簡單而且關聯(lián)的實例,可以讓更多的非計算機專業(yè)學生更容易掌握理科的編程課程。短小精悍的實例使學生更容易完成,增強其參與感的同時,更容易提升學生學習的積極性和取得一些小成就的滿足感;而這種滿足感又會帶動學生積極地參與程序設計的學習,兩者相輔相成,相互促進。課上用到的一些典型實例如下。

圖1 考核方式
實例1:利用turtle 庫,按照例1—例5,從繪制一個正方形開始,逐層深入,最后繪制出一個魔方圖形。
例1 繪制一個正方形。
例2 繪制一個正方形并填充顏色。
例3 繪制3 個正方形。
例4 繪制3 個正方形并填充不同顏色。
例5 繪制魔方(9 個正方形)。
繪制魔方教學實例如圖2 所示,例1 利用單層for 循環(huán)繪制了一個正方形,該形狀是組成后續(xù)形狀的基本形狀;例2 是向例1 中的形狀填充顏色,主要用到了fillcolor( )、begin_fill( )和end_fill( );例3是在例2的程序外又加了一層for循環(huán),并利用goto( )作合適的位移;例4 利用列表和random 庫中的choice( )函數(shù)共同完成隨機顏色的填充;例5 是在例4 基礎上繼續(xù)加一層for 循環(huán),并繼續(xù)利用goto( )作位移。實例1 由簡入繁、逐層深入,在原有實例基礎上不斷提出新的問題,使學生更容易理解嵌套程序的結構和含義、循環(huán)中列表的使用、random 庫和列表之間的關系等內容,引導學生深入學習。

圖2 繪制魔方教學實例
實例2:用3 個實例逐層深入,引導學生理解異常類型標注的重要性以及多種異常的處理方式,如圖3 所示。

圖3 異常類型教學實例
教學中還側重turtle 庫的舉例,在順序結構、分支結構、循環(huán)結構、組合數(shù)據(jù)類型、各種庫的介紹中都可借助turtle 繪圖。多種圖形的繪制,更容易激發(fā)學生的學習興趣,學生的作業(yè)就充分體現(xiàn)了他們對圖形的熱愛。學生通過對分支結構和循環(huán)結構的學習,結合turtle 庫以及random 庫和列表的相關知識,繪制了豐富多彩的圖形,如圖4 所示。

圖4 學生作業(yè)
在Python 程序設計實際教學中應用多元化的教學模式和逐級式的教學案例,取得的教學效果如下。
出勤考核滿分人數(shù)為53 人,滿分率為94.64%。作業(yè)提交情況為第一次作業(yè)56 人,第二次作業(yè)55 人,第三次作業(yè)55 人。作業(yè)提交率為98.81%。總成績在0~59 分的人數(shù)為2 人,60~69 分之間的人數(shù)為4 人,70~79 分之間的人數(shù)為28 人,80~89 分之間的人數(shù)為14 人,90~100 分之間的人數(shù)為8 人。
對總成績數(shù)據(jù)進行統(tǒng)計分析,得到圖5 所示的總成績分布圖,結果符合正態(tài)分布。
通過考查學生的出勤、作業(yè)和期末總成績,發(fā)現(xiàn)學生在出勤率和作業(yè)提交率方面較為突出,側面反映了學生對這門課的興趣較濃厚。總成績在符合正態(tài)分布的前提下,高分值人數(shù)比重較高。

圖5 總成績分布
多元化的課程模式和逐級式的教學內容更容易提升學生的學習興趣,平衡學生入學時的知識差距,培養(yǎng)學生計算思維,整體提升學生的計算機技能。后續(xù)工作將進一步增加Python 班級數(shù)量和班級人數(shù),達到逐步推廣的目的,并逐漸加強學生在程序設計方面的深入學習和專業(yè)應用。