張恒博,孟佳娜,王 巍,李靈華,劉 爽
(大連民族大學 計算機科學與工程學院,遼寧 大連 116650)
“程序設計基礎”是大連民族大學計算機科學與工程學院計算機科學與技術專業的一門重要專業基礎課程,是傳授程序設計基礎知識和培養學生邏輯思維能力、問題抽象能力和程序設計基本能力的入門課程,在計算機科學與技術相關專業課程學習中起著“開門鎖”的重要作用。課程開設在大學第一學期,主要講授程序設計語言的基礎知識、基本語法和結構化程序設計方法。程序設計基礎是程序設計語言課,也是算法設計分析課的先導課程。該課程的教學將直接影響學生對后續課程的學習效果。程序設計基礎課程的實踐教學環節非常重要,一方面實踐環節有利于學生對理論知識的消化和吸收;另一方面實踐環節有利于培養學生解決實際問題的能力。在教學活動中實踐教學環節占有重要地位[1-3]。
在程序設計基礎多年的教學過程中,學生普遍感到課程難學、對程序設計興趣不濃、學習積極性低等,分析原因發現程序設計基礎課程的實驗教學存在以下主要問題:
(1)實驗學時不足。由于近些年來高校不斷擴招,學校的生源質量持續下降,學生的分析問題、解決問題的能力與五年前的學生比較有了較大的差距,這時再用相同的學時讓學生完成相同的工作量所需的時間就不夠了,我們必須正視學生生源質量下降的事實,采用勤能補拙的策略,讓學生有更多的時間上機,多編程序,多調試程序,讓量變轉化為質變。
(2)實驗內容設計不夠合理。教改前程序設計基礎課程的實驗教學是與理論授課同步進行,實驗課是教師布置實驗習題,實驗習題大部分來自書本習題,利用相應章節的理論知識編程實現。難以調動學生學習興趣。
(3)師生互動性不足,實驗指導難以滿足學生需要。程序設計基礎是計算機科學與技術專業的很重要的專業入門課程,課程安排在大一第一學期。學生剛從高中畢業進入大學,在適應大學的學習方式時,還需要教師的指導,需要與教師有更多的互動。學生在上程序設計基礎實驗課時經常會碰到許多調試問題,有時很小的問題就會被卡住。但由于師資力量不足,一名教師需要同時指導幾十名同學進行實驗,導致大部分同學的問題無法得到解決。
高校的教學實踐活動必須適用于學校及學生的實際情況,滿足培養目標的要求。大連民族大學是一所少數民族學生為主體的綜合性院校,計算機科學與技術專業的學生來自30多個不同的省區,既有信息技術基礎教育發達的沿海城市,也有信息基礎落后的西部民族區域,專業每年招收新生180人左右。通過“程序設計基礎”課程的學習,既要培養每個學生的計算思維和基礎編程能力,也要發現、選拔并培養部分對程序設計有強烈愛好,能獨立解決有一定難度的實際應用問題的學生。為此,對“程序設計基礎”課程的實驗教學做了如下改革:
(1)增加實驗學時。“程序設計基礎”課程在教改前上機學時只有36學時,36學時在每學期的教學安排時,由于授課對象是大一新生,要有新生教育和軍訓的教學安排,只能在第4周以后安排上課,第5周又是十一長假,第18周以后學校的機房資源又要統一為集中性實踐性課程設計服務,上機實驗教學一般只能安排在6到17周,36學時安排在12周內,每周平均3學時,在大學的教學活動一般是以2學時為單位,這樣造成有的周2次上機課,有的周1次上機課,非常混亂。把學生的上機學時增加到48學時后,平均每周4學時,安排上機時正好一個下午或一個上午,讓學生有一個大塊的時間來編寫程序,調試程序。
(2)精心設計實驗項目。在程序設計基礎的實驗項目設計中,綜合考慮學生的基礎、學習能力、抽象思維、接受能力等方面的差異。上機學時增加到48學時后,學生的上機時間比原36學時一下子寬裕了許多。原有的實驗指導書是6個實驗。顯然這樣的實驗指導書不適合新的實驗教學體系,為此重新編寫了新的實驗指導書。該實驗指導書分12個實驗,每個實驗4學時。增加了題型,有閱讀程序,完成程序,調試程序和編寫程序4種題型。這樣學生每次上機都對應一個實驗,在一下午的時間完成一個實驗。為了解決有的同學吃不了,有的同學吃不飽的問題,把實驗內容分成基礎訓練和能力提高兩部分,大部分同學完成基礎訓練就可以了,少數想深入提高的同學還可以再完成能力提高的部分。
基于上述分析,對程序設計基礎實驗項目進行設置優化,具體實驗項目見表1。

表1 實驗項目一覽
(3)合理組織學生。在“程序設計基礎”課程的實驗教學中,大部分同學在程序的調試中都會出現許多問題。老師在指導上機時往往手忙腳亂,一堂課也幫不了幾個學生。針對這個問題,在學期一開始,把每個班分成6個小組,每個小組5至6名同學,然后選拔培養了一批少數有特殊興趣愛好的學生做組長。這樣老師、課代表、小組長、普通學生就形成一個樹狀結構,一個老師就有了十幾名小組長幫忙。一些在調試程序的小問題,同學問一下組長就解決了,這樣老師集中解決組長解決不了的較困難的問題。上機課的效率大幅提高。收作業時組員交給組長,組長交給課代表,課代表交給老師,大家都很輕松。也保證了上機作業的順利提交。當一個題目比較難時,一個小組的同學可以互相商量,當一個題目的編程量較大時,同組同學還可以分工合作,協同處理。小組長在幫助同學調試程序的過程中也得到了處理問題的訓練,并且很有成就感。通過有效的組織,一個班級形成一個整體,充分發揮每個學生的能動性。這樣先進帶動后進,后進促進先進,形成一個良性循環。
(4)革新考核方式。程序設計基礎課一般通過“筆試+上機實驗”的模式考核學生對該課程的掌握情況。在這種模式中,筆試成績的比例通常比較高。從一定程度上講,這種考核方式適合層次相同和識記能力較強的學生。而對于不同層次、動手能力較強但表達能力較弱的學生往往不太適合,這也正是理科類學生的特點。這種一張試卷定成績的考核模式并不能完全反映學生的實際情況,更不利于引導學生注重平時的學習過程,因此我們必須對課程考核方式進行必要的改革。
在程序設計基礎課程的考核體系中,教師要注重學習過程的重要性,加大平時考核成績在總成績中所占的比重。例如,將平時學習成績比例設為10%,考核內容包括課堂問題回答、討論、課堂表現及作業完成情況等;提高實驗成績在總成績中的百分比,將實驗報告比例設為20%,包括平時實驗完成情況和實驗報告完成情況等;將期末筆試成績比例設為70%,主要考查學生對基本知識和概念的掌握情況;這種考核體系將學生平時的課堂表現算入期末考核總成績中,同時考查學生對于平時實驗的完成情況,使得考核的內容更全面和更科學。
通過近幾年對“程序設計基礎”課程實踐教學的不斷改革,已經取得一定的教學成果。學生通過大一基礎編程的訓練,積累了程序設計扎實的基本功,為其后的課程奠定了良好的基礎,并且在相關的學科競賽、創新創業項目等活動中獲得了很好的成績。計算機科學與技術專業學生2013年和2014年組隊獲得遼寧杯大學生程序設計大賽二等獎兩項、三等獎三項;參加2013年、2014年藍橋杯決賽獲全國二等獎1項,三等獎3項;計算機科學與技術學生參加美國2015年大學生數學建模競賽,獲全國二等獎一項,全國三等獎5項;2016年組隊參加第四屆中國大學生服務外包創新創業大賽,獲全國一等獎和二等獎各一項;2014年組隊參加第三屆“中國軟件杯”大學生軟件設計大賽,榮獲二等獎及最佳創新獎。近三年,計算機科學與技術專業學生獲得大創項目44項,其中國家級大創項目3項,省級大創項目8項,學生發表論文24篇,申請專利11項,有20名學生獲得軟件著作權。
通過對“程序設計基礎”課程實踐教學的不斷改革,還獲得了一些改革成果,但還需要通過實踐教學和理論教學的有機結合和相互補充,進一步完善試驗內容,多方面調動學生的積極性,使學生掌握程序設計的基礎技能,為其后的課程奠定堅實的基礎。