前言:想要寫出一篇引人入勝的文章?我們特意為您整理了高校計算機程序設(shè)計課程介紹及啟示范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:以美國德州農(nóng)工大學計算機系開設(shè)的兩門程序設(shè)計課程為例,分別介紹程序設(shè)計基礎(chǔ)課程CSCE121和程序設(shè)計高級課程CSCE314的課程目標、課程安排和評分機制,分析課堂講課、課后作業(yè)、上機實驗、課后答疑、教學資源等各個環(huán)節(jié)的教學特色,總結(jié)在培養(yǎng)學生計算思維、不同編程語言對比教學等方面對我國高校程序設(shè)計課程的教學啟示。
關(guān)鍵詞:美國高校;程序設(shè)計;計算思維;對比教學
0引言
程序設(shè)計課程是高校計算機相關(guān)專業(yè)的重要課程,中國高校計算機專業(yè)通常會以C語言、C++語言或者Java語言作為載體,為學生講授程序設(shè)計思想和奠定程序設(shè)計技術(shù)基礎(chǔ)。美國在計算機領(lǐng)域取得的研究成果一直處于領(lǐng)先地位,這無疑離不開美國高校優(yōu)質(zhì)的計算機教育水平。不少學者利用在美國訪學等機會深入了解美國高校的教學機制,學習其先進的教學理念,給出不少啟示,關(guān)注的課程有軟件工程[1]、計算機科學原理[2]、電路與電子技術(shù)[3]、操作系統(tǒng)[4]、程序設(shè)計[5-6]等。文獻[5]和文獻[6]分別介紹美國羅格斯大學和斯坦福大學程序設(shè)計課程的教學體系,不同大學的教學體系設(shè)置也各不相同。筆者利用在美國德州農(nóng)工大學訪學一年的機會,通過旁聽課程以及與授課人員交流,對該校計算機程序設(shè)計課程的教學進行調(diào)研,總結(jié)其課程特點,分析對國內(nèi)相關(guān)課程的教學啟示。
1美國德州農(nóng)工大學
美國德州農(nóng)工大學(TexasA&MUniversity,TAMU)是一所世界著名的公立研究型大學,全美規(guī)模第六大的大學。學校成立于1876年,主校區(qū)位于美國德克薩斯州的卡城(CollegeStation)。德州農(nóng)工大學在2018年USNews的大學排名中位列第69位,在美國公立大學中排名第25位。工程學院是德州農(nóng)工大學最大的一個學院,擁有教師650人以上,學生19000人以上,2018年在USNews的全美最佳工程學院排名中位列第12位。工程學院下設(shè)14個系,計算機科學與工程系是其中的一個系,該系在機器人、機器視覺、人工智能等研究領(lǐng)域成果卓著。和國內(nèi)大學類似,德州農(nóng)工大學也將程序設(shè)計課程分為基礎(chǔ)課程和高級課程,供不同基礎(chǔ)的學生進行修讀。
2程序設(shè)計基礎(chǔ)課程
2.1課程目標
程序設(shè)計基礎(chǔ)課程的課程名為程序設(shè)計與概念導論(introductiontoprogramdesignandconcepts),課程編號為CSCE121[7]。學習該門課程只需要有一些基本的編程經(jīng)驗,如高中階段學過編程課程即可。課程目標是以C++語言為載體,讓學生了解計算機程序結(jié)構(gòu)、設(shè)計和開發(fā)的概念,人們?nèi)绾闻c計算機溝通,計算機如何影響社會,并理解面向?qū)ο蟮木幊谈拍睿▽ο?、類、繼承、多態(tài)、封裝等),學會用高級編程語言C++編寫計算機程序,進行算法設(shè)計與實現(xiàn),提高解決問題的能力,培養(yǎng)計算思維。
2.2課程安排
1)課堂講課。課程在每年的春季學期開設(shè),每周2次課堂講課,每次75min,共計15周。每次課程的講義資料和程序源碼都可以在課程網(wǎng)站上下載。授課內(nèi)容主要是通過各種示例介紹面向?qū)ο蟮某绦蛟O(shè)計方法。在第一節(jié)課上,主講教師給學生提供Linux和Git之父LinusTorvalds寫的一篇文章“TheBeautyofProgramming”,很好地激發(fā)學生的學習興趣。在第二節(jié)課上,主講教師將C++的操作符、注釋方式、輸入輸出、變量、程序結(jié)構(gòu)、預編譯指令等語法層面的內(nèi)容全部羅列出來,供有一定編程基礎(chǔ)的學生與之前學過的編程語言進行對比。與國內(nèi)大學對C++每個語法知識點細細講解不同,美國大學該課程的教學結(jié)合程序示例重點講解指針、抽象、容器、模板等面向?qū)ο箅y點內(nèi)容,學生課下必須提前進行預習,才能跟上課程節(jié)奏。2)課后作業(yè)。每次課都會有課后作業(yè)。課后作業(yè)主要基于已經(jīng)學過的知識,但也會覆蓋即將學到的內(nèi)容,要求提交到學校的eCampus管理系統(tǒng)中,課堂上將針對課后作業(yè)中的問題進行充分討論。3)上機實驗。課程每周都配套安排1次上機實驗課,每次50min,在機房進行;除了剛開始的兩周以及期中考試周,其余每周上機課都在后半段安排上機測試環(huán)節(jié),注重每節(jié)課學生學習效果的反饋。上機課由助教進行指導,助教通常為主講教師的博士生。每次上機課的內(nèi)容都非常詳盡地展示在課程網(wǎng)站上,包括這節(jié)課的目標、上機任務(wù)、參考資料、擴展思考題、致謝等。上機課的任務(wù)難度隨著課程進度逐步遞增,其中很多任務(wù)都帶有啟發(fā)性,如給定一個實際問題,補充完整某個函數(shù),或者給定某一段代碼,讓學生發(fā)現(xiàn)代碼中的缺陷并進行修訂,這些缺陷往往不是簡單的語法層面的錯誤,而是更高級別的程序設(shè)計層面的問題,如缺乏程序安全性考慮等。上機課程的設(shè)計考慮到不同學生的基礎(chǔ),對于比較難的上機題目,在題目下方點擊一個可以展開的“提示”按鈕,即可看到對該題目解決方案的提示信息,給完成編程實驗有困難的學生使用。此外,針對能快速完成實驗任務(wù)的學生,額外提供擴展思考題供學生提高練習。4)課后答疑。除了上課和上機之外,主講教師和每位助教每周均有1次60min的答疑時間,此外,每門課程還特別配備幾位同行教師(peerteachers),這些同行教師同樣可以在每周指定的時間段內(nèi)為這門課有困難的學生提供指導和幫助。由于美國大學的學生多數(shù)是住在校外的,為了便于師生溝通,美國很多高校都在使用Piazza網(wǎng)站搭建師生課后溝通的橋梁。該網(wǎng)站是一款專門為教師、助教和學生服務(wù)的問答互動平臺,集wiki和論壇模式為一體,可以實現(xiàn)隨時隨地的師生線上互動,支持移動手機IOS和Android應用[8]。主講教師會在Piazza上為自己的課程創(chuàng)建一個問答中心,并在第一節(jié)后告知學生加入課程,之后學生和教師可以在上面分享問題和答案,平臺也能方便地查找問題和答案。不同的用戶可以對同一個問題進行回答,而每位用戶的問答記錄也都會保存。如果學生急需一個問題的答案,可以對問題設(shè)置標簽;教師可以查看問題標簽的數(shù)量,有選擇地在課堂上詳細講解某些問題。5)教學資源。課程沒有指定的教材,只有參考書目,包括《AComputerScienceTapestry》《ProgrammingPrinciplesandPracticeUsingC++》以及經(jīng)典的《C++Primer》。主講教師的講義是最主要的教學資源,教師會經(jīng)常更新講義內(nèi)容,使學生獲得最新的知識和信息。
2.3評分機制
課程的成績組成:上機測驗占15%,兩次期中考試各占20%,期末考試占45%。課程網(wǎng)站上顯示,往年第一次期中考試的最高分為100分,最低分為0分,平均分為68.5分;第二次期中考試的最高分為100分,最低分為0分,平均分為50.4分。綜上可見,評分總體是偏低的。期中和期末考試都是紙卷考試,主要以程序設(shè)計題為主,也有少量的多選題??荚囋试S學生攜帶參考資料,但對攜帶的材料有明確規(guī)定,學生可以攜帶5張A4尺寸的紙張,正反面均可以做筆記,并且告知學生考試的題目基于平時課后作業(yè)和上機練習的內(nèi)容,但不會是類似的題目。
3程序設(shè)計高級課程
3.1課程目標
程序設(shè)計高級課程的名稱是編程語言(programminglanguage),編號為CSCE314[9],要求具有一定的計算機基礎(chǔ)并且已經(jīng)完成數(shù)據(jù)結(jié)構(gòu)與算法這門課的學生學習。課程介紹兩種不同的高級編程語言,一種是函數(shù)式編程語言Haskell,另一種是面向?qū)ο缶幊陶Z言Java。課程的教學目標是使學生在學完課程后能夠更有效地使用現(xiàn)代編程語言,更容易地學習其他新的編程語言,并對語言結(jié)構(gòu)、通用抽象機制和程序運行效率有更深入的理解。Haskell是一種標準化的、通用純函數(shù)式編程語言,有非限定性語義和強靜態(tài)類型,主要的執(zhí)行環(huán)境是GHC。國內(nèi)很少有高校會教授Haskell這門編程語言,往往只介紹更加大眾化的C、C++、Java編程語言,而將Haskell和Java放在同一門課程中講授也很特別,旨在對比兩種不同編程思想的語言,讓學生學會用函數(shù)式編程方法設(shè)計和實現(xiàn)程序,同時了解面向?qū)ο笳Z言的主要特征,獲得自主學習更多編程語言的能力。
3.2課程安排
課程在每年的春季和秋季學期均可以選修,每周3次課堂講課,每次75min,共計15周。1—7周介紹Haskell語言,第8周進行期中考試,9—15周介紹Java語言。課程共安排10次課后作業(yè),在課程網(wǎng)站上有每次作業(yè)的詳細要求,包括作業(yè)目標、指導建議、作業(yè)題目、致謝和測試用例。每次作業(yè)都由若干編程題組成,多數(shù)題目提供代碼框架或部分代碼,甚至有的題目為了使學生更清楚題目要求,還提供示例代碼。比較特別的是,教師為每道題目提供測試程序,學生只需下載并導入測試程序,便可以自動執(zhí)行測試用例對自己的程序進行測試,判斷程序的運行情況。作業(yè)中的題目有一些是經(jīng)典的數(shù)學編程題(如中國余數(shù)理論),課程網(wǎng)站上會給出詳細的問題背景資料,并在致謝中列出問題來源,甚至對首次將該問題作為編程練習題的人加以感謝,體現(xiàn)美國對知識產(chǎn)權(quán)的重視。課程的參考書目包括劍橋大學出版社的《ProgramminginHaskell》以及KenArnold等人撰寫的《TheJavaProgrammingLanguage》。學校圖書館可以下載參考書的電子版,還提供大量與課程有關(guān)的網(wǎng)絡(luò)資源鏈接供學生參考,因此,學生課后自主學習的工作量很大。
3.3評分機制
課程的成績組成:課堂測驗占10%,課后作業(yè)占30%,期中考試占30%,期末考試占30%。實際上,主講教師對自己所授課程的評分機制有絕對的自主權(quán),每個學期都可以進行調(diào)整,但通常期末考試都不會超過總成績的50%,更看重學生平時的階段性表現(xiàn),注重學習過程。如果學生超過截止日期提交作業(yè),除非有學校認可的不可抗力原因,否則每遲交一天,成績將減少25%。學校對學術(shù)誠信非常重視,明確規(guī)定學生之間可以接受的合作和不可接受的合作??梢越邮艿暮献靼ㄓ懻擃}目以理解其含義、討論解決該問題的可行解決方案,但具體的解決方案必須由學生獨立構(gòu)建和編寫,還要明確說明別人給予的任何幫助以及引用的任何資源,包括人、書、論文、解決方案、網(wǎng)頁或其他。不可接受的合作包括剽竊他人和給他人提供剽竊。他們認為剽竊是最嚴重的學術(shù)不端行為,破壞同事之間的信任,影響研究的正常傳播,在學生守則中明確規(guī)定對學術(shù)不端行為的處罰條例。德州農(nóng)工大學的學生自稱為Aggie,每一位Aggie在入學時都要簽署一份學術(shù)誠信聲明:每一位Aggie都不會撒謊、欺騙、偷竊和容忍做這些事的人。在上交任何學術(shù)相關(guān)的材料之前,每位學生還會要求打印并簽署誠信誓詞:以我的名譽擔保,作為一名Aggie,我在這份學術(shù)工作中既沒有給予也沒有接受任何未經(jīng)授權(quán)的幫助。
4課程分析與啟示
1)重視培養(yǎng)學生的計算思維能力。程序設(shè)計課程不能過多關(guān)注某個編程語言本身的語法知識,而忽略對學生計算思維能力的培養(yǎng)。國內(nèi)程序設(shè)計課程往往對編程語言本身介紹過多,要求學生熟練掌握編程語言的每一個知識點,而對具體問題解決時的算法設(shè)計、方案對比、性能分析都做得不夠,往往直接拋出具體的算法,讓學生學習如何將算法變成代碼。只有多讓學生分析問題、設(shè)計算法,才能更好地鍛煉學生的邏輯思維能力。2)重視不同編程思想語言的對比教學。程序設(shè)計課程的教學主旨是讓學生學會如何用計算機程序結(jié)構(gòu)和邏輯框架解決實際問題,然而,編程語言更新?lián)Q代非???,讓學生快速掌握不同的編程語言思想并能在今后的工作中快速學習新的編程語言非常重要。國內(nèi)高校每門程序設(shè)計課程只專注某一門編程語言,如C、C++或Java,沒有將不同的編程語言放在一起進行對比教學。不同編程思想語言的對比教學,可以將學生的注意力從某一門語言的語法規(guī)則轉(zhuǎn)移到不同語言的編程思想上,體會不同語言的特性和優(yōu)缺點。3)注重學生平時學習過程??己松铣绦蛟O(shè)計課程期末考試成績不會超過總成績的50%,而是更注重每個階段的學習驗收,將大量的隨堂測試、上機實驗、上機測試、課后作業(yè)、期中考試均作為學生的評分依據(jù)。國內(nèi)很多高校仍然以期末考試作為主要的考核手段,期末考試通常會占比70%以上,這樣很容易導致學生不注重平時積累,只想著期末考試前突擊,對學習以動手實踐為主的程序設(shè)計課程是非常不利的。4)照顧不同編程基礎(chǔ)的學生。美國很多高中開設(shè)計算機課程,不少學生具有一定的編程基礎(chǔ),因此課程網(wǎng)站上的作業(yè)布置會考慮到不同編程基礎(chǔ)的學生需求。對于編程基礎(chǔ)薄弱的學生,有難度的題目都會提供解題提示信息,但開始提示信息是隱藏的,也并不鼓勵學生在充分思考前查看;而對于編程基礎(chǔ)較好的學生,擴展的思考題會極大地激發(fā)學生的學習熱情,豐富有趣的問題背景資料也能極大地拓寬學生的知識面。5)注重課下師生互動交流。每門課程都安排教師、助教、同行教師每周有固定的辦公室答疑時間,都開設(shè)Piazza課程問答中心,可以實現(xiàn)充分的師生互動交流,便于及時解答學生的疑問。國內(nèi)高校教師課后主要通過Email和學生進行聯(lián)絡(luò),有些教師也建立課程的QQ群或者微信群,但是QQ群或微信群中學生的提問和教師的回答不能有效保留,因此,很可能會出現(xiàn)重復回答同一問題或者學生沒有看到答案重復提問的情況,問題和答案也不方面查找,浪費師生的寶貴時間。6)自主靈活調(diào)整教學計劃。主講教師具有絕對的自主權(quán),每學期教師的教學計劃都會作出調(diào)整,包括課件、案例、參考資料、作業(yè)、評分標準等,以確保教學內(nèi)容緊跟最新技術(shù)和知識。國內(nèi)高校的教學計劃調(diào)整往往是由上至下的,學院領(lǐng)導要求調(diào)整教學大綱和教學計劃時,所有教師在同一節(jié)點進行調(diào)整,并且教授同一門課程的教師講什么內(nèi)容、做什么作業(yè)、怎么評分都要保持嚴格一致,不利于教師發(fā)揮各自優(yōu)勢,作出新的教學嘗試。7)注重知識產(chǎn)權(quán)和學術(shù)誠信。美國非常注重知識產(chǎn)權(quán),哪怕是某個數(shù)學問題用計算機編程實現(xiàn),都會注明誰第一個將這個問題用計算機實現(xiàn),潛移默化地培養(yǎng)學生對知識產(chǎn)權(quán)的尊重。此外,非常注重學術(shù)誠信,對哪些屬于正常合作、哪些屬于抄襲都有明確的定義,并通過讓所有學生簽署誠信承諾書強化誠信意識,對違反學術(shù)誠信的處罰非常嚴厲,而一般學生也不會觸犯誠信守則。
5結(jié)語
計算機程序設(shè)計課程是高校計算機相關(guān)專業(yè)的核心基礎(chǔ)課程,學好程序設(shè)計課程是學習其他專業(yè)課程的基礎(chǔ)。總體而言,我國高校計算機專業(yè)學生的編程能力要強于計算思維能力,算法實現(xiàn)能力要優(yōu)于算法設(shè)計能力,在程序設(shè)計課程的教學中更好地培養(yǎng)學生的計算思維能力,仍然是學校和教師努力的方向。一方面,對于教師而言,在課堂上要注重培養(yǎng)學生的計算思維能力,可以考慮將不同編程思想的語言放在同一門課中進行對比教學,注重學生平時學習過程和兼顧不同基礎(chǔ)的學生;另一方面,對于學校而言,要加大課程輔助教學平臺、師生互動交流平臺的建設(shè),并支持教師能夠自主靈活調(diào)整教學計劃,發(fā)揮個人的教學特色,還要建立有效機制保護知識產(chǎn)權(quán)和確保學術(shù)誠信。
作者:許真珍 單位:大連理工大學軟件學院
本站为第三方开放式学习交流平台,所有内容均为用户上传,仅供参考,不代表本站立场。若内容不实请联系在线客服删除,服务时间:8:00~21:00。