拓寬基礎,強化實踐,程序設計語言類課程教學的探索與實踐
發(fā)布時間:2019-08-07 來源: 幽默笑話 點擊:
摘要:程序設計語言是高等學校計算機專業(yè)本科教學計劃中不可缺少的基礎課程,由于語言種類多、發(fā)展快、實踐性強,如何在有限的課時內(nèi)讓學生系統(tǒng)地掌握程序設計語言的基本原理、具備初步的編程能力,是該類課程教學面臨的一個主要挑戰(zhàn)。本文介紹北京交通大學在程序設計語言類課程教學方面進行的研究性教學與實踐性教學相結合的探索與嘗試。
關鍵詞:計算機教育;程序設計語言類課程教學;教學改革;研究性教學;實踐教學
中圖分類號:G642 文獻標識碼:B
1程序設計語言類課程教學的問題
程序設計語言的研究與開發(fā)一直是計算機科學領域的核心問題之一。事實上,信息技術領域的任何新技術與新方法都離不開程序設計語言的表達和實現(xiàn),多名“圖靈獎”獲得者都是因為在程序設計語言方面的開創(chuàng)性成果而獲獎。研究型大學的計算機專業(yè)本科生不僅應掌握特定程序語言的應用,更應了解不同類型程序設計語言的理論基礎及其背后所蘊涵的程序設計方法學。
我國絕大多數(shù)高校計算機專業(yè)方向的本科生教學培養(yǎng)計劃中安排了程序設計語言的教學任務。與西方發(fā)達國家的高等院校相比,程序設計語言教學方面的突出不足之處主要表現(xiàn)為:
(1) 程序設計語言的教學在有限的本科生教學課時中占用了較大比例,開設了如C、C++、Java、C#、Web程序設計語言、腳本語言等課程,設置零散,缺乏系統(tǒng)性。
(2) 程序設計語言的教學大綱側重語言的語法教學,忽視程序語言設計的理論基礎。學生缺乏研究和開發(fā)新型程序設計語言的能力,與研究型大學的學生培養(yǎng)目標有較大差距。
(3) 程序設計語言實例教學的效果不能令人滿意。相當比例的計算機專業(yè)本科畢業(yè)生需要經(jīng)過一段時間的編程訓練后方能滿足工業(yè)界需求。
初步調(diào)研發(fā)現(xiàn),我國計算機學科排名靠前的幾所高校,如北京大學、北京航空航天大學、東南大學,開設了“高級程序設計語言的設計與實現(xiàn)”或“程序設計語言的原理與實踐”課程,但這些課程大多是面向計算機專業(yè)方向的研究生。據(jù)我們所知,德國和荷蘭等西方發(fā)達國家的高校在本科生層次上就已經(jīng)開設了相應課程,并且將程序設計語言的教學任務分配到多個階段。
基于以上分析,我們認為,有必要在計算機專業(yè)本科生教學培養(yǎng)計劃中增設程序設計語言的理論基礎課程,適當刪減程序設計語言實例教學課時,實現(xiàn)從程序設計語言基礎理論到編程實踐的系統(tǒng)化教學。
以培養(yǎng)可持續(xù)發(fā)展的計算機專業(yè)人才為導向,本文探討“研究性”教學與“實踐性”教學相結合的“程序設計語言”課程教學的探索與實踐。具體說來,在程序設計語言理論基礎教學方面,歸納與整理幾類程序設計語言的理論基礎,并以代表性程序設計語言為例進行分析與講解;在程序設計語言實踐教學方面,保留“C程序設計”課程教學,但對已有的教學內(nèi)容與方式實施改革。上述教學改革的目標是提高學生程序設計語言的理論水平,增強對程序設計語言的理解與應用能力,為后期從事計算機相關領域的研發(fā)活動夯實基礎。
2程序設計語言理論基礎的研究性教學探索
程序設計語言理論基礎研究性教學遵循“三結合”的基本原則,設計和實施課程教學。具體說來,采用“授之以漁”與“授之以魚”相結合、“演繹”與“歸納”相結合、“原理”與“實踐”相結合的方式。
由教授、副教授、講師各一名組成本課程的教學小組。三名授課教師均長期從事計算機軟件與理論方面的研究工作,在國內(nèi)外學術期刊或學術會議上發(fā)表多篇高水平的研究論文。其中,一名教師負責講授不同類型程序設計語言的理論基礎,另外兩名教師配合理論基礎講授語言實例。
本課程以授課教師編寫的講義為主,并提供大量相關的參考文獻。通常,程序設計語言的理論基礎可按三種編排方式講授,即按照不同語言的重要特征及比較、或者按照程序設計語言的基本結構及實現(xiàn)、或者按照程序設計語言的形式化語義講解;诮鼛啄瓿绦蛟O計語言的研究進展,本課程采用第一種編排方式組織課程的教學大綱。
(1) 分析與整理現(xiàn)有的各種程序設計語言,如C、C++、C#、Java、Ada、Lisp、Prolog等,歸納不同范型程序設計語言的特點與由來,繪制程序設計語言的發(fā)展譜系。
(2) 整理與探討過程式、函數(shù)式、邏輯式、面向對象式、并發(fā)式等不同范型程序設計語言的理論基礎,結合有代表性的程序設計語言實例分析講解。
(3) 探討新型程序設計語言的發(fā)展趨勢,討論開發(fā)新型程序設計語言的一般過程與方法。
在實施課程教學時,采取教師講授、學生演講與報告、課堂討論等各種形式的研究性教學方式。首先教師主講先導性知識與理論基礎,然后由教師指定相關文獻,學生課前必須認真研讀、準備課堂演講與報告,老師和其他同學提問;學生無法回答或解釋不清時,由教師進行疏導。學生準備課堂演講與報告時,應能運用合適的研究方法,并結合具體程序設計語言進行分析與討論。該教學方式將“學”與“教”互相融合,學生既是“學”的主體,又具有“教”的能力,即學習新知識并能清晰地講授給別人。通過積極參與課堂討論,學生必須積極思考教師或其他同學提出的問題,并進一步研讀文獻,鍛煉“提問題”、“回答問題”的能力,提高做研究的素質。
下面以“過程式程序設計語言的理論基礎”與“過程式程序設計語言實例”為例,簡要論述“學”與“教”相結合的研究性教學方式。
(1) 由教師講解過程式程序設計語言的基本思想、特點與理論基礎。
(2) 教師指定過程式程序設計語言中相關問題的研究論文,要求學生課后進行認真閱讀,并安排不同的學習小組對這些研究文章進行課堂演講與報告。
(3) 教師與學生提出各種問題,要求作報告的同學進行回答。例如,教師讓學生思考或回答“作為過程式程序設計語言的代表,C語言是如何處理控制結構、類型、存儲”等問題,學生必須將所學的基礎理論與C語言設計的基本思想結合起來才能回答此類問題。
類似地,教師系統(tǒng)地講授各類程序設計語言的理論基礎,學生結合各自程序設計語言實例進行分析與研究。通過這樣的由“一般”到“具體”或“歸納”與“演繹”相結合的過程,學生不僅可以深入理解面向對象、函數(shù)、邏輯、并發(fā)等各種范型的程序設計語言的理論基礎、設計思想,還可以對不同范型的程序設計語言進行系統(tǒng)的分析與比較。更重要的是,已知的程序設計語言上百種,課堂教學中不可能講授所有的程序設計語言,因此上述研究性教學方式有助于學生快速掌握新型程序設計語言。
課程考核采用“課堂演講與報告”加“課程論文”的形式,前者占40%,后者占60%!罢n堂演講與報告”布置一些經(jīng)典的程序設計語言方面的研究論文,學生閱讀并理解其中的關鍵思想,運用本課程講授的各種計算機專業(yè)研究方法、并結合程序設計語言實例進行課堂演講與報告,所有同學必須參與課堂討論。“課程論文”則要求學生運用計算機專業(yè)研究方法學習和追蹤某種新程序設計語言,或對當前主流程序設計語言進行評述。為了鼓勵討論,課程論文可以以研究小組為單位提交。但小組成員必須獨立參加口頭答辯,并說明自己在論文研究中的貢獻。
不難看出,上述課程教學將計算機專業(yè)研究方法潛移默化地運用到程序設計語言的教學中。通過本課程的學習,學生不僅要掌握程序設計語言的理論基礎,增強對程序設計語言的理解與應用,而且應理解如何應用各種計算機專業(yè)研究方法。
3程序設計語言實例實踐性教學的改革與嘗試
熱點文章閱讀