計算機與編程專業范文
時間:2023-10-19 16:07:59
導語:如何才能寫好一篇計算機與編程專業,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公文云整理的十篇范文,供你借鑒。

篇1
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2009)13-3446-02
1 引言
隨著高科技在各行各業的普及與深入,計算機已成為一種處理專業領域問題的有力工具。是否掌握計算機知識和技能已成為衡量當代大學生適應社會發展需要的重要標志。非計算機專業的《C程序設計》[1]課程的教學目標是通過學習使學生熟練C語言,掌握程序設計的思路,并具有用C語言編程的能力;培養學生利用計算機技術解決工程實際問題的能力。但在實際教學過程中發現,學生對課程的基礎知識和基本概念的理解和掌握比較扎實,但在靈活應用C語言編制程序的能力方面就比較薄弱,處于看得懂、編不出的狀態。
對于一些非計算機專業的學生,他們普遍對為什么要學習編程語言尤其是C語言感到困惑。另外計算機學科概念的基礎術語比較抽象,程序設計語言的語法枯燥,編程的算法比較復雜,學生普遍存在畏難心理[2]。由于以上幾方面的原因導致學生在學習過程中沒有學習的興趣及動力。所以在教學中如何提高學生的學習興趣和消除學生的畏難心理是提高學生編程能力的關鍵。本文針對非計算機專業學生的特點,從理論教學和實踐教學兩個方面作了一些探索,收到了較好的效果。
2 理論教學上的探討與實踐
一直以來,程序設計課程都采取“理論+實踐”的教學模式。理論課主要教授語法、算法;實踐課主要是驗證性、設計性的內容。本人認為要提高學生的編程能力,理論課應該在如何提高學生的學習興趣上下工夫。
2.1 利用第一堂課充分調動學生學習興趣
《C程序設計》課程的第一堂課一般是概述,介紹C語言的產生、發展以及特點,初步認識C程序,介紹編輯、編譯、運行C程序的步驟。但如果照本宣科地向學生灌輸書本上的知識,不免讓學生感到枯燥。
本人認為第一堂課應該充分調動起學生學習C語言的興趣和熱情。在簡單明了地介紹上述基礎知識外,應該將重點放在讓學生了解為什么要學習C語言程序設計、學習C語言是件很有意思的事情上。比如本人會把用C語言編程解決實際問題作為一個切入點,以過河游戲為例。首先和學生一起玩游戲,將課堂氣氛活躍起來。學生在玩這個游戲的時候,一方面啟發其解決這個問題的方法,比如提出“規則”、“遍歷”等概念,一方面提出人在解決問題時的“力不從心”。然后不失時機的向學生展示自己編寫的解決該問題的程序,并向學生提出算法的概念。告訴學生,C語言可以解決現實中的實際問題,編程就是將自己所想的用另一種語言表達出來而已。
這樣,在一定程度上消除了學生對程序設計課程的恐懼心理,充分調動起其學習編程的興趣和熱情,學生普遍進入一種迫不及待、躍躍欲試的狀態。
2.2 合理調整授課順序
在C語言教學中,無論是教材還是教師上課,一般都是先介紹數據類型和表達式,再介紹各種語句的語法規則,然后是數組、函數、指針等等。這種編寫安排或教學模式不利于學生編程能力的提高[3]。學生在學習C語言時,開始懷著神秘興奮的心情進入課堂,但隨著幾節關于大量難以理解和記憶的新術語、新規則的介紹,枯燥乏味的例題分析后,學生馬上又產生了厭學心理,一開始的熱情也隨之減弱甚至消失。
針對這種情況以及非計算機專業學生的認知特點,本人在教學過程中,合理調整了授課順序。本人主張應使學生先對程序設計有個宏觀的認識,然后才是細節上的深入。所以在第一堂課后,先講授程序設計結構,中間穿插講解必要的基礎知識,然后在學生上機過程中點出、強調,使學生在特定的編程環境中吸收這些基礎知識。
3 實踐教學上的探討與實踐
《C程序設計》是一門實踐性要求很強的課程,只有通過上機實踐,學生才能真正理解消化課堂上的教學內容,糾正原來理解上的偏差,加深對C語言的了解。學習的能力和方法比掌握的知識更為重要,教師更應該教會學生編程領域的學習方法,培養他們的學習能力,而不是僅僅教給他們知識點。在上機實踐環節本人作了以下幾個方面的研究和嘗試。
3.1 遞進啟發式編程
在非計算機專業學生編程的時候,會覺得代碼處處出錯,無從下手,似乎只有在教師的指導下才能完成編程。因此,有必要找到一種有效的自我提高的方法。本人在實踐教學過程中發現,對于初學者,應該循序漸進地進行啟發,教會學生編程的方法。
第一階段 抄代碼。在每個新知識點的學習后,提供給學生范例代碼。學生通過讀懂、調試通過程序,感受新知識點的應用方法。
第二階段 填空補充。在讀透程序的前提下,設計新的題目,應用前面程序的知識點。在這個階段不能全部把程序代碼給學生。采取填空的方式,讓學生去補充完成代碼,并上機調試。
在這個階段仍然要分步進行。開始的時候讓學生補充單個的語句,最后以補充程序段的方式來提高學生的編程能力。
第三階段 設計程序。在前兩個階段的基礎上,讓學生獨立設計出應用相關知識點的程序。這里其實也是一種模仿階段。
這種學習方法一方面強調了學習的漸進性,降低了學習的難度,能力得以逐步提高;另一方面可以逐步使學生從依賴老師向獨立解決問題而轉變。
3.2 鼓勵學生讀出錯信息,學會自己解決問題
學生在編程的過程中,往往一出現問題,就不知道該如何是好,不會自己去查錯。本人在教學過程中強調編譯環境中編譯信息的查看,鼓勵學生遇到問題自己發現問題、分析問題、解決問題。在出錯中學習,從而提高學生的編程能力。
3.3 重視程序調試
在C的編譯編譯環境中一般都有調試功能。雖然對于非計算機專業的學生沒有調試程序的要求。但本人認為,學生通過調試不但可以對程序進行邏輯錯誤的查找,還可以在調試過程中更深層次地理解程序的執行過程。
4 結束語
提高非計算機專業學生的編程能力,是公共程序設計課程教學改革研究的一個課題,需要在教學的各個方面進行探索和研究。本人在提高學生學習興趣以及消除學生畏難心理等方面總結了幾種行之有效的方法,并應用于實際教學中。學生編程能力得到了很大的提高,取得了很好的效果。
參考文獻:
[1] 譚浩強.C程序設計[M].3版.北京:清華大學出版社,2005.
[2] 謝書良.試論學習程序設計語言課程的心理障礙及壓力來源[J].計算機教育,2008(20):120-122,199.
[3] 李妮.公共《C語言程序設計》課程教學改革的探討[J].電腦知識與技術,2008(23):1094-1095.
篇2
【關鍵詞】李克特量表 計算機編程 態度 性別
前言
相關研究表明,近十年中選擇計算機專業課程學生的數目一直持續下降,同時社會對合格程序員的需求卻不斷增加,造成具有良好編程素質專業人才短缺的局面。其中一個客觀原因是由于本科計算機專業學生的編程學習效果不佳,導致學生對編程開發的態度消極。因此,研究計算機編程學習效果的影響因素是計算機科學教育的一個重要問題,直接影響到計算機專業的教學。
1. 研究對象和方法
研究目的:探索大學生態度和性別與計算機編程學習成績之間的關系。
研究對象:長沙學院179名(85名女性,94名男性)學習計算機編程C語言的在校大學本科計算機專業學生。
研究方法:李克特量表是目前調查研究中使用最廣泛的量表,可直接反映出被調查者的認同程度。本次共設計與計算機編程學習相關的47個選項構建李克特量表,每個項目可選擇:“非常同意”“同意”“既不同意也不反對”“不同意”和“非常不同意”。為量化測量值對答卷重新編碼為1到5的數值,這樣高分反映積極態度,反之亦然。
研究者:由長沙學院計算機科學與技術系兩位教授設計問題選項,11名學生(4名女性,5名男性)監督完成答卷以確保被調查者了解每一個項目的預期含義。
2. 計算機編程學習效果的影響因素分析
根據Erodogan和Kabaca的研究,計算機專業大學生作為一個基于認知,情感和行為的信息受眾集體其個人信心(態度)對學習效果有著明顯影響。計算機專業的學生一般在本科學習的第三學期進行計算機編程的入門學習。
3. 調查結果
在對編程態度和性別之間的相關性研究中,學生性別對編程態度的影響經計算平均得分為3.59(Xmin=1.66, Xmax=4.94, б=0.645)。可知學生對待編程的態度普遍比較消極,同時男性對編程態度的積極性明顯高于女性,如表1所示:
從表2可知,四個分量表中除對編程學習成功的態度沒有顯著差異以外,在其他的三個分量表中男生表現出更積極的態度。
編程的態度和編程的成就之間關聯度是一個關鍵問題。為研究這個問題,特別做了編程效果與平均PAS(皮爾森)值相關性分析,結果如表3所示:
從表3可知,學生編程的態度與他們學習編程入門的課程之間有明顯的相關性。其中相關性最高的是對學習編程會帶來成功的信心。另一方面,對成功的態度與學習計算機編程并沒有特別的關聯,這其中相關性最低的就是對編程有用性的感知與在編程方面獲得的成就之間的關系。因此16.7%的學生對編程態度的變化歸咎于他們的信心、動機和對計算機程序設計有用性的感知。
4. 調查結果分析
綜上所述,在計算機編程教學中學習態度和學習效果呈正相關關系,同時女性在計算機編程中參與程度較低,這與一般情況下女性在計算機專業的入學率非常低而且女性較男性對電腦負面態度更多是一致的。
關于學習態度的研究一直是教育學研究的重要問題之一,學生的主體態度是決定教學方法和教學材料設計時要考慮的一個重要因素。本研究中調查的47個項目有35項涉及編程態度,以反映學生對計算機編程的感受和看法。調查結果表明,學生的平均態度得分與編程入門課程及格之間顯性相關(r= 0.443,P
5. 結論
本次研究結果有一定的局限性,主要體現在調查科目與測試樣本相對較小,相關研究可參考科斯特洛和奧斯本對因素分析的相關文章。另一個局限性是被調查者可能受到不同班級與授課老師的影響。這些問題均應被包括在進一步的研究中。
篇3
關鍵詞:C語言;編程基礎;教學
當今社會,在我們看到計算機行業的美好就業前景的同時,也看到了計算機專業教育的美好前景。同許多學科的教學過程一樣,計算機專業教育也要重視專業基礎課程的教學。目前,大多數高校將C語言作為計算機專業的編程基礎課程,作者認為將C語言作為高校計算機專業的編程基礎課程是必須而必要的,但是,在C語言的教學中,往往因為目的不夠明確,理念不夠準確,而使我們的C語言教學沒有達到應有的效果。因此,在這里提出C語言教學的四個定位問題。
一、教學課程性質的定位
C語言課程性質的定位:C語言是一門計算機專業的編程基礎課程。
20世紀70年代,在B語言的基礎上設計出了C語言。其中,UNIX操作系統,以及運行這一系統中大部分程序都是用C語言寫成的。而被我們廣泛使用的微軟Windows操作系統的核心代碼也是用C語言來編寫的。1983年形成了C語言的ANSI(American National Standards Institute)標準,1989年ANSI C被ISO(International Standards Organization,國際標準化組織)所接受,這就是常說的C89標準,C89標準成為C語言的國際標準。而標準化委員會又于1999年再次修訂C89,成為了C99標準。從這些事情上,不難想到C語言的重要作用和歷史地位。因此C語言的通用性和規范性要普遍強于同時代其它的任何一種編程語言。當今編程語言以C++,C#和JAVA為主流,而他們正是從C語言發展而來。因此,從編程技術的發展過程和編程技術的前后銜接性而言,C語言也是最恰當的。所以,將C語言定位于計算機專業的編程基礎課程是最合適的選擇。
二、教學目標的定位
C語言作為計算機專業的編程基礎課程,在開展C語言教學時,必須對C語言課程的教學目標有明確的定位。
目前,社會IT行業中,C語言實際應用的程度和廣度都在大大的縮減,C語言的開發應用能力被他的后繼編程語言所取代。C語言的職業應用領域更多的是結合匯編語言在單片機開發中的應用,如AVR單片機C語言開發,這突現在C語言的低端開發能力上。計算機或者單片機低端的開發應用是建立在對硬件相當熟悉的基礎之上的,在這種情況下,要求編程基礎課程的C語言突出其職業能力培養是不現實的。
因此,C語言課程的教學目標應該定位在計算機編程技術應用理念、編程邏輯思維、實際問題在編程中數學模型抽象能力等方面,即思維方式和模式上的培養認知上。C語言教學的開展不是去追求其職業能力,而是鍛造和培養學生的編程思維能力,為后繼專業課程的學習打下良好的基礎。因為,沒有編程思維的理念認識,編程思維模式的轉變,計算機專業課程的學習是事倍功半的。
三、教學內容的定位
C語言本身所涉及的開發應用能力是一個很龐大的系統,C語言本身也是一個中級編程語言。C語言在低級方面,它允許在算法邏輯中通過詳細的定義,來達到最高的計算機效率;C語言在高級方面,它隱含了計算機的結構細節,提高編程的效率。因此,C語言是介于低級編程語言和高級編程語言之間的中級編程語言。C語言本身也有著豐富而復雜的函數庫。所以,在C語言的教學中還應該注意教學內容的篩選。從國內絕大多數面向高校編寫的C語言教材來看,C語言的教學主要是側重在學生運用其高級能力方面,解決數理問題方向,這也充分說明我國計算機專業教育大環境對C語言課程的定位。
在C語言教學中,結合C語言常規教材的特點,對教學內容的定位應當做到既有全局的認識,又要有所側重;既要注重學生在C語言應用方面能力的培養,更要注重學生通過C語言對編程理念的認知。因為,C語言的教學內容的取舍不再是單純的為C語言本身而定,更多的是想達到拋磚引玉的效果。
C語言的教學可以分為四個部分:數據類型和運算、邏輯結構、模塊化思想、輸入輸出。
(1)數據類型和運算應該包括:普通變量與類型、指針、數組、結構以及基本的運算,盡管指針、數組、結構是在后期的教學中才涉及,但是它們依然是屬于數據類型的范疇,只能說它們是一種特殊的變量。
在普通變量與類型階段,教學內容的重點應該放在對變量的存儲機制和運算機理的認識和概念理解方面。而到了指針和數組方面,就要求學生能夠靈活應用變量的存儲機制和運算機理。而結構部分是早期編程語言對于實際問題抽象方面最好的數據模型,有助于進一步提高學生的數據抽象能力。
(2)邏輯結構的主要內容是三大結構:順序,選擇,循環。這是所有成熟編程語言的重要邏輯結構模式。在這個部分,側重于引領學生如何將實際問題的解決思維方式轉變為用三大結構來解決的邏輯思維方式。在教學中,單純的就結構談語法,會限制學生的眼光,相反,應該就語法談結構,編程中的邏輯結構才是計算機所有編程語言的理念之一。
(3)模塊化思想是指C語言中的函數部分:標準庫函數,自定義函數。C語言的函數思想是編程模塊化思想的前身。在C語言中,將指定問題的處理過程放到函數里解決,函數的相對獨立能力,使函數能夠多次或者多處被使用。避免代碼重用,提高了執行效率。
函數的應用,模塊化的思維模式在編程技術的應用中,為程序的分工協作,或者把一個大問題分成多個小問題來解決提供了最佳的途徑。所以在教學中,應當使學生充分認識到編程的模塊化思想應用的重要性和必要性。
(4)輸入輸出即I/O。這里的輸入輸出既包括控制臺的輸入和輸出(scanf函數和printf函數),也包括文件的輸入和輸出(fscanf函數和fprintf函數)。在技術上,控制臺I/O和文件I/O只有微小的差別,但在概念上,兩者是截然不同的范疇。
輸入輸出的內容能夠使學生明確,程序代碼的編寫過程和運行過程是完全不同的兩個過程,編寫過程是從程序開發者的立場出發,而運行過程就要從程序使用者的立場出發。輸入輸出部分的內容是一個強化,強化學生在編程理念上有程序員和用戶的立場差別。
四、教學理念的定位
在C語言教學中,教學理念的定位將直接引領教學的開展過程,直接影響教學方法、手段的設計與使用。把握好教學理念,是教學成功開展的捷徑。
(1)實例性教學,先應用再理解。
C語言課程同許多計算機專業課程一樣,是一門應用型的工具學科,我們這里的應用不指行業應用或者職業需求應用,而是指建立在計算機硬件條件下的軟件的運用過程,這些都有一定的標準,典型的說,比如C語言本身的C89,C99標準,對于這些標準的理解,對于計算機初學者而言是非常困難的。在教學中,學生常習慣去追求為什么要這樣?這就涉及到C語言本身內在運作機制的理解,很容易造成知難而退。在教學中引入實例性教學模式,目的在于使學生在學習中首先關注的是怎么用,而不是為什么,然后再去關注程序的運行過程,最后理解程序的存儲機制和運作原理。在IT行業中,許多程序員也可以證明這一點,對于他們而言,應用是第一位的, 理解是第二位。
所以,在C語言教學中以實例教學方法為主,把握先應用再理解的原則,從而使學生在應用的基礎上,再加強對編程的理解。
C語言教學中,新語法新知識的學習過程,通過對同一問題的舊新知識解決過程的對比,突顯新知識的優越性,突出新知識的必要性和重要性。我們稱之為“實例對比法”。
在知識的展開、強化、復習過程中,通過多個實例的解題過程,關注學習內容的變化過程,在解題過程中,引導學生的思考過程,接受和形成自己的經驗,我們稱之為“實例經驗法”。
經歷了一個階段的學習,在學習內容的總結中,讓學生從事一個相對綜合的實例的開發過程,在教學中,引導學生對這個綜合實例進行功能拆分和模塊分析,而這個實例的分析和開發過程,可以讓學生獨立完成,或者分小組完成。強化學生的綜合知識能力,培養學生實際問題的分析解決能力。最后教學中,對綜合實例進行分析,探討,教學相長。我們稱之為“綜合實例法”。
(2)培養學生的邏輯思維為主,強化源代碼為輔
C語言課程作為計算機專業編程的基礎學科,教學中把如何引導學生用編程的思維模式去分析問題、解決問題能力的培養放到重中之重,而把學生是否能夠寫出正確的C語言源代碼做客觀的分析。如果學生的源代碼符合編程邏輯思維模式的要求,解題的邏輯結構準確,僅在C語言語法上有錯誤,對于這種情況,教學中應當作出肯定。學生在學習中,重視對編程理念的認識,要遠比他們重視源代碼要重要的多,當然兩者兼顧自然最好。同時也要說明,這種觀念只適應在編程的基礎教育中。
(3)打破常規思維模式習慣,打造良好的編程習慣
計算機專業的編程基礎是培養學生的編程邏輯思維模式。對于這種思維模式有別于常規的思維模式。常規上,人們使用的一種思維模式是來自于一般數學的思維模式,而這種一般數學思維模式是“集中型”的,在多個已知條件下,結論是明確的或者是唯一的。而計算機專業的編程中要求的思維模式是“發散型”的,在編程理念中解決實際問題時,要求歸納的是解決問題的方法,處理在各種可能條件下得到結論的過程。簡單一點說,使用編程的方法解決實際問題時,對于一個“點”上的問題,往往要在一個“面”上分析,歸納這個“面”上所有點的條件,在程序控制過程中,篩選所滿足條件的“點”;在編程中,對這個面的每一點都要妥當的處理,這樣寫出的程序才不至于漏洞百出。
打造學生良好的編程習慣,比如說:變量名的命名規則,變量聲明定義方法、源代碼分層次分段書寫;把大問題分解成若干個小問題使用函數來解決,即模塊化思想。這些小的習慣的運用,對于程序而言,也許并不影響結果,而對于學生而言,也不存在困難的技術問題,但是這些小的習慣的形成,將會直接帶來良好的程序風格和可讀性,為以后寫出高質量的程序代碼打下基礎。
綜上所述,高校計算機專業C語言課程是專業編程的基礎課程,教學中弱化其社會實際職業應用能力,強化編程思維理念的培養,明確教學的目的,定位準確的教學理念,使用強化訓練的教學手段,為以后后繼的專業知識學習構建良好的基礎和框架。
參考文獻:
《C++ 程序設計教程》 錢能 清華大學出版設
《C++ 參考大全》 [美]Herbert Schidt電子工業出版設
篇4
關鍵詞:計算機網絡課程;實踐;教改
一、引言
計算機網絡編程是計算機專業一門重要的專業基礎課,通過教學使學生初步理解了計算機網絡編程的基礎知識,但是在具體應用中,學生們普遍感受到的問題是,難以使學到的理論知識付諸于具體應用。所以這時就需要改革計算機網編程實踐課,通過建立完善的實驗環境,制定科學合理的課程和考核方式,給學生創造實踐的機會,培養學生的動手能力,增加他們的就業能力。
二、計算機網絡編程課程的實際情況
上海電機學院是一個應有型本科學校,注重實踐,而目前來看,在教學中對于計算機網絡這門課程,存在如下問題:
(一)理論與實踐的脫節。目前很多高校計算機網絡課 程實驗學時很少,甚至沒有開設實驗課程,只注重理論教學。
(二)教學過程實驗課時有限,課下知識得不到鞏固。由于實踐課時有限,業余時間實驗室不開放,學生實踐課所學知識,課下得不到鞏固,容易很快的忘記。導致學生的實踐動手能力不強,對所學知識掌握不牢固,不能滿足市場的需求。
(三)實驗內容少且過于簡單。由于受實踐課時的限制,開設的實驗只是演示和驗證性等一些簡單的實驗。缺乏綜合性、設計性實驗,學生的創新能力得不到鍛煉。
(四)師資、設備落后。計算機網絡技術發展過快,日新月異,我們很多高校的設備相對比較落后,不能滿足當前的需要,我們的教師缺乏實踐教學經驗。
三、計算機網絡編程課程的實踐探索
根據實際情況,不僅在師資隊伍和教學內容方面進行改革實踐、而且在教學方法、實踐考核等方面,對課程進行了一系列的改革實探索,并且取得了較良好的效果。改革是一個長期的過程,不斷采用新方法與時俱進、及時進行創新,采用網絡新設備,提高教學水平,為社會培養更多優的應用型技術專業人才。我們的探索在這幾個方面:
(一)教學內容的改進。制定實驗的教學內容應該考慮企業的需求,依據企業的需求來制定教學內容,特別是實驗內容,這對于學生的就業進一步促進。
(二)加強項目建設。在實驗內容上,對于項目的要求十分重視,在試驗教學中,應以實驗的項目形式進行,這樣的實驗形式比單一知識點的復習利于學生能力的掌握,這對于實踐能力有很大好處。
(三)實驗室開放管理。多給學生實踐的機會,這樣的機會可來自實習,在學校階段則來自于實驗室,在不影響正常的教學的情況下可開放式管理,讓學生能來實驗室學習,給學生提供更多的機會,從而能進一步提高學生的動手能力。
(四)合理考核。考核成績應包括平時和期末,考慮實驗及理論。
(五)教師建設。加強教師培訓,提高實驗技術人員的素質工作水平,重實驗技術人員交流和培訓工作。購買實驗教學設備。使得能適應網絡編程教學的需求。
對于實驗教學研究應有的研究原則:科學性原則、主動性原則、交互性原則、堅持以學生為本的原則、培養學生獨立探索和合作探索精神的原則、效益性原則。據此進行網絡編程技術的建設發展。
四、結束語
在應用型本科教學中,計算機網絡編程技術應重視實踐,從教學內容、考核、教師、項目等方面進行改進,適應實踐的發展。網絡編程技術實際應用能力的培養應按照企業需求來建立,不僅在課本中的理論,還包括實際應用。應用型本科院校的課堂教學需要體現“應用”本質,不僅強調學生對所學理論的理解,更強調培養學生的實踐應用能力。對計算機網絡編程課程的實踐教學,需要創新。從內容上說,創新包括科學創新、技術創新、知識創新、文化創新、教育創新、制度創新、理論創新等。大學教育要想傳承久遠,就必須實現教學創新。創新型人才以人為本,強調個性,要求個性教育化。
參考文獻:
篇5
隨著科技的不斷進步,計算機技術的快速普及和發展,傳統編程教學表現出了其自身明顯的劣勢,筆者通過閱讀大量資料,并結合自身實踐,將傳統編程教學中存在的幾點問題總結如下:
①語法學習過程較長從我國當前各高校計算機編程語言的教學來看,基本上都選擇了計算機編程C語言、C++、C#、或java等,從這些編程語言的比較來看,其中相對要容易學習和掌握,而C語言、C++相對要比較難掌握,它們屬于強類型編程語言,語法比較復雜,其中會存在較多的語法陷阱,導致學生將很多的時間浪費在糾錯上,學生在進行學習時,需要用較長的時間來修正代碼中的錯誤和漏洞,這帶來的直接影響就是不利于學生編程思想的形成,最終導致只會使用一些編程工具,但是卻不能在未來更好的進行編程工作。C#在面向對象編程語言中,即使是比較優異的一種,但是使用C#進行編程,需要計算機具備較高的配置,如果學校機房設備等比較落后,或者是學校硬件建設資金不足,那么進行設備更新,采用高配置的計算機是比較困難的,而且,C#僅支持windows平臺,這就在很大程度上阻礙了部分不能在windows環境下學習的學生使用這一語言。
②受高校授課制度的影響編程語言的學習通常需要一段較長的、連續性的時間,而一般高校的授課時間都是固定的,每節課程的時間需要統一安排,排課老師需要考慮不同課程之間的授課沖突問題,所以一般情況下無法實現編程教學的集中授課,而只是同其他課程一樣進行分節學習,這種授課模式對于編程教學來講,其弊端就是難以讓學生形成連貫性思維,通常會造成盡管這節課的內容在課堂上已經全部掌握,但是等到隔幾天再進行下節課的授課時,卻全部都已經忘記的現象,導致編程教學效果較差。客觀來講,編程課程實際上是一門比較枯燥的課程,不容易讓學生全身心的投入和激發他們的興趣。
③不利于學生的自主學習編程語言(如C語言、C++等)是比較難掌握的一門語言,一般需要教師對其進行入門教育。但是,在實際的教學中教師也僅僅是“拋磚引玉”的作用,教師將其基本要領教授于學生之后,還需要學生對其進行深入的研究與實踐。然而,這些編程語言自身的學習難度在很大程度上決定了學生進行自主學習的難度,尤其是對于非計算機專業的學生。比如C語言的學習,就需要學習者首先具備較好的計算機功底,要詳細的了解并理解堆棧、內存、指針、數組等概念,掌握代碼的書寫要求,對于很多計算機專業基礎知識不扎實的學生,及非計算機專業學生來講,代碼就好比是天書,無法正常的判斷代碼錯誤原因,最終導致學習失敗,最終放棄對編程語言的學習。
2Python編程語言在計算機理論教學中的作用
與C語言、C++、java等編程語言相比,Python語言表現出了其明顯的優勢,筆者接下來從以下三方面進行具體的分析。
①學習難度最小化首先,Python的代碼書寫規則與計算機算法中的“偽代碼”非常相似,GuidovanRossum最初在開發這一語言時,參考了ABC語言的特性,使其最終設計出的語言書寫規則與日常英語十分相似,在很大程度上增加了這一語言的易用性,即使是非計算機專業的學生,只要認真研究就可以迅速掌握,大大節約了教學資源。Python可以支持unicode字符集,因此就解決了ascii字符集的字節存儲空間問題。uniocde字符在其它語言中一般需要進行比較復雜的轉換,而python具有強大的序列(各類定長數組、動態數組、字符串等),從而較容易的實現了在同一個序列中放置不同數據類型的數據,以此省略了較復雜的組合變量聲明和處理。還有就是Python自身的IDLE既可以在windows平臺上使用,又可以在UNIX上得到較好支持。學生只需對python進行入門學習,便可以快速的進行代碼書寫。
②提高學生學習動力Python編程語言具備對學生的計算機功底要求較低,因此擴大了其使用人群,盡管是計算理論知識基礎薄弱的非本專業學生也能夠較快的掌握這一編程語言,并能夠樹立較強的編程思維,在很大程度上提高了學生的學習動力,我國有不少的編程愛好者,他們一般都沒有接受過系統的計算機理論的學習,而Python的易用性恰恰解決了他們理論知識薄弱的問題,面向用戶的設計和偏重程序邏輯的編碼方式,讓更多的編程愛好者樹立較強的編程思路。③強大的類庫使編程更簡易Python有強大的各種類庫的支撐,具備較多的免費編程資源,更容易進行布置,因此減小了開發難度,加快了開發速度。另外,由于Python是開源的,為了能夠更加方便的進行工作,可以自行擴展Python的庫,構建具備自身特色的類庫。
3結論
篇6
關鍵詞:編程能力;課程設置;教學方法;實踐
編程是指我們為了借助計算機來解決某個問題而使用某一種程序設計語言來編寫程序代碼,并最終得到結果的過程。編程是人和計算機之間溝通交流的唯一方式,如果沒有編程計算機就是等同于一堆廢鐵。編程能力在計算機專業技能中排在首位,因此有些學生雖然在學校期間學習了很多專業課程,但是由于編程能力弱,在步入社會后就出現了就業困難的情況。這就需要我們改變以往的傳統教學方法,以新的方式來培養學生的編程能力。
1、合理的課程設置
根據教學的三要素即教學目標、教學重點、教學難點來合理的靈活的安排程序設計類課程,這樣才能更好的培養學生的編程能力。在第一學期的課程設置上,我們應該首先增加幾堂引導學生入門這樣的課程,循序漸進的將學生引入到編程學習當中,使學生感受到學習編程的樂趣,這樣學生就不會在學習一門陌生的課程時感到可怕和厭學。在進入正式學習編程課程后,在講解基礎知識的同時要增加講解實例的課程,只有學會運用知識,才能培養學生的編程能力。
2、改變教學方法
傳統的教學方法是灌輸式、交代式的教學,為了激發學生的積極性,使學生能夠主動的思考問題,我們要帶著問題進行授課,通過與學生一起找到解答的方法并最終得到正確答案,來完成教學過程。
3、加強實踐和練習
學習計算機專業就是為了以后應用到實際的計算機操作中,因此學生不能只學會專業的理論知識,更重要的是要將理論聯系到實際,在實踐中運用自如。這就需要學生大量的練習,在練習中提高自身的編程能力。
3.1 強化上機實踐
編程的實踐需要學校為學生提供良好的上機環境,因為只有在計算機上進行編譯、運行,編程能力才能得到鍛煉,而不能紙上談兵。學校應該提供一套完善的系統來給學生進行編程實踐練習,學生通過自己編程、上機操作、程序運行后得到正確與否的結果來訓練自己的編程技能。培養學生實踐、查找錯誤、改正錯誤、再實踐,如此循環直到正確的這種上機實踐習慣。
在輔導學生實踐時,要求學生上機前做好充分準備,認真編寫程序,確保在上機實踐時能順利操作,避免臨時抱佛腳。在上機實踐的過程中,要讓學生查找自己編寫的程序中的錯誤或不足,以便修改和完善。在整個實踐完成之后,要求學生將本次實踐整理出一份報告,上交給老師批改。寫報告是為了讓學生及時的總結本次實踐的經驗,吸取教訓。這樣深入精確化的實踐訓練大大挺高了練習的效率,讓學生學會獨立分析及解決問題,挺高了學生的編程能力。
3.2 選擇典型習題
課后的習題練習能夠幫助學生將課上老師教授的教材內容運用到習題中,從而更好的理解和鞏固知識點,同時也能檢查出自己對課上內容的理解及掌握的程度。在做習題中,尤為重要的是習題的選擇,學生不能一味的追求量而忽略了質。老師可以幫助學生根據各階段的重難點來選擇典型的習題,提高學習效率。對于普遍存在的問題,老師應該在課堂上進行統一講解,但是由于編程是一門專業的課程,往往會出現學生們在專業理論和技術上都有自己獨特的見解。這時候就需要老師對學生的見解進行分析和評價,鼓勵學生們在專業領域里不斷探索。
3.3 掌握練習時機
許多學生都會按照教材上的進度來制定自己的學習計劃,其實這是不合理的。學生應該根據自己的專業特點和將來的就業需求,來安排自己大學四年的學習計劃。就培養編程能力來說,本專業的學生應該從大一開始就進行大量的編程練習。編程能力是從事計算機技術開發工作所必備的基本功,而想成為一名編程高手,大量的練習則是必不可少的。從大一開始練習編程,能夠很快的體驗到編程的樂趣,提升自己的自信心,盡早形成專業的思維方式。擁有大學四年積累的大量編程經驗,學生在畢業時就可以自信的選擇好的工作了。
3.4 實踐中多交流
篇7
關鍵詞:軟件工程 編程語言
中圖分類號: TP311文獻標識碼:A文章編號:1672-3791(2012)03(a)-0000-00
2010年3月,國務院學位委員會了新修訂的學科目錄。對計算機專業來說,此次修訂最大的變化是軟件工程從隸屬于計算機科學技術的二級學科上升為同其平行的一級學科,這意味著隨著計算機技術的發展,軟件在計算機中的作用越來越大,從而使計算機最核心的東西,編程更加重要。那么,軟件開發人員應該掌握那幾種編程語言呢?筆者認為:軟件開發人員應該掌握以下幾種語言:C語言, C++及VisualC++,Java語言,Visual Basic及Access.。現分別闡述如下:
1 C語言
C語言已經誕生30多年了,今天仍然被廣泛的使用,而與它同一時期出現的語言,許多都已經被淘汰了,這充分說明了C語言內在的強大的生命力。今天,C語言已經成了工科專業的必修課和計算機等級考試的必考語言。對計算機及相關專業來說,C語言是最應該被掌握的,其原因有三。第一,C語言短小精悍,功能強大,通用性好,目前從大、中型機到工作站、微型機,幾乎都配有C語言編譯系統,這有助于C語言的學習和開發。第二,C語言對于理解其它計算機編程語言乃至計算機工作原理都有很好的幫助作用。正如一位美國信息專家所說:“大學生畢業前要學好C語言,C語言是程序員共同的語言。C語言比其他高級語言都更接近機器。如果你不能解釋為什么while(*s++=*t++)的作用是復制字符串的,那你就是在盲目無知的情況下編程,就像一個醫生不懂最基本的解剖學就在開處方。”這句話很好的道出了C語言的本質。第三,對于自動化等專業的學生來說,經常要用到單片機對系統進行控制,由于匯編語言的復雜及通用性差,C語言有取代匯編語言的趨勢。
2 C++及Visual C++
自從微軟推出視窗操作系統以來,圖形窗口界面成了事實上的工業標準。現在的操作環境大部分都是窗口環境,而要用C語言編寫一個窗口界面簡直是一個令人望而生畏的任務,用VC++則輕而易舉。并且C語言是面向結構的,可重用性差,難以面對大規模的任務。而從C語言脫胎而來的C++語言除了繼承c語言的優點之外,還具有封裝性、繼承性、多態性等面向對象編程語言所具有的所有特征,可以很好的應付大規模的任務。看到這里,讀者可能要問,既然這樣,我只學C++語言好了,不用學C語言了,其實不然,雖然C++包含了C,但C++是面向對象的,而C語言是面向過程的,由于C++過于龐大復雜,很難掌握,所以非專業人員只要掌握C語言就可以了。需要特別強調的是目前C語言的主流開發環境也是VisualC++6.0。這里需要注意的是VisualC++與C++并不是一回事,C++是一種語言,而VisualC++是微軟公司所提供的一種開發環境。另外,這里之所以將C++及VisualC++合起來談,是因為微軟在軟件領域的壟斷地位,及龐大的MFC(微軟基礎類庫)可以利用。在Visual C++環境下學習C++還可以更好的了解微軟的產品及工作原理。
3 Java語言
隨著互聯網的出現,軟件的開發模式從單機轉向網絡。Java就是一種很好的針對網絡開發的語言,當然,VC++也可以。前面已經講過,VC++過于復雜,難以掌握,因此java就成為一個不錯的選擇。Java語言拋棄了C++中指針,多重繼承等復雜概念,相比C++簡單了很多。并且它也是完全面向對象的,即具有封裝性、繼承性、多態性。雖然Java不具有多重繼承功能,但通過接口屬性也可以實現多重繼承。Java是一個分布式語言,利用J ava來開發分布式的網絡程序是Java的主要應用之一,Java的安全性高是受人青睞的另一個主要原因。因此對于非計算機專業人員,Java就是一個很好的選擇。Java是與平臺無關的,對于目前主流的兩大操作平臺,Windows與Linux都可以很好的支持,Java是通過Java虛擬機來實現與平臺無關這一機制的。由于計算機專業人員需要熟悉不同的操作平臺進行開發,因此,計算機專業人員也應該掌握Java語言。
4 Visual Basic及Access
我們知道現在是信息社會,對于信息的管理來說,經歷了人工管理,文件管理,數據庫管理等階段,目前,大型信息系統都是數據庫管理。因此對一個軟件開發人員來講,還需要掌握一門數據庫語言,目前主流的數據庫語言是SQL語言。VB對數據庫的支持就很好,并且內置了SQL語言。在功能強大的VC++中訪問數據庫要比VB復雜的多。而且VB簡單易學,入門容易。對數據庫管理系統來說,Oracle和SQLServer過于龐大,內容繁雜,不容易入門。Access雖然是針對小型數據庫的,但是功能也很強大,并且與Oracle和SQLServer一樣,都是主流的關系型數據庫管理系統。Access通過它的工具VBA與Visual Basic緊密集成在一起。學習VB還可以對微軟的Office系列產品進行更深入的了解。目前,用VB和VBA(Visual Basic for Application)進行開發仍有一定市場。
5 結語
本文探討了軟件開發的四種編程語言,并分別指出了它們的特點及性能。當然并不是說,只學習這四門語言就夠了,軟件開發人員要學習的東西還很多,比如數據結構、操作系統、組成原理、編譯原理、計算機網絡等。但這四種語言應該軟件開發人員應該掌握的四種語言。目前軟件開發有專業的開發人員和非專業的開發人員,所謂專業的開發人員是指計算機專業畢業,系統的學習過計算機理論知識,他們是軟件開發的骨干。非專業開發人員是指沒有系統的學習過計算機理論,但由于工作關系又經常接觸計算機,因為現在是信息時代,他們是計算機開發的主力,因為他們熟悉本行業的流程,專業人員與他們結合起來才能開發出高效的軟件。考慮到計算機與非計算機專業之間的差別,這里給出學習四種語言的如下建議:對專業開發人員來講,四種語言都應該掌握或至少熟悉。對于非專業人員,掌握四種語言有較大困難,可在掌握VB及Access的基礎上再掌握一種語言(筆者推薦C或者Java)。
參考文獻:
[1] 譚浩強. C語言程序設計[M]. 清華大學出版社.2010.
[2] 孫鑫. 余安萍 VC++深入詳解[M].電子工業出版社. 2006 .
[3] 朱福喜. Java語言程序設計[M]. 科學出版社.2009
篇8
【關鍵詞】教學改革;編程;高職教育
一、高職院校計算機編程類課程教學的現狀
高職院校計算機編程類課程教學的好壞,一直制約著學生專業核心課程的學習,也成為影響學院招生的重要因素。與計算機軟件開發息息相關的編程知識是一個不斷發展,并不斷的更新的新興學科,因此,我們計算機編程類課程的教學就不能墨守成規,這對當前的高職計算機教育提出了更嚴格的要求。當前高等職業院校計算機編程類課程的教學還存在一些問題。
(一)課程教學安排不夠合理
由于計算機編程類課程屬于專業基礎課程,理論知識偏多,目前大部分高職院校此類課程的教學以理論課程為主,實踐課程較少。有些課程如c語言程序設計、Java程序設計等會安排一定的實踐課程。但是由于課程內容過于抽象,教師在實踐課程中也是以講授為主,學生成為了教學的旁觀者,并沒有真正融入到教學中去。
(二)課程教學對學生的評價方式過于單一
由于課程的特殊性,目前大部分高等職業院校對于編程類課程教學中的學生評價主要有平時出勤情況、期中考試和期末考試構成,且期末考試成績占學生總評成績的大部分比例,期末考試采用的考試形式是閉卷筆試。考核形式過于單一。有些學生投機取巧通過背書、背課后習題甚至通過考場作弊的方式拿到高分。部分高校通過了一系列的改革,利用在線考試系統隨機出題方式考核,但是局限于選擇題和填空題,學生考前背題庫的現象隨處可見。這些問題的出現,明顯違背了編程類課程教學設計的本意,達不到培養學生編程思想和提高學生能力目的。
(三)高職院校學生學習積極性不足
計算機編程類課程本是枯燥無味,比較難學的課程,且通過多年的教學經歷我發現目前高職院校有很多學生都是被班主任和家長強迫上課學習,只有少部分同學由于對課程感興趣或者有明確的學習目標而主動學習。這樣導致部分學生對這類課程的重要性認識的不夠充分,特別是一些基礎差的同學更是如此,長此以往便失去了學習的積極性。這便給高職院校編程類課程的教學和學生后續專業課程的學習造成很大障礙,更不利于學生專業能力的提升。
(四)教學模式期待進一步改革
傳統教學中,教師課堂講授完之后學生接著練習。大部分學生其實所謂的課后練習僅僅是將上課老師的例子記下來然后重復地輸入到電腦里然后運行,或者是將教材上的實例輸入到電腦運行,如果運行正常,這次練習到此結束。如果運行過程中出了問題,那么也是輸入錯別字母所致。其實在這個練習過程中學生能學到的僅僅是計算機的信息錄入能力。因為在整個過程中學生不會去思考和發現問題,更不會去解決問題。
二、高職院校計算機程序課程的改革
針對目前各高職院校計算機編程類課程教學中存在的各種問題,結合我院實際情況以及本人在教學過程中的親身經歷,提出了對此類課程教學的幾點改革思路,并取得了一定成效。
(一)培養和提高高職院校學生學習編程類課程的積極性和主動性
高等職業教育不同于高等本科教育,高職教育重點在于培養學生的動手實踐能力,因此在我們的程序設計類課程的教學過程中加強對學生學習的積極性和主動性的培養是非常必要的。我們應該充分認識到高職院校學生基礎偏差、學習耐心不足和學習積極性不高這一特點,適當降低課程教學內容的難度,挖掘課程教學過程中學生學習的興趣點,創新實踐教學內容,優化教學案例,并布置以小組形式完成的且與學生生活相關的編程小項目等,以此來挖掘學生本身的潛能,讓學生體會到程序設計的成就感,進而調動學生學習的積極性。
(二)創新編程類課程教學模式和學生評價體系
目前大部分高職院校的教學評價系統僅僅只是對教學結果的評價,主要體現在學生的成績上而忽視了教學和學生學習的過程。學習的過程即為發現問題到解決問題的過程,我們的編程教學也要遵循這一過程。
據此,結合我院的實際情況和課程教學情況,本人開發出一套創新性學習平臺,通過此平臺可以將學生課堂學習和課后練習緊密聯系起來。首先教師上完課程后必須通過此平臺學生將要完成的課后小項目,并同時設定完成的時間。不僅如此,教師還可以設定完成該項目的同時必須記錄下來同學完成任務過程中遇到的問題(至少5條),同時學生還必須回答其他同學提出的問題(至少5條),只有在指定時間內完成的項目并記錄了指定數目的問題和回答了指定數目的問題后,系統會自動幫該學生計人一定分數,每次項目的分數累積可作為期末綜合成績評定的重要參考。學生可以實時看到自己本次課程的動態成績。通過本系統對教學模式和學生評價的改革可進一步提高學生主動探索式學習的主動性、積極性和團隊合作的精神。
篇9
關鍵詞:敏捷軟件開發;計算機語言課程設計;團隊合作
計算機語言課程設計是各大工科院校自動化及相關專業的必修實踐環節,一般安排在計算機語言類課程之后開設。學生通過2~3周的編程集訓,完成一個小規模的軟件設計,體驗軟件的開發周期,從而獲得軟件開發綜合能力的提高,為后續專業課程的學習奠定編程基礎。近年來,企業對本科畢業生的要求越來越高,畢業生不僅要有扎實的專業功底,而且要具備較強的計算機應用、軟件開發、創新和團隊合作等綜合能力。而且,團隊合作能力越來越受到企業的重視。因此,高校應根據現代企業和社會的需求進行人才的全面培養。作為計算機語言課程設計的帶隊教師,應在教學過程中不斷探索新的教學方法,尋求新的編程訓練模式。
1計算機語言課程設計的教學現狀
目前,我校開設的計算機語言課程設計實踐課歷時兩周,主要訓練學生進行Windows程序的開發,編程語言由學生根據自己的情況自選。課程設計的題目分為兩類:一類由帶隊教師自己擬定;另一類由學生自己擬定。教師擬定的題目大多結合生活實際,且帶有難度系數,最終以題目庫的形式呈現給學生,學生可根據自己的情況進行選題;考慮到有的學生對題目庫中的設計題目都不感興趣,影響編程的積極性,允許學生根據自己的興趣取向自擬題目,但是要得到教師的許可。這樣,學生才能真正體驗到開發程序帶來的快樂,計算機綜合能力也會得到相應的提高。經過多年的教學實踐探索,計算機語言課程設計實踐雖然取得了一定的成績,也得到了學生的認可,但是還存在一些不足之處需要進一步改進。(1)每個設計題目均指定單個學生獨立完成,學生從查閱資料到完成程序設計的整個實踐過程中同學間的交流、合作機會少。(2)帶隊教師很重視計算機編程能力的培養,但是忽視了社會實踐、團隊合作之類的軟技能[1]培養。分析上述的不足之處,可以看出以往的教學模式不利于學生團隊合作綜合能力的提高。因此,為了進一步提高教學質量,令學生既能體驗最流行的編程模式,同時又能在實踐過程中培養創新探索能力、團隊合作能力,在本課程設計的教學方法改革中引入敏捷軟件開發模式[2],給學生創造溝通的機會,增強學生的團隊意識,讓學生在團隊互動的實踐過程中得到最好的編程鍛煉,使得軟件開發能力和軟技能綜合能力得到最大的提升。
2敏捷軟件開發模式
2.1敏捷軟件開發模式
敏捷軟件開發模式[2]是從2001年2月開始興起的軟件開發模式,屬于輕載軟件模式。因為它的開發效率高于重載軟件開發模式,已成為全球流行的軟件開發模式。2010年12月10日,中國敏捷軟件開發聯盟正式成立[3],從此,國內的軟件界也加入了敏捷軟件開發模式的行列。敏捷開發模式有一個突出的優點——非常重視團隊合作。該開發模式有很多子方法[2]:如極限編程(ExtremeProgrammin)、特性驅動開發(FeatureDrivenDevelopmen)、水晶方(CrystalMethodologie)、Scrum方法、動態系統開發(DynamicSystemsDevelopmentMethodolog)等,每個子方法中都內含了團隊編程。和傳統的軟件開發方法不同,敏捷軟件開發的團隊成員在每天開始工作前,都要進行一次集體的面對面的討論與交流[2]。所以,為了保證整個開發過程的順利進行,團隊的每個成員必須要學會主動和他人交流。
2.2敏捷軟件開發子模式的選擇
在所有敏捷開發的子模式中,開發團隊一般為5~6人。如果在計算機語言課程設計中規定5~6名學生組建一個編程團隊,那么肯定有些學生會變得不主動。仔細研究敏捷開發的子模式,發現極限編程中的結對編程方法非常適合小規模團隊的編程訓練。這種編程模式通常由兩個學生組成一個編程小組,在同一臺計算機前共同完成一個軟件的開發。具體分工是:一個學生負責寫代碼,另一個學生負責檢查代碼的正確性。在開發過程中,負責輸入代碼和檢查代碼的角色可以根據需要靈活地調換。在整個編程過程中,一旦發現語法和運行錯誤,須及時討論并調試。在計算機語言課程設計的實踐過程中采用結對編程這種敏捷方法,相對于以往的訓練方式,是一種新的教學方法。這種結對方式既可以提高程序的開發效率、縮短代碼的開發周期,又有利于建立起良好的團隊合作和學習氛圍。這也符合現在的以CDIO(ConceiveDesignImplementOperat)理念[4]培養工程技術人員的要求。
3敏捷軟件模式在計算機語言課程設計的實踐應用
3.1組建團隊
在課程設計開始之前,首先要進行團隊組建,即結對。敏捷宣言的原則中提到[3]:“最好的架構、需求和設計出于自組織團隊”。所以,組建團隊時,教師從不強行指定,而是讓學生本著自愿結對的原則,這樣形成的小團隊才是最有潛力的團隊。在接下來的兩周時間內,結對的學生將在整個課程設計過程共同完成軟件的前期調研、設計開發、調試和成果答辯匯報等。學生將在所選項目的開發過程中通過親身體驗團隊合作學會如何發現問題、共同分析問題和解決問題,同時提高自身的項目分析能力、創新思維能力和合作交流能力。
3.2選題與構思
結對以后,小組成員要通過初步討論進行選題和方案構思。如果對題目庫中的題目不太感興趣,允許學生根據自己的興趣自擬題目。待題目確定后,繼續進行查閱資料、調研,并設計出初步的方案。如果兩個人對設計方案意見不一致,需要進一步進行溝通交流。必要時請老師參與討論,最終的設計方案必須是通過結對的兩人討論一致好方案。在整個選題構思過程中,學生都處于主動地位。
3.3具體實踐
這一階段,結對的學生要根據第二步的設計方案開始編程。按照經典的結對編程流程,兩個學生須在同一臺計算機前一起編程。由于在本課程設計開設之前學生從沒有經過系統的軟件開發訓練,所以在課程設計的過程中,不能照搬經典的結對編程流程。我們為每個結對組配備兩臺計算機,結對的雙方要合理地利用兩臺計算機:一臺用來顯示資料和代碼實例;另一臺主要用來結對編程實現。這樣整個代碼的開發仍在一臺計算機上完成,負責輸入代碼的學生要保證代碼輸入的快速性,負責校驗代碼的學生要保證代碼的正確性。編程中如果遇到了不懂的地方,可以利用另外一臺計算機隨時進行資料查閱和代碼實例的比照。在整個編程實現的過程中,結對編程的兩個人要相互信任、互相督促,共同學習編程的技能,這樣編程能力弱的學生也能在結對過程中學到編程的方法,共同完成團隊的任務。在整個實踐階段,為了掌握學生編程的進度,帶隊教師將以客戶的身份全程參與到每個結對小組的實訓中。建議每個小組在開始一天的工作前,必須開會決定當天的任務,并做成計劃文檔;每天的工作完成后,需將當天的編程結果給帶隊教師看,教師會根據每天的進展對每個結對小組當天的結果提出反饋的意見和改進的要求。
3.4檢查與提交
具體實踐完成后,結對小組邀請教師來檢查已完成的軟件。通常,帶隊教師先檢查代碼的正確性,保證程序能順利運行;然后,從使用者的角度來檢查軟件是否符合設計要求。如果發現問題,則再次討論修改,直到通過教師的認可方可提交代碼。
3.5考核
作為一門實踐課,成績考核是非常重要的,不能光靠最后提交的程序評定成績,這樣就會造成成績的不公平。采用了敏捷軟件的結對開發模式后,由于帶隊教師全程參與了各個小團隊的開發過程,掌握了每個團隊成員的平時表現,設計成績由程序運行情況(40%)、答辯情況(10%)、平時表現(30%)和報告文檔(20%)四部分組成,每一部分又分為五個等級,具體評分標準見表1。
4結束語
面對用人單位對人才的高要求,高校對程序設計之類的實訓課應不斷探索新的教學方法。將敏捷軟件開發模式應用到計算機語言課程設計的教學中,已在我校自動化12級、13級的學生中進行了兩年的實踐。從兩年的教學效果來看,在新的教學模式要求下,學生學會了相互間的交流、相互間的合作,學會和別人一起分享成功。從小團隊的組建到課題的選擇,從方案的設計再到實現,均通過結對的兩人合作完成,給學生提供了很大的自主空間。相對于以前的教學模式,學生在課程實踐中獲得計算編程能力的極速提升,軟技能也得到了培養,極大地提高了學生的積極性和創新性。后續專業課的任課教師也反饋:學生經過本教學模式的編程訓練,在專業課需要編程的實驗環節表現出了很強的程序開發能力和組織能力。
參考文獻
[1]袁華,張凌.網絡工程設計實踐課程能力培養初探[J].計算機工程與科學,2014,36(A2):242-245.
[2][美]RobertC.Martin.敏捷軟件開發:原則、模式與實踐[M].北京:清華大學出版社,2003.
[3]張志麗.軟件開發生命周期法比較之敏捷與傳統[J].電腦開發與應用,2013,26(12):32-37.
[4]顧佩華,包能勝,康全禮.CDIO在中國[J].高等工程教育研究.2012(3):24-40.
篇10
關鍵詞:計算思維;大學計算機基礎;教學改革
1.計算思維是改變大學計算機基礎課程現狀的核心推力
計算思維(Computational Thinking)是美國卡內基梅隆大學計算機系周以真教授提出的概念,其定義為“運用計算機科學的基本概念去求解問題、設計系統和理解人類的行為,包括了涵蓋計算機科學之廣度的一系列思維活動”。計算思維反映了計算機技術本質特征和解決問題的核心方法,能夠提升非計算機專業學生的計算素養,培養學生用計算機處理和解決領域問題時的思維方法和表達形式,對學生有深遠影響。2010年陳國良院士提出將“計算思維能力培養”作為計算機基礎課程教學改革切入點的倡議,2012年7月,教指委在西安舉辦了“第一屆計算思維與大學計算機課程教學改革研討會”。2013年7月“第二屆計算思維與大學計算機課程教學改革研討會”在成都召開。這些都表明,增強計算思維能力的培養已成為非計算機專業計算機課程教學改革的重要方向。
大學計算機基礎是大學本科的公共基礎課程,通常作為大學第一學期的課程。當前,在該課程教學過程中存在一些問題,已經引起廣泛關注:首先,多數教學內容是計算機專業知識的濃縮,缺乏主線,顯得多而雜;其次,實踐環節側重軟件工具使用,由于不少學生在高中階段已經掌握這些工具的使用,導致其失去對該課程的學習興趣。不少專業教師和教育管理者已經針對課程教學中存在的問題進行了有益探索與實踐,例如,面向多類專業不同計算機基礎的學生,組織了分類教學,收到一定效果,但沒有從根本上改變課程現狀。而以計算思維教育與訓練為核心實施大學計算機基礎的改革與創新,能從根本上改變該課程的現狀,并有效提升教學質量與效果。
2.大學計算機基礎課程教學過程體現計算思維培養
2.1亟待解決的問題
課程的改革目標是讓學生在學習計算機核心知識和掌握應用工具的基礎上學習運用高效的思維去思考,將無意識的計算思維教學理念提升到有意識、系統性的計算思維教學。力求從根本上扭轉目前大學計算機基礎課程所面臨的教學困境。針對以上目標,需要以計算思維為核心重構教學內容,并通過合適的教學實踐手段和方法使得這些重構的內容能夠被學生接受和理解。通過分析,提煉出要解決的具體問題如下:
1)在有限課時內需要培養學生哪些具體計算思維要素。
我們的目標是傳授給學生基本的計算機核心知識,但是計算機科學作為一門學科包含了復雜的知識體系,并在不斷地發展和創新,需要確定哪些知識點能夠被定義為該課程教授的核心內容。
2)如何在學生尚未掌握任何一門編程語言的情況下實踐所學計算思維內容。
大學計算機基礎課程所面臨的是大學一年級學生,除個別學生在入校之前有過編程經驗,學生普遍沒有編程基礎。如何在缺乏編程實踐的前提下讓學生掌握計算思維是決定最終教學效果的關鍵問題。
3)面向不同基礎和專業的學生如何體現不同的計算思維的教育和訓練內容。
2.2分類教學、專業融合的教學內容設計
西北工業大學是一所以發展航空、航天、航海工程教育和科學研究為特色,以工、理為主,管、文、經、法協調發展的研究型、多學科性和開放式大學。不同專業對學生的計算機知識的要求不同,存在較大差異。相同專業學生之間的計算機知識也有較大差距,在這種情況下采用分類教學是必要的。例如在程序設計課程中按照文、理科進行分類實踐教學,取得了良好的成效,積累了經驗,但是在大學計算機基礎課程中尚未實施。此次以計算思維培養為核心的大學計算機基礎課程教學改革在教學內容設計上除按照文、理分類外,還考慮到特殊方向和專業學生群體的較高計算機教育的需求,將教學內容分為4個方向:(1)面向理工類專業學生;(2)面向文管類專業學生;(3)面向國際班學生全英文計算機教學;(4)面向教育實驗學院卓越班。
西北工業大學作為理工科重點院校,大多數學生都歸類于方向(1),以2013年數據為例,方向(1)約占62%,方向(2)約占17%,方向(3)約占4%,方向(4)約占17%。在確定每個方向學生教學內容時,遵循“兩個融合”的原則,將計算機基礎教育與計算思維培養融合,構建以計算思維能力培養為主線的非計算機專業通識教育;將計算機基礎知識與學生的專業技術融合,在進行計算機思維培養教學內容選擇時,注重計算機基礎知識與學生專業方向的融合度。“兩個融合”的具體內容包括:
(1)計算思維培養融合,是指將計算機科學中最具有基礎性和長期性的計算思想教授給學生,側重使非計算機專業學生能夠領略計算的核心方法,學會如何把問題轉化成能夠用計算機解決的形式,培養學生從本質和全局來建立解決問題的思路,為其今后的專業學習和應用計算技術打下堅實基礎。
(2)專業技術融合,是指根據學生專業特點和需求,在計算思維培養融合的基礎上,動態選擇課程內容,形成可定制教學模塊,實施分類分層教學。
“兩個融合”原則體現了具有鮮明特色的非計算機專業大學計算機教學方案,形成了縱向分類、橫向分層的教學內容。每個方向內容由基本理論知識層、計算思維融合層、專業融合層組成。以面向理工類專業學生的方向(1)為例說明各層的含義,如圖1所示。
1)基本理論知識層。
該層屬于計算機基本知識內容,包括基本概念和基本計算思維模塊,在介紹計算機軟、硬件的歷史和未來發展趨勢過程中貫徹計算機基本知識,包括二進制、馮?諾依曼計算機、圖靈機、計算復雜性等計算機重要基礎概念等。這部分內容比較近似于之前課程中計算機基本知識部分,但我們在教學改革中對其內容重新組織,從計算機重要的“分層”和“抽象”概念出發引導學生學習這部分知識,力圖讓學生領略到這些技術背后的基本計算思維內涵。通過學習計算機發展歷史,讓學生對整個計算科學發展有全局了解。
2)計算思維層。
包括問題求解方法和算法模塊,學生在學習了計算機重要基礎知識后,開始深入學習計算系統底層具體思維和運行機制。這部分從系統和算法角度讓學生學習計算機解決問題的方法,包括求解框架、典型案例的計算算法、具體思維過程和實現方法等,讓學生在計算思維較高層次討論計算機學科的根本問題和思維方式,深入了解計算機的工作和運行機理。這一部分內容體現了本課程的計算思維培養目標。
3)專業融合層。
最高層的專業融合層完成融合專業知識、提升學生在專業學習中應用計算思維的能力的任務。該部分從數據處理和網絡計算角度,讓學生領略到計算機目前最廣泛的應用模式,從而在自己的專業領域加以運用。這部分模塊屬于變化較大的模塊,目前仍然需要開發和擴充大量與其他專業更為緊密相關的案例和應用模式。
按照圖1所示,不同類別學生在基本理論知識層內容是相同的,在第2層上,教育實驗學院學生所學的算法和系統內容更為深化和多樣,實現了差異化教學。在專業融合層,為理工類和文管類不同專業特色的學生設計了不同模塊內容。理工類學生學習數據處理和計算網絡知識,而文管類學生側重學習用計算機處理數據和利用計算知識研究社會關系等。
2.3兩階段培養、可視化計算思維實踐的實驗環節
一直以來,實驗教學通常是理論教學的輔助,和理論教學在章節內容上是對應的。但在我們的教學改革中將實驗課程和理論課程定位為“互補關系”,實驗課程具有相對獨立性,在內容中體現“兩階段培養”的實驗教學理念。第一階段實驗為計算機基礎知識實踐,包括Windows的使用、常用工具軟件的使用、常見網絡應用等。此階段目標是培養學生對計算機基本操作技能和常用工具軟件的掌握;第二階段實驗是關于計算思維的實驗。這部分內容要求學生依據具體應用問題設計程序,實現典型算法。兩階段培養中的第一階段目標就是要學生熟練掌握工作和學習中常用的工具類軟件,為以后的學習和科研打下基礎。
針對在本文2.1節中提出的第2個問題,即此階段的學生尚未具備程序設計的基本知識和經驗,我們認為,采用可視化編程工具是解決這一問題的有效方法。可視化編程工具支持可視化(Visual)程序設計,主要是讓程序設計人員利用軟件本身所提供的控件,構造應用程序的各種界面,可視化編程技術已經成為當今軟件開發的重要工具和手段。
為此,我們在課程實驗改革中引入可視化編程工具Raptor,使得尚未具備編程基礎的大一學生能夠實施算法實踐和驗證。Raptor是一種可視化的程序設計環境,其將程序設計中的要素以圖形符號的方式展現,使得學生在不具備編程知識的基礎上可以實踐計算機中算法類問題。目前,它已經在卡內基?梅隆大學等世界22個以上的國家和地區的高等院校中使用。
在實驗課程中設計了4個學時講解Raptor工具并要求每個學生至少課堂完成8個基本算法實驗任務。在實驗課之外,要求學生用Raptor完成算法類大作業并撰寫實驗報告,以綜合訓練學生解決算法類問題的能力。教學過程和最后的調查結果表明,引入算法類可視化工具有助于實驗教學取得良好效果。
3.改革實踐和總結
在2013-2014學年,我們將改革后的教學內容對部分理工類班級開展了試點教學,試點專業涉及材料、自動化、電子信息專業等,在課程末期分別針對任課教師和學生做了教學效果調查,調查結果表明教學效果基本達到預期教學目標。
教師普遍感受為所帶課程的難度和以往課程內容相比備課較難,但課堂氛圍較好,內容受到學生關注,尤其實驗環節引入了Raptor可視化程序設計工具,課堂氛圍活躍,學生的學習興趣和積極性較以往有大幅提高。
部分學生調查結果如圖2和圖3所示。圖2是學生對計算思維認識的調查結果,顯示出大多數學生(達到60%以上)理解了計算思維的概念,認識到計算思維和計算機基礎課程的重要性,不僅僅只是學習工具應用,而是對今后理解和掌握計算機應用技術奠定基礎,從無意識地應用計算機解決問題到有意識地培養自己的計算思維思想。圖3為調查學生認為教學內容中哪部分收獲最大,19%的學生認為計算思維有最大收獲,居第二位置,說明這部分的學習為培養優秀學生的創新能力打下了良好的基礎。