《C 程式設計》課程在高職教育中的改革與實踐

2022-05-21 18:42:03 字數 4400 閱讀 7138

摘要:《 c++程式設計》涉及面向過程和物件導向兩方面的內容,是我校軟體技術專業培養學生程式設計能力的重要專業基礎課程,課程重點培養學生物件導向程式設計的基本思想和方法。結合高職學生的學習現狀,從課程的定位、能力目標、教學內容的規劃組織、教學方法的選擇和實踐等方面,**了如何降低本課程的學習難度,培養出能夠滿足本課程能力目標和職業定位的軟體人才。

關鍵詞: c++程式設計;面向過程;物件導向;課程改革;內容規劃;教學設計

1 課程背景和定位

我校在2023年10月對軟體技術專業人才培養方案的實施方案做了修訂,重新確定了以.net為軟體開發平台的使用者系統開發和web**開發的培養路線,並將《 c++程式設計》作為第一教學語言,放在了第三學期進行開設。在此之前,計算機應用基礎、資料庫技術是學生的先修課程。

由於 c++語言是從面向過程的c語言發展而來的,又涉及了物件導向的程式設計方法,我們希望學生通過對 c++語言的學習既能掌握程式設計的基本結構,又能初步建立物件導向的編輯思想。為其後續的「資料結構」、「c #」、「.net及web應用開發」、「程式設計」等課程提供紮實的語言基礎和正確的思維模式。

但是,對於目前高職生外語、數學等基礎知識薄弱,獨立分析和解決問題的能力欠缺,面臨困難的心理承受能力不足等種種的普遍現象來說,如何降低學習難度,讓學生感覺啃的是「骨頭」而不是「石頭」一直是我們課程改革的最終目的。

2 課程的能力目標

在能力目標上,結合我校多年校企合作,產學結合的豐富經驗,分別從三個方面對學生的能力進行培養。

第一,專業能力。不僅要求學生具備程式的基本的閱讀和編寫能力;初步認識物件導向程式設計特點;逐步建立和鞏固使用物件導向認知世界的思想和思維方法;還要讓學生掌握運用v c++的整合開發環境進行程式設計以及簡單的專案開發。

第二,方法能力。引導學生通過獨立學習,不斷獲取新的知識和技能;鼓勵學生主動發現和解決問題。培養學生邏輯與抽象思維能力。

第三,社會能力。培養學生具備愛崗敬業、忠於職守的職業道德和團結合作的團隊精神。

3 課程的教學內容設計

教育心理學認為:合理編排教學內容,有效設計教學程式,是促進學生的學習遷移的有效手段。依據我校「實施性專業人才培養方案」的教學計畫, c++程式設計課程的計畫課時是108學時,現根據其內容分成兩個不同的階段。

第乙個階段:面向過程的程式設計基礎階段,其主要學習內容是:基本量(常量、變數)、資料型別及應用、運算子與表示式、函式、流程控制語句。

本階段主要是介紹語言成分及語法使用規則,以及程式設計的基本結構。

第二個階段:物件導向和引數化程式設計,其主要學習內容是:類和物件(類的宣告、成員函式、封裝)、建構函式和析構函式、類的繼承(派生和繼承)、操作符過載、模板(函式模板和類模板介紹)、流(標準輸入輸出流、檔案流)、異常處理。

4 課程的教學手段和方法

根據課程的教學內容設計,筆者將教學手段分成了兩個階段。

第一階段:面向過程的程式設計。

4.1 教學主要思路:淡化語法,強化演算法

因為我們的課程教學是以程式設計為主,而不是程式語言本身,所以在內容的選擇上以程式設計的方法和技能為主,語法知識只是一種工具。物件導向的 c++語法較複雜,教學往往陷入語法,物件導向成了語法現象。如果完全按照書上的內容來授課的話,只能削弱更為重要的物件導向程式設計應用和演算法教學。

所以,筆者建議在學生學習程式設計的最初,應該多借助「人類語言」、「類程式語言」、「流程圖」等形象、易理解的手段,先將程式設計的基本結構和邏輯思想傳授給學生。

4.2 教學主要方法

本教學方法主要用於程式學習的初期。以專案匯入、以任務驅動教學,這是現在多數院校所採取的課改手段,目的是以實踐環節帶動課堂上的理論教學,筆者也認為這種「行為引導式的教學形式」更適合高職學生的教學課堂,只是在理論和實踐內容的組織及課堂教學的組織上,筆者做了一些改革。

(1)提供問題解決類的學習任務,以「滾雪球」的方式逐漸引入相關的理論知識。

問題解決類的學習任務即有挑戰性,又會帶動一些低階技能的學習。學生會以問題解決為目標,尋找相應的先決技能去學習,當然有時需要老師幫助去分析需要哪些先決技能。這與常規的先學規則,再學問題解決要好的多。

因為學生在學習規則時並不能切實的感覺到規則的用途。

眾所周知,傳統的教科書一般是先講資料型別,接著是運算子和表示式,函式,然後是程式設計的基本結構。如果按照這個順序講解,很容易出現以下兩種現象:一是學的時候學生不能充分了解和掌握其使用方法;二是隔段時間要用到該知識時,學生不是將之前學習過的內容忘記了就是不知道該用在**。

因此筆者打破了傳統教科書上的順序,以任務為導向,在不斷的提出疑問,找尋解決方法的過程中將教學內容如同滾雪球似的慢慢推出,逐層積累,力求讓學生感到「學到即能用到」。

如:在學習選擇結構之前,關係表示式和邏輯表示式是無用武之地的,那麼組織內容時就可以直接將關係表示式和邏輯表示式放在學習選擇結構時講解,只要設定合理的問題,學生很容易的就可以掌握這些運算子和表示式。

(2)設定合理課堂情境,充分體現「學生主體,教師主導」的課堂教學特徵。

教師的主導作用主要體現在正確、有效地選擇與運用組織教法來幫助學生實現學習目標。要積極倡導自主學習、合作學習、**學習來弘揚學生的主體精神,激發學生學習的自覺性和積極性。培養學生的創新意識和自主學習的能力。

設計的教學流程如圖1所示:

在教學時,面對每乙個需要完成的任務都可以按照以下幾個階段完成,首先是對問題的分析梳理,在老師的帶領下完成。目的是讓學生對問題有更深的認識,從而產生疑問;接著給學生思考和實驗的時間,之後老師再對問題進行講解和演示,學生同時觀摩體會,從而得出新的知識和技能;引導學生進行模仿實踐,主動去掌握新的技能;最後,給學生設定與新技能相關的獨立實踐內容,讓學生自主的完成任務,老師在此過程中巡視答疑並對引導學生對出現的問題進行總結。

圖1 教學流程

第二階段:物件導向的程式設計

4.2.1 教學主要思路:及早引入,突出關鍵技術

要具體降低難度,首先要深刻理解 c++的關鍵技術,要有重點。不能面面俱到,有所失,才能有所得。「傷其十指,不如斷其一指」。

教學與打仗是乙個道理。圍繞關鍵技術「精講多練」,可以花較少的學時取得更好的效果。

(1)多型。包括過載(編譯時的多型,包括函式與運算子過載)、層次結構中的同名覆蓋與超載(執行時的多型)。在介紹函式時就引入函式過載,在教學剛涉及類物件時就引入運算子的過載。

引入的越早應用的機會越多。普遍使用這些技術是物件導向的 c++標誌。

(2)引數化程式設計的教學。 c++中引數化是由模板技術實現的。突出模板相關內容的教學。

不是將模板作為一種語法現象,而是作為乙個有力的工具用於本教材所涉及的全部資料結構基本知識,包括順序表、鍊錶、棧、隊、二叉樹以及查詢排序演算法。同時介紹標準模板庫的簡單使用方法。最新發展的iso14882 c++語言標準乙個較大的改變時吧模板引入標準庫,使用模板類來代替傳統 c++中定義的類,實現通用的與資料庫型別無關的演算法(引數化程式設計)。

(3)聚合的數學。提倡完善的類物件封裝,不僅封裝資料和對資料的操作,而且封裝資源(尤其是記憶體)的動態分配與釋放,形成乙個完備的子系統。在乙個有層次結構的類體系中資源的動態分配與釋放應封在成員物件中,如同使用標準的string字串類那樣。

成員物件往往不被重視,教學中往往重視派生而輕視聚合,聚合是一種完善的封裝。採用成員物件將大大簡化層次結構的類體系中資源的動態分配與釋放的處理方法,不再出現難度極大的多層次的深複製。

(4)異常處理。介紹怎樣在物件導向的程式設計中使用異常處理技術來處理一些很難查詢甚至是無法避免的執行時錯誤和異常。這裡要求從一開始學習資源的動態分配就習慣於再建構函式中動態分配資源、再析構函式中釋放資源。

總之,不是泛泛介紹物件導向的 c++的語法和框架,而是突出實用技術,包括完善的封裝、派生、多型和模板,再建構函式中動態分配資源、在析構函式中釋放資源和異常處理,這是物件導向的 c++程式設計的精髓。

4.2.2 教學主要方法:庖丁解牛,分組協作

物件導向程式設計的源**通常比較龐大,原因是資料的操作封裝在一起,原則上包含的操作要全面,教師應該指出成員函式是乙個獨立的操作,每乙個成員函式都是簡單的。可以給學生講講庖丁解牛的故事,要求學生做到面目全牛,也就是物件導向的程式要乙個乙個函式來編。如下圖所示:

圖2 教學流程2

學生獨立分析任務,自定解決方案,在掌握了基本方法和解決問題的途徑後,對自己感興趣的內容,自然願意

努力去尋找答案,這比從老師那裡得到答案要強得多。再難他也認為不難。如果小組成員搭配合理,基礎較差的同學也可以跟上進度,至少有一次全過程的學習機會。

教師在此階段只需提醒學生合理分配工作時間,注意小組成員之間的溝通,幫助把握進度,最後組織小組內部以及組組之間進行評價和反思,如此,學生才能夠真掌握學習的本領。

參考文獻:

[1] 李寧.物件導向程式的 c++設計[m].北京:電子工業出版社,2001.

[2] 鄭莉. c++語言程式設計(第3版)[m].北京:清華大學出版社,2004.

[3] 鄭莉. c++語言程式設計案例教程[m].北京:清華大學出版社,2005.

[4] 袁梅冷.高職軟體專業多層次專案驅動教學模式**與實踐[j].職業教育研究,2008(2).

[5] 範紅,吳怡之.「c語言程式設計」趣味例項教學方法的**[j].計算機教育,2009(10).

企業培訓在高職教育中的作用

作者 周蘭芳 摘要 目前,企業培訓越來越受到企業的重視,已經成為助推企業發展的重要著力點。開展企業培訓,有利於高職教育全面發展,主要體現在有利於促進高職院校教學改革 深化校企合作關係 加強教師隊伍建設等方面。關鍵詞 企業培訓 高職教育 作用 企業培訓是指企業或針對企業開展的一種提高人員素質 能力 工...

「工作分析」在高職教育課程開發中的實踐研究

摘要 工作分析 是推動高職院校與行業企業合作,根據技術領域和職業崗位的任職要求,構建工作過程導向課程的有效方法。文章結合實踐闡述工作分析在高職教育課程開發中的作用和意義,及召開工作分析會的會前準備工作 主要步驟和相關要求等。關鍵詞 工作分析高職教育課程開發 工作分析 起源於德國,它是職業教育在設計學...

關於高職教育中科技寫作課程改革的思考

作者 和彥確肖蘭萍 教育與職業 理論版 2009年第06期 摘要 我國高等職業技術教育在取得長足發展的同時,因為深受能力本位觀念的影響,在培養目標的定位上存在一定偏差,往往忽視對學生綜合素質的培養,忽視對學生科學素養的培養,其直接表現就是不重視培養和提高學生科技寫作能力,而具體到科技寫作課程的實施過...