公務(wù)員期刊網(wǎng) 論文中心 正文

高校計(jì)算機(jī)程序設(shè)計(jì)課程介紹及啟示

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了高校計(jì)算機(jī)程序設(shè)計(jì)課程介紹及啟示范文,希望能給你帶來靈感和參考,敬請閱讀。

高校計(jì)算機(jī)程序設(shè)計(jì)課程介紹及啟示

摘要:以美國德州農(nóng)工大學(xué)計(jì)算機(jī)系開設(shè)的兩門程序設(shè)計(jì)課程為例,分別介紹程序設(shè)計(jì)基礎(chǔ)課程CSCE121和程序設(shè)計(jì)高級課程CSCE314的課程目標(biāo)、課程安排和評分機(jī)制,分析課堂講課、課后作業(yè)、上機(jī)實(shí)驗(yàn)、課后答疑、教學(xué)資源等各個(gè)環(huán)節(jié)的教學(xué)特色,總結(jié)在培養(yǎng)學(xué)生計(jì)算思維、不同編程語言對比教學(xué)等方面對我國高校程序設(shè)計(jì)課程的教學(xué)啟示。

關(guān)鍵詞:美國高校;程序設(shè)計(jì);計(jì)算思維;對比教學(xué)

0引言

程序設(shè)計(jì)課程是高校計(jì)算機(jī)相關(guān)專業(yè)的重要課程,中國高校計(jì)算機(jī)專業(yè)通常會以C語言、C++語言或者Java語言作為載體,為學(xué)生講授程序設(shè)計(jì)思想和奠定程序設(shè)計(jì)技術(shù)基礎(chǔ)。美國在計(jì)算機(jī)領(lǐng)域取得的研究成果一直處于領(lǐng)先地位,這無疑離不開美國高校優(yōu)質(zhì)的計(jì)算機(jī)教育水平。不少學(xué)者利用在美國訪學(xué)等機(jī)會深入了解美國高校的教學(xué)機(jī)制,學(xué)習(xí)其先進(jìn)的教學(xué)理念,給出不少啟示,關(guān)注的課程有軟件工程[1]、計(jì)算機(jī)科學(xué)原理[2]、電路與電子技術(shù)[3]、操作系統(tǒng)[4]、程序設(shè)計(jì)[5-6]等。文獻(xiàn)[5]和文獻(xiàn)[6]分別介紹美國羅格斯大學(xué)和斯坦福大學(xué)程序設(shè)計(jì)課程的教學(xué)體系,不同大學(xué)的教學(xué)體系設(shè)置也各不相同。筆者利用在美國德州農(nóng)工大學(xué)訪學(xué)一年的機(jī)會,通過旁聽課程以及與授課人員交流,對該校計(jì)算機(jī)程序設(shè)計(jì)課程的教學(xué)進(jìn)行調(diào)研,總結(jié)其課程特點(diǎn),分析對國內(nèi)相關(guān)課程的教學(xué)啟示

1美國德州農(nóng)工大學(xué)

美國德州農(nóng)工大學(xué)(TexasA&MUniversity,TAMU)是一所世界著名的公立研究型大學(xué),全美規(guī)模第六大的大學(xué)。學(xué)校成立于1876年,主校區(qū)位于美國德克薩斯州的卡城(CollegeStation)。德州農(nóng)工大學(xué)在2018年USNews的大學(xué)排名中位列第69位,在美國公立大學(xué)中排名第25位。工程學(xué)院是德州農(nóng)工大學(xué)最大的一個(gè)學(xué)院,擁有教師650人以上,學(xué)生19000人以上,2018年在USNews的全美最佳工程學(xué)院排名中位列第12位。工程學(xué)院下設(shè)14個(gè)系,計(jì)算機(jī)科學(xué)與工程系是其中的一個(gè)系,該系在機(jī)器人、機(jī)器視覺、人工智能等研究領(lǐng)域成果卓著。和國內(nèi)大學(xué)類似,德州農(nóng)工大學(xué)也將程序設(shè)計(jì)課程分為基礎(chǔ)課程和高級課程,供不同基礎(chǔ)的學(xué)生進(jìn)行修讀。

2程序設(shè)計(jì)基礎(chǔ)課程

2.1課程目標(biāo)

程序設(shè)計(jì)基礎(chǔ)課程的課程名為程序設(shè)計(jì)與概念導(dǎo)論(introductiontoprogramdesignandconcepts),課程編號為CSCE121[7]。學(xué)習(xí)該門課程只需要有一些基本的編程經(jīng)驗(yàn),如高中階段學(xué)過編程課程即可。課程目標(biāo)是以C++語言為載體,讓學(xué)生了解計(jì)算機(jī)程序結(jié)構(gòu)、設(shè)計(jì)和開發(fā)的概念,人們?nèi)绾闻c計(jì)算機(jī)溝通,計(jì)算機(jī)如何影響社會,并理解面向?qū)ο蟮木幊谈拍睿▽ο蟆㈩?、繼承、多態(tài)、封裝等),學(xué)會用高級編程語言C++編寫計(jì)算機(jī)程序,進(jìn)行算法設(shè)計(jì)與實(shí)現(xiàn),提高解決問題的能力,培養(yǎng)計(jì)算思維。

2.2課程安排

1)課堂講課。課程在每年的春季學(xué)期開設(shè),每周2次課堂講課,每次75min,共計(jì)15周。每次課程的講義資料和程序源碼都可以在課程網(wǎng)站上下載。授課內(nèi)容主要是通過各種示例介紹面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。在第一節(jié)課上,主講教師給學(xué)生提供Linux和Git之父LinusTorvalds寫的一篇文章“TheBeautyofProgramming”,很好地激發(fā)學(xué)生的學(xué)習(xí)興趣。在第二節(jié)課上,主講教師將C++的操作符、注釋方式、輸入輸出、變量、程序結(jié)構(gòu)、預(yù)編譯指令等語法層面的內(nèi)容全部羅列出來,供有一定編程基礎(chǔ)的學(xué)生與之前學(xué)過的編程語言進(jìn)行對比。與國內(nèi)大學(xué)對C++每個(gè)語法知識點(diǎn)細(xì)細(xì)講解不同,美國大學(xué)該課程的教學(xué)結(jié)合程序示例重點(diǎn)講解指針、抽象、容器、模板等面向?qū)ο箅y點(diǎn)內(nèi)容,學(xué)生課下必須提前進(jìn)行預(yù)習(xí),才能跟上課程節(jié)奏。2)課后作業(yè)。每次課都會有課后作業(yè)。課后作業(yè)主要基于已經(jīng)學(xué)過的知識,但也會覆蓋即將學(xué)到的內(nèi)容,要求提交到學(xué)校的eCampus管理系統(tǒng)中,課堂上將針對課后作業(yè)中的問題進(jìn)行充分討論。3)上機(jī)實(shí)驗(yàn)。課程每周都配套安排1次上機(jī)實(shí)驗(yàn)課,每次50min,在機(jī)房進(jìn)行;除了剛開始的兩周以及期中考試周,其余每周上機(jī)課都在后半段安排上機(jī)測試環(huán)節(jié),注重每節(jié)課學(xué)生學(xué)習(xí)效果的反饋。上機(jī)課由助教進(jìn)行指導(dǎo),助教通常為主講教師的博士生。每次上機(jī)課的內(nèi)容都非常詳盡地展示在課程網(wǎng)站上,包括這節(jié)課的目標(biāo)、上機(jī)任務(wù)、參考資料、擴(kuò)展思考題、致謝等。上機(jī)課的任務(wù)難度隨著課程進(jìn)度逐步遞增,其中很多任務(wù)都帶有啟發(fā)性,如給定一個(gè)實(shí)際問題,補(bǔ)充完整某個(gè)函數(shù),或者給定某一段代碼,讓學(xué)生發(fā)現(xiàn)代碼中的缺陷并進(jìn)行修訂,這些缺陷往往不是簡單的語法層面的錯(cuò)誤,而是更高級別的程序設(shè)計(jì)層面的問題,如缺乏程序安全性考慮等。上機(jī)課程的設(shè)計(jì)考慮到不同學(xué)生的基礎(chǔ),對于比較難的上機(jī)題目,在題目下方點(diǎn)擊一個(gè)可以展開的“提示”按鈕,即可看到對該題目解決方案的提示信息,給完成編程實(shí)驗(yàn)有困難的學(xué)生使用。此外,針對能快速完成實(shí)驗(yàn)任務(wù)的學(xué)生,額外提供擴(kuò)展思考題供學(xué)生提高練習(xí)。4)課后答疑。除了上課和上機(jī)之外,主講教師和每位助教每周均有1次60min的答疑時(shí)間,此外,每門課程還特別配備幾位同行教師(peerteachers),這些同行教師同樣可以在每周指定的時(shí)間段內(nèi)為這門課有困難的學(xué)生提供指導(dǎo)和幫助。由于美國大學(xué)的學(xué)生多數(shù)是住在校外的,為了便于師生溝通,美國很多高校都在使用Piazza網(wǎng)站搭建師生課后溝通的橋梁。該網(wǎng)站是一款專門為教師、助教和學(xué)生服務(wù)的問答互動平臺,集wiki和論壇模式為一體,可以實(shí)現(xiàn)隨時(shí)隨地的師生線上互動,支持移動手機(jī)IOS和Android應(yīng)用[8]。主講教師會在Piazza上為自己的課程創(chuàng)建一個(gè)問答中心,并在第一節(jié)后告知學(xué)生加入課程,之后學(xué)生和教師可以在上面分享問題和答案,平臺也能方便地查找問題和答案。不同的用戶可以對同一個(gè)問題進(jìn)行回答,而每位用戶的問答記錄也都會保存。如果學(xué)生急需一個(gè)問題的答案,可以對問題設(shè)置標(biāo)簽;教師可以查看問題標(biāo)簽的數(shù)量,有選擇地在課堂上詳細(xì)講解某些問題。5)教學(xué)資源。課程沒有指定的教材,只有參考書目,包括《AComputerScienceTapestry》《ProgrammingPrinciplesandPracticeUsingC++》以及經(jīng)典的《C++Primer》。主講教師的講義是最主要的教學(xué)資源,教師會經(jīng)常更新講義內(nèi)容,使學(xué)生獲得最新的知識和信息。

2.3評分機(jī)制

課程的成績組成:上機(jī)測驗(yàn)占15%,兩次期中考試各占20%,期末考試占45%。課程網(wǎng)站上顯示,往年第一次期中考試的最高分為100分,最低分為0分,平均分為68.5分;第二次期中考試的最高分為100分,最低分為0分,平均分為50.4分。綜上可見,評分總體是偏低的。期中和期末考試都是紙卷考試,主要以程序設(shè)計(jì)題為主,也有少量的多選題??荚囋试S學(xué)生攜帶參考資料,但對攜帶的材料有明確規(guī)定,學(xué)生可以攜帶5張A4尺寸的紙張,正反面均可以做筆記,并且告知學(xué)生考試的題目基于平時(shí)課后作業(yè)和上機(jī)練習(xí)的內(nèi)容,但不會是類似的題目。

3程序設(shè)計(jì)高級課程

3.1課程目標(biāo)

程序設(shè)計(jì)高級課程的名稱是編程語言(programminglanguage),編號為CSCE314[9],要求具有一定的計(jì)算機(jī)基礎(chǔ)并且已經(jīng)完成數(shù)據(jù)結(jié)構(gòu)與算法這門課的學(xué)生學(xué)習(xí)。課程介紹兩種不同的高級編程語言,一種是函數(shù)式編程語言Haskell,另一種是面向?qū)ο缶幊陶Z言Java。課程的教學(xué)目標(biāo)是使學(xué)生在學(xué)完課程后能夠更有效地使用現(xiàn)代編程語言,更容易地學(xué)習(xí)其他新的編程語言,并對語言結(jié)構(gòu)、通用抽象機(jī)制和程序運(yùn)行效率有更深入的理解。Haskell是一種標(biāo)準(zhǔn)化的、通用純函數(shù)式編程語言,有非限定性語義和強(qiáng)靜態(tài)類型,主要的執(zhí)行環(huán)境是GHC。國內(nèi)很少有高校會教授Haskell這門編程語言,往往只介紹更加大眾化的C、C++、Java編程語言,而將Haskell和Java放在同一門課程中講授也很特別,旨在對比兩種不同編程思想的語言,讓學(xué)生學(xué)會用函數(shù)式編程方法設(shè)計(jì)和實(shí)現(xiàn)程序,同時(shí)了解面向?qū)ο笳Z言的主要特征,獲得自主學(xué)習(xí)更多編程語言的能力。

3.2課程安排

課程在每年的春季和秋季學(xué)期均可以選修,每周3次課堂講課,每次75min,共計(jì)15周。1—7周介紹Haskell語言,第8周進(jìn)行期中考試,9—15周介紹Java語言。課程共安排10次課后作業(yè),在課程網(wǎng)站上有每次作業(yè)的詳細(xì)要求,包括作業(yè)目標(biāo)、指導(dǎo)建議、作業(yè)題目、致謝和測試用例。每次作業(yè)都由若干編程題組成,多數(shù)題目提供代碼框架或部分代碼,甚至有的題目為了使學(xué)生更清楚題目要求,還提供示例代碼。比較特別的是,教師為每道題目提供測試程序,學(xué)生只需下載并導(dǎo)入測試程序,便可以自動執(zhí)行測試用例對自己的程序進(jìn)行測試,判斷程序的運(yùn)行情況。作業(yè)中的題目有一些是經(jīng)典的數(shù)學(xué)編程題(如中國余數(shù)理論),課程網(wǎng)站上會給出詳細(xì)的問題背景資料,并在致謝中列出問題來源,甚至對首次將該問題作為編程練習(xí)題的人加以感謝,體現(xiàn)美國對知識產(chǎn)權(quán)的重視。課程的參考書目包括劍橋大學(xué)出版社的《ProgramminginHaskell》以及KenArnold等人撰寫的《TheJavaProgrammingLanguage》。學(xué)校圖書館可以下載參考書的電子版,還提供大量與課程有關(guān)的網(wǎng)絡(luò)資源鏈接供學(xué)生參考,因此,學(xué)生課后自主學(xué)習(xí)的工作量很大。

3.3評分機(jī)制

課程的成績組成:課堂測驗(yàn)占10%,課后作業(yè)占30%,期中考試占30%,期末考試占30%。實(shí)際上,主講教師對自己所授課程的評分機(jī)制有絕對的自主權(quán),每個(gè)學(xué)期都可以進(jìn)行調(diào)整,但通常期末考試都不會超過總成績的50%,更看重學(xué)生平時(shí)的階段性表現(xiàn),注重學(xué)習(xí)過程。如果學(xué)生超過截止日期提交作業(yè),除非有學(xué)校認(rèn)可的不可抗力原因,否則每遲交一天,成績將減少25%。學(xué)校對學(xué)術(shù)誠信非常重視,明確規(guī)定學(xué)生之間可以接受的合作和不可接受的合作??梢越邮艿暮献靼ㄓ懻擃}目以理解其含義、討論解決該問題的可行解決方案,但具體的解決方案必須由學(xué)生獨(dú)立構(gòu)建和編寫,還要明確說明別人給予的任何幫助以及引用的任何資源,包括人、書、論文、解決方案、網(wǎng)頁或其他。不可接受的合作包括剽竊他人和給他人提供剽竊。他們認(rèn)為剽竊是最嚴(yán)重的學(xué)術(shù)不端行為,破壞同事之間的信任,影響研究的正常傳播,在學(xué)生守則中明確規(guī)定對學(xué)術(shù)不端行為的處罰條例。德州農(nóng)工大學(xué)的學(xué)生自稱為Aggie,每一位Aggie在入學(xué)時(shí)都要簽署一份學(xué)術(shù)誠信聲明:每一位Aggie都不會撒謊、欺騙、偷竊和容忍做這些事的人。在上交任何學(xué)術(shù)相關(guān)的材料之前,每位學(xué)生還會要求打印并簽署誠信誓詞:以我的名譽(yù)擔(dān)保,作為一名Aggie,我在這份學(xué)術(shù)工作中既沒有給予也沒有接受任何未經(jīng)授權(quán)的幫助。

4課程分析與啟示

1)重視培養(yǎng)學(xué)生的計(jì)算思維能力。程序設(shè)計(jì)課程不能過多關(guān)注某個(gè)編程語言本身的語法知識,而忽略對學(xué)生計(jì)算思維能力的培養(yǎng)。國內(nèi)程序設(shè)計(jì)課程往往對編程語言本身介紹過多,要求學(xué)生熟練掌握編程語言的每一個(gè)知識點(diǎn),而對具體問題解決時(shí)的算法設(shè)計(jì)、方案對比、性能分析都做得不夠,往往直接拋出具體的算法,讓學(xué)生學(xué)習(xí)如何將算法變成代碼。只有多讓學(xué)生分析問題、設(shè)計(jì)算法,才能更好地鍛煉學(xué)生的邏輯思維能力。2)重視不同編程思想語言的對比教學(xué)。程序設(shè)計(jì)課程的教學(xué)主旨是讓學(xué)生學(xué)會如何用計(jì)算機(jī)程序結(jié)構(gòu)和邏輯框架解決實(shí)際問題,然而,編程語言更新?lián)Q代非常快,讓學(xué)生快速掌握不同的編程語言思想并能在今后的工作中快速學(xué)習(xí)新的編程語言非常重要。國內(nèi)高校每門程序設(shè)計(jì)課程只專注某一門編程語言,如C、C++或Java,沒有將不同的編程語言放在一起進(jìn)行對比教學(xué)。不同編程思想語言的對比教學(xué),可以將學(xué)生的注意力從某一門語言的語法規(guī)則轉(zhuǎn)移到不同語言的編程思想上,體會不同語言的特性和優(yōu)缺點(diǎn)。3)注重學(xué)生平時(shí)學(xué)習(xí)過程??己松铣绦蛟O(shè)計(jì)課程期末考試成績不會超過總成績的50%,而是更注重每個(gè)階段的學(xué)習(xí)驗(yàn)收,將大量的隨堂測試、上機(jī)實(shí)驗(yàn)、上機(jī)測試、課后作業(yè)、期中考試均作為學(xué)生的評分依據(jù)。國內(nèi)很多高校仍然以期末考試作為主要的考核手段,期末考試通常會占比70%以上,這樣很容易導(dǎo)致學(xué)生不注重平時(shí)積累,只想著期末考試前突擊,對學(xué)習(xí)以動手實(shí)踐為主的程序設(shè)計(jì)課程是非常不利的。4)照顧不同編程基礎(chǔ)的學(xué)生。美國很多高中開設(shè)計(jì)算機(jī)課程,不少學(xué)生具有一定的編程基礎(chǔ),因此課程網(wǎng)站上的作業(yè)布置會考慮到不同編程基礎(chǔ)的學(xué)生需求。對于編程基礎(chǔ)薄弱的學(xué)生,有難度的題目都會提供解題提示信息,但開始提示信息是隱藏的,也并不鼓勵(lì)學(xué)生在充分思考前查看;而對于編程基礎(chǔ)較好的學(xué)生,擴(kuò)展的思考題會極大地激發(fā)學(xué)生的學(xué)習(xí)熱情,豐富有趣的問題背景資料也能極大地拓寬學(xué)生的知識面。5)注重課下師生互動交流。每門課程都安排教師、助教、同行教師每周有固定的辦公室答疑時(shí)間,都開設(shè)Piazza課程問答中心,可以實(shí)現(xiàn)充分的師生互動交流,便于及時(shí)解答學(xué)生的疑問。國內(nèi)高校教師課后主要通過Email和學(xué)生進(jìn)行聯(lián)絡(luò),有些教師也建立課程的QQ群或者微信群,但是QQ群或微信群中學(xué)生的提問和教師的回答不能有效保留,因此,很可能會出現(xiàn)重復(fù)回答同一問題或者學(xué)生沒有看到答案重復(fù)提問的情況,問題和答案也不方面查找,浪費(fèi)師生的寶貴時(shí)間。6)自主靈活調(diào)整教學(xué)計(jì)劃。主講教師具有絕對的自主權(quán),每學(xué)期教師的教學(xué)計(jì)劃都會作出調(diào)整,包括課件、案例、參考資料、作業(yè)、評分標(biāo)準(zhǔn)等,以確保教學(xué)內(nèi)容緊跟最新技術(shù)和知識。國內(nèi)高校的教學(xué)計(jì)劃調(diào)整往往是由上至下的,學(xué)院領(lǐng)導(dǎo)要求調(diào)整教學(xué)大綱和教學(xué)計(jì)劃時(shí),所有教師在同一節(jié)點(diǎn)進(jìn)行調(diào)整,并且教授同一門課程的教師講什么內(nèi)容、做什么作業(yè)、怎么評分都要保持嚴(yán)格一致,不利于教師發(fā)揮各自優(yōu)勢,作出新的教學(xué)嘗試。7)注重知識產(chǎn)權(quán)和學(xué)術(shù)誠信。美國非常注重知識產(chǎn)權(quán),哪怕是某個(gè)數(shù)學(xué)問題用計(jì)算機(jī)編程實(shí)現(xiàn),都會注明誰第一個(gè)將這個(gè)問題用計(jì)算機(jī)實(shí)現(xiàn),潛移默化地培養(yǎng)學(xué)生對知識產(chǎn)權(quán)的尊重。此外,非常注重學(xué)術(shù)誠信,對哪些屬于正常合作、哪些屬于抄襲都有明確的定義,并通過讓所有學(xué)生簽署誠信承諾書強(qiáng)化誠信意識,對違反學(xué)術(shù)誠信的處罰非常嚴(yán)厲,而一般學(xué)生也不會觸犯誠信守則。

5結(jié)語

計(jì)算機(jī)程序設(shè)計(jì)課程是高校計(jì)算機(jī)相關(guān)專業(yè)的核心基礎(chǔ)課程,學(xué)好程序設(shè)計(jì)課程是學(xué)習(xí)其他專業(yè)課程的基礎(chǔ)??傮w而言,我國高校計(jì)算機(jī)專業(yè)學(xué)生的編程能力要強(qiáng)于計(jì)算思維能力,算法實(shí)現(xiàn)能力要優(yōu)于算法設(shè)計(jì)能力,在程序設(shè)計(jì)課程的教學(xué)中更好地培養(yǎng)學(xué)生的計(jì)算思維能力,仍然是學(xué)校和教師努力的方向。一方面,對于教師而言,在課堂上要注重培養(yǎng)學(xué)生的計(jì)算思維能力,可以考慮將不同編程思想的語言放在同一門課中進(jìn)行對比教學(xué),注重學(xué)生平時(shí)學(xué)習(xí)過程和兼顧不同基礎(chǔ)的學(xué)生;另一方面,對于學(xué)校而言,要加大課程輔助教學(xué)平臺、師生互動交流平臺的建設(shè),并支持教師能夠自主靈活調(diào)整教學(xué)計(jì)劃,發(fā)揮個(gè)人的教學(xué)特色,還要建立有效機(jī)制保護(hù)知識產(chǎn)權(quán)和確保學(xué)術(shù)誠信。

作者:許真珍 單位:大連理工大學(xué)軟件學(xué)院