c程序設(shè)計范文

時間:2023-04-06 18:59:59

導(dǎo)語:如何才能寫好一篇c程序設(shè)計,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

篇1

對于引用的定義可以歸納為符號的類型和符號的使用方式,在符號的類型中就符號的使用標示:標示符號&+引用名稱=代碼的名稱;例如:printc;if&chart=if;標示出不同的定義,if就是標示符號的引用,也就是所謂的名稱改變。符號的分析圖為(圖1)所示。在這里必須要以下的說明:&符號在標示中只是以標示名稱的形式存在,不作為任何的含義;&符號在引用的過程中,對于初始的代碼變化不會起到改變的作用,也不會促使代碼發(fā)生任何性質(zhì)上的變化;在引用過程中,對于引用前和引用后&符號使用的兩個名稱在作用上是相同的,也就是說名稱只是一個代號,在程序使用中也是為了區(qū)分代碼改變的標準,這就不能再進行代碼的改名;代碼的重新命名不是定義上發(fā)生任何的變化,所以在數(shù)據(jù)庫當中的代碼性質(zhì)不會進行更新,只有在程序順利運行后以及程序出現(xiàn)了調(diào)試過程后,新定義的使用&符號的代碼才能被列入新的程序數(shù)據(jù)庫當中。

2、程序設(shè)計中&符號的使用

C++程序中&符號出現(xiàn)的情況是標示為引用,對于函數(shù)的變化中會起到一定的作用,雖然不改變代碼的性質(zhì),但是對于函數(shù)的定義還是會出現(xiàn)一定的影響。&符號改變的數(shù)學函數(shù)的參數(shù)變化,對于參數(shù)的定義域起到了重要的作用。在C語言中的函數(shù)值的變化,其中關(guān)于main函數(shù)的變化之最多,也是在程序研究中使用&符號最多、最為關(guān)鍵的因素之一。在對于main函數(shù)的&符號使用中,首先要弄清楚函數(shù)的最初原型,對于函數(shù)的表達意義要有初步的了解,并且能夠合理的使用程序的改變方程式,對于main中的函數(shù)參數(shù)中&符號也有著不同的規(guī)范要求。在main可編輯函數(shù)中,agent是表示函數(shù)中參數(shù)的含義,&符號是表示為函數(shù)的變化地址,同時&符號也表達出函數(shù)中參數(shù)的個數(shù),把agent最為函數(shù)參數(shù)的指導(dǎo)性參數(shù)值進行分析判斷,統(tǒng)計&符號可以得到函數(shù)相關(guān)數(shù)組的即時數(shù)組信息。在操作系統(tǒng)中,函數(shù)中&符號的配置啟動中,完全取決于操作系統(tǒng)的函數(shù)變化,對于操作中函數(shù)的初始變化值有著嚴格的要求,并在運行初始階段進行函數(shù)的歸零處理,后期在每個不同函數(shù)變換的模塊當中,提取出不同數(shù)值的數(shù)據(jù)參數(shù),來指導(dǎo)計算機程序的有效運行狀態(tài)。通過改變符號的方式可以對于程序的效率有一定的提升。由上述例子看出,在函數(shù)中傳引用和傳指針的效果是相同的。這樣,被調(diào)函數(shù)中的形參實際上就是主調(diào)函數(shù)中的實參或目標變量的別名,因此被調(diào)函數(shù)中所有對形參的操作實際上就是對相應(yīng)的主調(diào)函數(shù)中目標變量的操作,一般傳遞的數(shù)據(jù)較多時,采用引用時程序的效率較高。雖然使用指針傳遞地址也能達到相同的效果,但因為在被調(diào)函數(shù)中還要為形參分配存儲單元,而且在主調(diào)函數(shù)的實參必須使用變量的地址,這種方式必將導(dǎo)致程序閱讀性較差,而使用引用便顯得簡單易懂,而且程序結(jié)構(gòu)也更清晰。常引用聲明方式:const類型標識符&引用名=目標變量名;在這種引用方式中,由于目標變量的值的修改不能通過引用來間接修改,因此可以很好地保護目標變量的值,使得引用有了很好的安全性,即相當于目標為const型的變量。當參數(shù)需要定義為引用型是,如果實際需要容許盡可能定義為const,這樣可以保證代碼的健壯性,同時也能帶來其它的好處。在函數(shù)的定義過程中對于代碼的變量指標在初始定義之后,在對變量的變化值進行記錄,該代碼指針變量便指向初始化指針變量的目標變量。通常情況下規(guī)定,具體操作過程時,對代碼的指針的操作實際是對其所指向變量的間接操作。程序設(shè)計過程中使用指針可以讓系統(tǒng)的程序的可讀性降低,在操作起來也相對的困難。而由于引用本身就是目標變量的別名,編程中對引用的操作就是對目標變量的直接操作。引用其實也是一種指針,只不過其操作方式與指針不相同,指針可以一對多進行映射,而引用卻只能一對一的進行,也就是一個參數(shù)對應(yīng)一個代碼指針數(shù)值,即&符號中的數(shù)字不能被改變,因此在對于符號的使用中,鑒于引用比指針更容易進行操控和編輯。

3、結(jié)語

篇2

關(guān)鍵詞:C/S模式;考試系統(tǒng);題庫;自動組卷;C#

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2011)30-7344-03

Design of Program Language Course Examination System Based on C/S model

HAN Yan1,2

(1.College of Computer Science & Information of Guizhou University, Guiyang 550025, China; Guizhou Commercial College, Guiyang 550004, China)

Abstract: According to the characteristics of the Program Language Course Examination, Analyzed the Examination System, introduced the design of 3-tier structure, the design of database, the design of the function module, and the environment of the system,development tools, as well as the key technology.

Key words: C/S model; examination system; exercise library;auto generating test paper; C#

1 緒論

隨著計算機的普及,目前在各所高校中,普遍開設(shè)有程序設(shè)計類課程。對這類課程目前的考試方式主要有兩種:1)筆試:題型包括單選題、判斷題、程序填空題和編程題四大類;2)作品考試。學生或獨立或分組完成某個系統(tǒng)的設(shè)計和實現(xiàn)。以上兩種方式各有優(yōu)缺點。第一種方式對學生編程能力的考核存在不足;第二種方式對學生理論知識的考核有缺陷。網(wǎng)絡(luò)環(huán)境下的計算機考試系統(tǒng)來實現(xiàn)程序設(shè)計類課程考試,可以結(jié)合兩種考試方式的優(yōu)點,通過考試系統(tǒng)既能實現(xiàn)對理論知識的考核,又能提供編程環(huán)境,使學生上機完成程序設(shè)計題的編寫和調(diào)試。

2 考試系統(tǒng)的需求分析

計算機程序設(shè)計課程要求考生掌握程序設(shè)計的基礎(chǔ)知識,應(yīng)用程序設(shè)計語言編寫小程序的能力??荚囅到y(tǒng)涉及到四種題型,選擇題、判斷題、程序填空題和程序設(shè)計題??荚囅到y(tǒng)在試題庫中隨機抽取試題組卷,考試結(jié)束后,提交試卷就能自動評分并保存試卷,既方便教師閱卷,也提高了試卷批改的準確度和速度。教師所要做的工作只是精心設(shè)計題目、維護題庫。

本系統(tǒng)應(yīng)該具備以下功能:

1)題庫管理功能。教師可以對題庫的題目及題型進行錄入、修改、刪除等相關(guān)功能。

2)組卷功能。系統(tǒng)可按考試出題要求為學生自動隨機抽取試題庫中的題目組成試卷。

3)評分系統(tǒng)。系統(tǒng)可對客觀題進行逐個批改。主觀題提供老師閱卷界面,顯示學生的操作結(jié)果與本題的標準答案,老師進行評分。

4)交卷功能。考生開始考試后,系統(tǒng)將自動計時,考生考完可選擇交卷功能。在考試時間剩余5分鐘時,系統(tǒng)會提示考生,到達規(guī)定的考試時間時,系統(tǒng)關(guān)閉答題窗口,提示考生交卷并結(jié)束考試。

5)斷點續(xù)考功能。所有考試結(jié)果自動保存在網(wǎng)絡(luò)考試服務(wù)器上,并具有二次登陸功能,防止斷電和死機等原因?qū)е驴荚囀〉墓δ堋?/p>

3 計算機應(yīng)用基礎(chǔ)考試系統(tǒng)的設(shè)計

3.1 系統(tǒng)的體系結(jié)構(gòu)

本系統(tǒng)采用三層C/S結(jié)構(gòu),在三層C/S結(jié)構(gòu)中,業(yè)務(wù)邏輯與客戶端分離,這樣在一定程度上減輕了客戶端的負擔。三層C/S結(jié)構(gòu)是將整個業(yè)務(wù)應(yīng)用劃分為表現(xiàn)層(VI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL)。其解決方案是:對這三層進行明確分割,并在邏輯上使其獨立。三層C/S架構(gòu)區(qū)分層次的目的是為了“高內(nèi)聚,低耦合”的思想。

表現(xiàn)層:通俗地講,就是展現(xiàn)給用戶的界面,即用戶在使用一個系統(tǒng)時他的所見所得。表示層是應(yīng)用的用戶接口部分,它擔負著用戶與應(yīng)用間的對話功能。為使用戶能直觀地進行操作,一般要使用圖形用戶接口(GUI),操作簡單。

業(yè)務(wù)邏輯層:針對具體問題的操作,也可以說就是對數(shù)據(jù)層的操作,對數(shù)據(jù)業(yè)務(wù)的邏輯處理。它是應(yīng)用的本體,它將具體的業(yè)務(wù)處理邏輯地編入程序中。處理所需的數(shù)據(jù)則要從表示層或數(shù)據(jù)層取得。表示層與功能層之間的數(shù)據(jù)交往要盡可能簡潔。而由功能層處理過的檢索結(jié)果數(shù)據(jù)也一次傳送給表示層。

數(shù)據(jù)訪問層:數(shù)據(jù)層就是DBMS,負責管理對數(shù)據(jù)庫數(shù)據(jù)的讀寫。該層所做事務(wù)直接操作數(shù)據(jù)庫,針對數(shù)據(jù)的增加、刪除、修改、查詢。

三層C/S結(jié)構(gòu)的優(yōu)點如下:1)具有靈活的硬件系統(tǒng)構(gòu)成;2)提高程序的可維護性;3)利于變更和維護應(yīng)用技術(shù)規(guī)范;4)進行嚴密的安全管理。

本系統(tǒng)的三層C/S架構(gòu)設(shè)計,如圖1所示。

在圖1中將整個系統(tǒng)劃分為如圖所示的邏輯結(jié)構(gòu),同時還給出了解決方案中對應(yīng)的程序結(jié)構(gòu)。

其中表現(xiàn)層即考試系統(tǒng)界面層,是考試系統(tǒng)的用戶接口部分。本考試系統(tǒng)用戶由三類:管理員、老師和學生,根據(jù)用戶的性質(zhì),將管理員和老師從服務(wù)器端登錄,學生從客戶端登錄。因此,對應(yīng)的將系統(tǒng)的表示層分為客戶端和服務(wù)器端兩個項目來完成,并分別命名為SysServer和SysClient,作為兩個獨立的項目,用于用戶操作;業(yè)務(wù)邏輯層主要實現(xiàn)考試系統(tǒng)處理業(yè)務(wù),命名為SysBll,作為一個單獨的類庫,包含所有系統(tǒng)需要處理業(yè)務(wù)的類的集合;數(shù)據(jù)訪問層用于考試系統(tǒng)數(shù)據(jù)訪問,命名為SysDal,也是一個類庫項目,主要用于操作數(shù)據(jù)庫,實現(xiàn)對數(shù)據(jù)庫的增加、刪除、修改、查詢等操作。

除此之外,還用SysDal項目來定義數(shù)據(jù)訪問層接口,其作用是定義一種系列“功能”的聲明或名單,沒有實現(xiàn)細節(jié);用SysModels項目用來定義類,是對各個實體的抽象,包含各個實體的屬性已經(jīng)設(shè)置和獲取的方法,最終用于建立實體對象。[1]

3.2 系統(tǒng)功能設(shè)計

考試系統(tǒng)主要分為以下模塊:人員管理、試題管理、考試管理、評卷管理、成績管理、考生登錄、試題生成、開始考試和試卷提交。

3.3 系統(tǒng)功能描述

1) 人員管理:實現(xiàn)后臺登陸,管理員、教師、考生的增刪改和人員權(quán)限的設(shè)置。

2) 試題管理:對試題的類型進行管理,并定義各種試題的操作,添加和管理各種試題。

3) 考試管理:對考試進行管理,設(shè)置和修改考試、考場的相關(guān)信息。

4) 評卷管理:對于客觀題進行自動評卷記分;對于主觀題進行手動評分題。

5) 成績管理:進行成績統(tǒng)計分析

6) 考生登陸:考生登陸考試系統(tǒng)。

7) 試題生成:根據(jù)試題庫,隨機生成學生考試題。

8) 開始考試:學生進入系統(tǒng)進行考試答題,并且開始記時。實時保存學生考試進度,以免異常造成考試信息丟失。

9) 試卷提交:學生提交答案,系統(tǒng)自動將答案提交服務(wù)器。[2]

3.4 數(shù)據(jù)庫設(shè)計

3.4.1 數(shù)據(jù)庫的需求分析

在設(shè)計數(shù)據(jù)庫結(jié)構(gòu)時,既要考慮到盡可能地滿足系統(tǒng)應(yīng)該實現(xiàn)的各項功能需求,同時又要避免冗余數(shù)據(jù)的產(chǎn)生。根據(jù)考試系統(tǒng)的特點,考試系統(tǒng)在實現(xiàn)過程中,主要采集以下方面的信息:管理員信息表、考生信息表、試題知識點表、試題類型表、試題表、考生考試信息等。

管理員信息表:包括系統(tǒng)管理員和老師的人員編號、人員名稱、登陸名、密碼、人員類型等相關(guān)信息。

考生信息表:包括考號、身份證號、姓名、班級、年齡、性別、狀態(tài)、考場號、得分等。

試題知識點表:包括知識點編號、知識點名稱、所在章、所在節(jié)等知識點。

試題類型表:包括試題類型編號、名稱、備注。

試題表:包括題目編號、知識點編號、試題類型、題目內(nèi)容、選項A、選項B、選項C、選項D、標準答案、標準答案文件等相關(guān)信息。

考生考試信息表:包括考生編號、試題編號、得分、答案、答案文件等。[3]

4 實現(xiàn)的關(guān)鍵技術(shù)

4.1 實現(xiàn)的環(huán)境

4.1.1 硬件環(huán)境

服務(wù)器一臺,客戶機80臺組成的局域網(wǎng)硬件環(huán)境。

4.1.2 軟件環(huán)境

服務(wù)器端:操作系統(tǒng)Windows 2003 Server;數(shù)據(jù)庫:SQL SERVER2005。

用戶端:操作系統(tǒng): windows xp;數(shù)據(jù)庫:Access。

網(wǎng)絡(luò)協(xié)議:TCP/IP。

4.2 開發(fā)工具選擇

根據(jù)本系統(tǒng)要實現(xiàn)的功能,需要選擇兩種工具,即前臺開發(fā)語言和后臺網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)。

本系統(tǒng)選擇C#作為前臺開發(fā)語言,SQL Server 2005作為后臺數(shù)據(jù)庫系統(tǒng),并選擇Visual Studio 2005作為C#的開發(fā)環(huán)境。

4.3 實現(xiàn)的關(guān)鍵技術(shù)

1)題庫的設(shè)計

根據(jù)課程要求,將本考試系統(tǒng)的試題類型分為:單項選擇題、判斷題、程序填空題和程序設(shè)計題。因此,在題庫中必須要包含上述類型的試題信息,其中包括題目文本和標準答案。

本系統(tǒng)將所有題目類型建立了一個試題類型表來記錄每一種題型的編號及名稱,試題知識點表來記錄每道題的知識點名稱、所在章、所在節(jié)等信息。用試題表來保存所有題目,由于各種題型的題目保存在一個表中,其中用字段TypeID來說明每一道題目的類型,Content記錄題目描述,Score字段記錄每道題的分值。對于選擇題部分的題目,用A、B、C、D四個字段記錄答案選項。選擇題和判斷題是自動評分,且用Answer字段記錄標準答案;程序填空題和程序設(shè)計題采用人工評分,程序填空題用Answer字段記錄標準答案,程序設(shè)計題用AnswerFileName保存標準答案文件名。

2)組卷的實現(xiàn)

考生上機考試登錄成功后,系統(tǒng)在試題庫中隨機抽取試題組卷。在生成題庫時,已將題型信息記錄在試題表,以便抽題時使用。

組卷時,系統(tǒng)更新考生考試信息表,在表中記錄該考生的考生號,抽取的試題號。抽題時按不同題型、不同的知識點抽取題目。為了避免抽到重復(fù)題,每抽一個題將與該考生已抽題進行比對,如果題目已抽取為該考生題目,將不放入考生試卷,重復(fù)抽取直到生成所有的不一樣的題目。抽題后,直接在服務(wù)器上生成一個考生文件夾,所有程序填空題和程序設(shè)計題的答案文件放入考生文件夾中。

3)評分

目前對于選擇題和判斷題的評分方法都簡單,即將考生的答案與標準答案比對,答案一致就等分,答案不一致就不得分。而對于程序填空題和程序設(shè)計題答案存在不唯一性。因此,本系統(tǒng)認為合理的評分方法是,對于客觀題(即選擇題和判斷題,選擇答案是唯一的),把標準答案均設(shè)置成題庫中的字段,可以完全由機器閱卷;而非客觀題(即程序填空題和程序設(shè)計題),可以采用計算機輔助人工閱卷方法,在閱卷時,調(diào)出標準答案和考生答案,進行比較,權(quán)衡后給出符合實際的評分。這種批閱方式雖然在速度上比不上完全自動批閱,然而能確保其公正性。

4)二次登錄

如果考試期間發(fā)生突發(fā)事件,導(dǎo)致考生無法繼續(xù)考試,那么在考生二次登錄后,需要還原考生的考試環(huán)境;本系統(tǒng)通過數(shù)據(jù)庫記錄考生信息,出現(xiàn)故障時通過此數(shù)據(jù)庫恢復(fù)考生信息。

5)程序的移植

為了方便程序移植,本系統(tǒng)采用了配置文件來進行程序的移植。也就是將與數(shù)據(jù)庫的連接寫在app.config文件里面更方便,并且易于修改。

5 結(jié)論

網(wǎng)絡(luò)環(huán)境下的計算機考試系統(tǒng)進行考試,具有以下優(yōu)點:減少重復(fù)勞動,提高考試效率;保證考試公平性、公正性;方便教學管理、實現(xiàn)節(jié)能環(huán)保,同時也能夠?qū)崿F(xiàn)其他科目的考試,是考試發(fā)展的必然趨勢。本系統(tǒng)采用C/S三層結(jié)構(gòu)設(shè)計,具有較好的維護性、擴展性、安全性和可移植性。

參考文獻:

[1] 王國勝.C#基礎(chǔ)與安全開發(fā)詳解[M].北京:清華大學出版社,2009.

篇3

鐘 實

(江西科技學院)

[摘 要]C語言程序設(shè)計課程是計算機專業(yè)教育的重要組成部分。將探究教學引入C語言程序設(shè)計教學中,不僅可以提高學生學習的興趣,調(diào)動教師教學的

熱情,也豐富了探究教學的理論與實踐。具體分析并探討了C語言程序設(shè)計探究教學的實施目標、實施條件、教學情境的創(chuàng)設(shè)、探究形式、教學評價等問題。

[關(guān)鍵詞]C語言程序設(shè)計 探究教學 實施目標

一、 C語言程序設(shè)計探究教學實施的目標:情感目標、能力目標和認知目

1、體驗C語言程序設(shè)計的編程思想,激發(fā)和保持對C語言程序設(shè)計課程的

求知欲,形成積極主動地學習和參與C語言程序設(shè)計課程探究活動的態(tài)度。

2、能辯證地認識C語言程序設(shè)計對社會發(fā)展、科技進步和日常生活學習的

影響。

3、獲得親自參與研究探索的積極體驗、培養(yǎng)嚴謹?shù)目茖W態(tài)度。

4、能從日常生活、學習中發(fā)現(xiàn)或歸納可以利用C語言程序設(shè)計解決的問題,

通過問題分析確定程序功能。

5、能根據(jù)任務(wù)的要求,確定所需信息的類型和來源,并鑒別信息的真實性、

準確性和相關(guān)性。

6、掌握計算機程序的基本概念,理解并掌握C語言程序設(shè)計語言的基本知

識,包括語句、數(shù)據(jù)類型、變量、常量、表達式、函數(shù)等,熟悉語言的語法規(guī)則,熟

悉計算機程序執(zhí)行的基本過程。

7、了解C語言程序設(shè)計語言,掌握編寫程序、編譯程序、連接程序以及程序

開發(fā)環(huán)境等基本知識,掌握調(diào)試、運行程序的基本方法與技巧。

二、C語言程序設(shè)計探究教學實施的條件

1、掌握一定的計算機操作基礎(chǔ)

C語言程序設(shè)計課程由于其學科自身的特點,需要在計算機上調(diào)試程序,

所以要求學生具有一定的計算機操作知識,如:開關(guān)機、鍵盤和鼠標的使用、文

件的建立與查找、常用軟件的使用等。

2、良好的C語言程序設(shè)計認知結(jié)構(gòu)

認知結(jié)構(gòu)就是學生頭腦里的知識結(jié)構(gòu),是學習者觀念的全部內(nèi)容和組織。

奧蘇伯爾的認知結(jié)構(gòu)理論是針對新學習內(nèi)容的影響(即遷移)提出的,良好的認

知結(jié)構(gòu)有利于知識的提取和正向遷移。C語言程序設(shè)計探究教學強調(diào)在已有知

識經(jīng)驗上的主動建構(gòu),面對新的問題和任務(wù),需要學生及時從頭腦中提取信息,

建立新舊知識間的聯(lián)系,在已有C語言程序設(shè)計知識的基礎(chǔ)上思考解決新問題

的辦法,并試圖將新知識納入自己的認知結(jié)構(gòu)中。

3 、良好的探究環(huán)境

良好的探究環(huán)境是學生順利進行探究的保證,至少包含兩方面的內(nèi)容:(1)

要有充足的探究時間和靈活的探究條件。探究時間應(yīng)該根據(jù)學習任務(wù)進行合理

安排,應(yīng)該考慮到學生假設(shè)錯誤時所耽誤的時間以及討論交流所需要的時間。

探究教學中可能需要查閱大量的資料,教師還應(yīng)該準備書籍、網(wǎng)絡(luò)等輔助資源。

(2)學生在探究學習的時候不能有太多壓力,不同的學生由于其自身的因素不可

能以相同的速度學習,所以教師在進行評價的時候也應(yīng)該因人而異,應(yīng)該為每

個學生提供充分的思考機會和時間,讓每個學生都能以自己的進度進行探索,

并在此過程中感受到樂趣。

三、C語言程序設(shè)計探究教學情境的創(chuàng)設(shè)

心理學研究表明,恰當、適宜的環(huán)境能有效激發(fā)人的熱烈情緒,提高活動的

質(zhì)量和效果。教學情境是指教師人為創(chuàng)造的“典型場景”,創(chuàng)設(shè)目的在于引出教

學任務(wù),將學生的注意力吸引到學習任務(wù)中來。教師把將要學習的C語言程序

設(shè)計知識通過一定的情境呈現(xiàn)給學生,使得學生認知結(jié)構(gòu)與周圍環(huán)境不平衡,

引起他們對學習目標的注意和興趣,并通過探究活動把學生過去的活動和將來

的活動聯(lián)系在心理學研究表明,恰當、適宜的環(huán)境能有效激發(fā)人的熱烈情緒,提

高活動的質(zhì)量和效果。教學情境是指教師人為創(chuàng)造的“典型場景”,創(chuàng)設(shè)目的在

于引出教學任務(wù),將學生的注意力吸引到學習任務(wù)中來。教師把將要學習的C

語言程序設(shè)計知識通過一定的情境呈現(xiàn)給學生,使得學生認知結(jié)構(gòu)與周圍環(huán)境

不平衡,引起他們對學習目標的注意和興趣,并通過探究活動把學生過去的活

動和將來的活動聯(lián)系在一體。探究教學情境的創(chuàng)設(shè)應(yīng)做到:(1)創(chuàng)設(shè)的情境是為

C語言程序設(shè)計教學服務(wù)的,要以C語言程序設(shè)計探究教學目標為依據(jù)。(2)探究

情境要接近學生的真實生活經(jīng)驗,能夠吸引學生的注意力,激發(fā)他們的認知沖

突和求知欲。(3)學生在情境中能夠感覺到問題的存在,自然地將新舊知識聯(lián)系

起來。(4)情境中必須包含學生未知的新內(nèi)容,而且是能夠通過探究掌握的。

四、C語言程序設(shè)計課程中的探究形式

C語言程序設(shè)計課程中開展探究教學主要有4種形式:探究性提問、探究性

討論、探究性演示和探究性實驗。這4種形式是相輔相承的,而不是孤立存在的,

在C語言程序設(shè)計探究教學中,需要用到多種形式來構(gòu)成一個完整的探究教學

過程。C語言程序設(shè)計探究教學通常都是由探究性提問開始,然后進行探究性

討論、探究性演示或探究性實驗;也可能從探究性演示或探究性實驗開始,在演

示或?qū)嶒灥倪^程中發(fā)現(xiàn)問題,再進行探究性討論。在實際教學過程中,要根據(jù)學

習內(nèi)容和課堂情況靈活地選用這些形式。

五、C語言程序設(shè)計探究教學評價

教學評價指依據(jù)一定的標準,通過各種策略和相關(guān)資料的收集,對教學活

動及其效果進行客觀衡量和科學判定的系統(tǒng)過程。C語言程序設(shè)計探究教學評

價是對C語言程序設(shè)計探究教學過程及其影響的測量、分析和評定,評價中我

們更關(guān)注學生學習和成長的過程,尋找適合學生發(fā)展的學習方式,滿足學生知

識和能力發(fā)展的需要。評價對探究教學的積極作用是很明顯的,但是如果評價

指標制定不合理,或者評價方法的選用、評價結(jié)果的表述不當,不僅不能達到預(yù)

期效果,還會對學生的C語言程序設(shè)計學習產(chǎn)生消極影響。

參考文獻

[1] 《基礎(chǔ)教育課程改革綱要(試行)》教育部文件,教基[2001]17號.

[2] 保羅 朗格朗.終身教育引論瞰[M].北京:中國對外翻譯出版公司,1985,

p15~31.

[3] 聯(lián)合國教科文組織.學會生存——教育世界的今天和明天[M].上海:

上海譯文出.

版社,1979,p2.

[4] 張大均。教育心理學[M].北京:人民教育出版社,2005,p68--71.

[5] 靳玉樂.探究教學論[M].重慶:西南師范大學出版社,200l.

作者簡介

鐘實(1986-02)男、民族(漢),籍貫(江西省南昌市),2010畢業(yè)于浙江大學

篇4

關(guān)鍵詞:C# 教學內(nèi)容;教學方法;教學改革

中圖分類號:TP312.1-4

學習計算機程序設(shè)計是提高學生計算機知識和能力水平的重要步驟,C#語言作為當今最為流行的計算機語言之一,其兼顧了Visual Basic和C++的優(yōu)點――即具有Visual Basic語言簡便易學的特點又具有C++語言的強大的功能。因此,正受到越來越多的用戶的喜愛。但事物都是具有兩個方面的,C#既然繼承了C++語言的強大功能,其必然就會存在一定的教學難點。筆者在教學過程中發(fā)現(xiàn),許多學生認為C#與Visual Basic相比而言其概念比較復(fù)雜、使用靈活(雖然其取消了指針的概念)、規(guī)則繁雜、比較容易出錯。這也直接導(dǎo)致了教師的教學和學生學習均感到較為困難。尤其現(xiàn)今,很多學校均將C#語言作為計算機學生入校后的第一門計算機語言類課程,這種現(xiàn)象就顯得成為突出。筆者根據(jù)多年的計算機程序語言方面課程教學的經(jīng)驗,對《C#程序設(shè)計》課程從教學內(nèi)容、教學手段等方面進行研究和創(chuàng)新,取得了一定的教學成果,現(xiàn)對其介紹如下:

1. 教學內(nèi)容的改革

1.1 課堂教學內(nèi)容的改革。以清華大學出版社出版的《C#程序設(shè)計基礎(chǔ)教程與實驗指導(dǎo)》(孫曉非、牛小平、馮冠、李乃文等編著)為例,C#程序設(shè)計的主要內(nèi)容包括:.NET開發(fā)基礎(chǔ)、C#基礎(chǔ)語法、函數(shù)、面向?qū)ο蟮木幊?、?shù)組與集合、處理字符串、處理異常、Windows窗體控件、可視化界面設(shè)計、文件存取、數(shù)據(jù)庫編程、應(yīng)用案例(超市管理系統(tǒng))等十二個部分。一般而言,《C#語言程序設(shè)計》的相關(guān)教材或參考基本以上述內(nèi)容展開。大多數(shù)教材在教學內(nèi)容的上進行了分類的組織,但在講解過程中還是發(fā)現(xiàn)了相關(guān)教學的難點過于集中。雖然一些教材也在滲透著案例教學的方法,然而仍然存在著適用性不強、內(nèi)容的難度跨度過大,使學生感到無從下手,甚至是不知所從。筆者在教學過程中本著“深入淺出、實用為主”的指導(dǎo)思想,在課堂教學的過程中對相關(guān)的教學內(nèi)容進行整合,以使學生能夠更好的領(lǐng)悟計算機語言的實質(zhì)。

在此,筆者認為,計算機程序設(shè)計不論使用什么語言,其本質(zhì)都是模擬人的手工操作。因此,對于《C#程序設(shè)計》而言,其首先并不是要向?qū)W生講解其語法的構(gòu)成,而是要向?qū)W生闡述C#能做什么和應(yīng)該如何去做,這樣才能使學生提升起學習的興趣。如果僅僅是向?qū)W生灌輸C#的各種符號、函數(shù)、文件存儲等方面的知識,就容易使學生陷入到細節(jié)的“大海”,而失去了“航行”的方向。而按照筆者的思路,首先向?qū)W生介紹案例――包括案例背景、要求及人工操作的流程;然后,再向?qū)W生介紹用C#語言開發(fā)的相關(guān)流程;最后向?qū)W生介紹使用C#開發(fā)的具體函數(shù)和文件等相關(guān)的知識。這樣做就比較容易在學生中產(chǎn)生共鳴,使學生更早地了解相關(guān)C#的基礎(chǔ)知識對其有什么樣的作用,也就能更早地喜歡上C#語言了。

另外,在《C#程序設(shè)計》的教學過程中,筆者還認為應(yīng)該更早地向?qū)W生滲透Windows的工作機制。不論是哪種程序設(shè)計語言,其基礎(chǔ)的平臺都是Windows。因此,更好地了解Windows的工作機制對于程序開發(fā)來說是至關(guān)重要的。C#本身“脫胎”于C++,這就更需要對Windows的工作機制進行一定的了解。筆者在學習C++編程時,曾經(jīng)認真聽過孫鑫老師所講的《Visual C++深入詳解》課程。孫老師在此課程中的第一講就是討論的Windows的工作機制,在聽過該課程中,曾經(jīng)使筆者有茅塞頓開的感覺,真真切切的感覺到計算機語言的代碼其實真的“不那么重要”,最重要的是要能夠建立起一種程序設(shè)計的思維和意識。

1.2 實驗教學內(nèi)容的改革。計算機語言程序設(shè)計的主要任務(wù)是要使學生能夠具有分析問題、解決問題;閱讀程序、和設(shè)計程序的能力。同樣C#語言也是一門實踐性非常強的課程。既要求學生能夠看懂程序,又要求其能夠上機對程序進行調(diào)試和修改。當然不同層次的學校,對學生相關(guān)的能力的要求有所不同。就筆者所授課對象而言,首先要求的就是其能夠看得懂別人編寫的程序;其次是能夠?qū)ζ溥M行修改,使其符合自己的需要;最后,也是最高的要求就是能夠?qū)υ谛薷脑绦虻幕A(chǔ)上進行創(chuàng)新。

基于上述的考慮,筆者在實驗教學過程中刻意舍去了一些比較簡單和枯燥的實驗,而是有淺入深地采用了一些學生比較感興趣的實驗。比如,筆者在實驗課的教學過程中引入了用C#語言編寫模擬小球的拋物線運動的程序。通過這個實驗,不僅提升了學生的興趣(高中物理實驗的內(nèi)容),更使學生對計算機圖論方面的知識有了初步的認識。

另外,筆者在實驗教學的過程中,還讓學生編寫了一些具備一定難度的程序――例如冒泡排序和二叉樹等與數(shù)據(jù)結(jié)構(gòu)有關(guān)的程序。雖然,有部分學生對上述程序的編寫感到有一些茫然,但經(jīng)過一定的時間后,大多數(shù)的同學都能夠編寫出能夠完成部分上述功能的程序。更為重要的是,通過這種鍛煉,使同學們領(lǐng)悟到了數(shù)據(jù)庫中所涉及到的排序和查找是如何實現(xiàn)的。

2 教學方法的改革

在《C#程序設(shè)計》的教學過程中,一方面要求教師能夠?qū)⒅R準確、生動的“傳輸”給學生。另一方面,也要求老師更新教學方法,以提高教學質(zhì)量。以下是筆者在幾年的《C#程序設(shè)計》課程的教學中所采取的一些教學方法。

2.1 問題探究教學方法。對于C#程序設(shè)計而言,筆者認為最重要的方面不在于學生對C#語言有多熟,而在于其能否提出問題。也就是為什么要做這個項目、做這個項目的關(guān)鍵是什么、關(guān)鍵的關(guān)鍵是什么。其實不論是程序設(shè)計還是其他的任何事情,能夠提出問題,就將是一個好的開始。

所以,筆者在課堂教學中,一直非常注重問題探究的教學方法,就是要不斷地讓學生提出問題、分析問題和解決問題。

2.2 歸類教學方法。學生畢業(yè)后從事計算機編程工作,其一定會遇到各種類型的編程工作。因此,筆者認為在校期間就應(yīng)當讓學生學會對已經(jīng)接觸過的程序進行分類,找出其共性和不同之處,比較其不同之處發(fā)生和存在的原因。只有這樣,才能使在應(yīng)對將來的工作中不至于“手忙腳亂”。因此,筆者在教學的過程中,經(jīng)常使用歸類的教學方法,使學生更加了解程序的類型,以期不斷提高程序代碼的重用性和程序編寫的效率。

2.3 討論教學法。筆者在《C#程序設(shè)計》的教學過程中發(fā)現(xiàn),許多同學只愿意聽老師講,而不喜歡動腦思考,這也直接限制了學生思維的拓展。筆者始終認為,《C#程序設(shè)計》課程能否學好,其關(guān)鍵因素就是能不能打開思維的窗口。而要打開這個窗口,一個非常關(guān)鍵的因素,就是要讓學生主動參與討論。因此,筆者在教學的過程中一直努力使學生積極、主動地參與到專題討論中來,使C#能夠逐漸的融入到其思維當中去。

2.4 因材施教法。由于不同的學生,所處的環(huán)境和所經(jīng)歷的學習過程均不盡相同。如果一味地按照一定的模式對學生進行課程的講授,勢必會引起學生的反感和教學質(zhì)量的下降。因此,筆者在教學過程中,注重對不同學生采取不同的教學方法,根據(jù)不同學生的興趣特點,引導(dǎo)其進行不同方面的編程研究。

2.5 綜合考評法。衡量學生對《C#程序設(shè)計》課程掌握的好與不好,不能夠只從期未的卷面成績?nèi)胧郑瑧?yīng)該著重看學生會不會答(對學生理論知識掌握的考察)、會不會做(對學生實踐能力的考察)。所以筆者對學生學習成績的評定,采用綜合考核法,將平時的實踐成績與期末卷面成績進行綜合,得出本課程綜合考評分。這種教學法,不但能更客觀地反映學生的學習情況,同時也能促進學生學習,起到很好的教學效果。

3 結(jié)束語

上述的教學內(nèi)容與教學方法的改革是筆者在多年教學過程中總結(jié)出來的,并已經(jīng)將其應(yīng)用于《C#程序設(shè)計》課程的教學中,且取得了一定的效果。當然相同教學方法不可能應(yīng)用到不同類型的學生中去,當然教學方法還需要學生的配合和認可才能取得應(yīng)有的效果。筆者將在今后的教學工作中,繼續(xù)探索《C#程序設(shè)計》課程教學方法的改革,以期使這門課程取得更好的教學效果。

參考文獻

[1]孫曉非.C#程序設(shè)計基礎(chǔ)教程與實驗指導(dǎo)[M].北京:清華大學出版社,2012.

[2]譚浩強.C#項目導(dǎo)向與實訓程序設(shè)計教程[M].北京:清華大學出版社,2010.

[3]陳東.計算機多媒體教學改革的一些嘗試[J].福建師范大學學報(自然版),2004,20(3):98.

篇5

【關(guān)鍵詞】程序設(shè)計課程 教學方案 能力培養(yǎng)

【中圖分類號】G642 【文獻標識碼】A 【文章編號】1006-9682(2012)06-0010-03

程序設(shè)計類課程是計算機科學與技術(shù)及相關(guān)專業(yè)的基礎(chǔ)課程,在計算機專業(yè)課程體系建設(shè)中占有十分重要的地位。目前大部分高校在程序設(shè)計教學中多采用傳統(tǒng)的講授法和系統(tǒng)的學習,同時結(jié)合一些上機實踐操作來鞏固和熟悉課堂上所講的一些知識點,但對于計算機程序設(shè)計課程而言,其特點是更新更快、內(nèi)容多、課時少。所以,在授課內(nèi)容處理上既要講授大量的基礎(chǔ)知識、基本概念,而且還要講授具體的應(yīng)用甚至操作,要讓學生掌握計算機的應(yīng)用能力;既不能拋棄傳統(tǒng)的、經(jīng)典的內(nèi)容,又要介紹當前最新的成果。傳統(tǒng)的系統(tǒng)學習和講授有許多缺點,它偏重知識的灌輸,重理論輕實踐,以教師為中心,以單項講授為主,是式的學習方法,培養(yǎng)出的學生實踐能力不強,不能滿足當前社會對人才的需要。[2~4]教育的目標是培養(yǎng)、提高學生的科學素質(zhì),科學素質(zhì)教育的核心是培養(yǎng)學生的實際動手能力與創(chuàng)新精神。[5]所以,我們提倡把程序設(shè)計課程的重點放在學生的能力培養(yǎng)上,即如何從計算機解決實際問題的角度,以解決實際問題的程序設(shè)計思想作為切入點進行教學,培養(yǎng)學生具有利用軟件開發(fā)環(huán)境解決實際問題的能力。

在上述教學理念的指導(dǎo)之下,為了使程序設(shè)計課程達到上述的目標,提出以下教學方案,包括課程設(shè)置、教學內(nèi)容與教材建設(shè)、教學方法、教學手段等。

一、課程設(shè)置

在課程設(shè)置上,我們應(yīng)采用《程序設(shè)計基礎(chǔ)C++》+可視化開發(fā)環(huán)境介紹的方式,并配備集中課程實踐的方式。通過《程序設(shè)計基礎(chǔ)C++》的學習,學生可以掌握基本的編程技能,但不能具備利用軟件開發(fā)工具進行高級編程的能力,不能滿足社會對計算機專業(yè)學生的編程要求,甚至出現(xiàn)大四畢業(yè)生連一門開發(fā)工具都不掌握的情況。通過這兩門課程的學習,學生能較深入全面地掌握程序設(shè)計的思想和技能,并可以使用軟件開發(fā)工具進行高級編程。

學習程序設(shè)計的目標是利用計算機這個智力工具來分析和解決問題,對現(xiàn)實問題進行建模并編程解決的能力的培養(yǎng)是程序設(shè)計類課程的首要任務(wù)。知識、能力和素養(yǎng)三者具有辯證關(guān)系,一個具有較強能力和良好素養(yǎng)的人,必須掌握豐富的知識。程序設(shè)計基礎(chǔ)領(lǐng)域的知識是由程序設(shè)計的基本概念和程序設(shè)計藝術(shù)(技巧)組成的,要掌握這些基本概念和設(shè)計藝術(shù),必須立足于理性化的學習和理性化的實踐。能力是技能化的知識,是知識的綜合體現(xiàn),程序設(shè)計能力的培養(yǎng)必須通過動手實踐來培養(yǎng),同時程序設(shè)計需要以扎實的理論基礎(chǔ)、學科方法以及思維方法來指導(dǎo)實踐。為此,程序設(shè)計的課程應(yīng)在加強課堂教學的同時,更注重上機實踐環(huán)節(jié),學生通過上課掌握了豐富的知識,通過實踐鍛煉了個人能力,與此同時個人素養(yǎng)也得到提高。[1] 程序設(shè)計基礎(chǔ)C++的語法和語義介紹以及開發(fā)工具的介紹,可以幫助學生掌握基本的程序設(shè)計概念,只有通過兩門課程大量的上機實踐才能幫助學生把所學的理論知識用于解決實際問題,促進學生程序設(shè)計能力的提高。以我校為例,程序設(shè)計基礎(chǔ)共96學時(60學時課堂教學+36學時上機實驗),在大一開設(shè),課程結(jié)束后緊接著是兩周的程序設(shè)計課程設(shè)計。目前該課程實踐教學環(huán)節(jié)由兩部分組成:與課堂教學同步安排的實驗上機和集中安排的課程設(shè)計。實驗上機注重學生理解和消化課堂講授的知識,偏重于如何編寫功能單一的“小”算法,局限于一個或兩個知識點,運用這些知識解決一些具體的算法設(shè)計問題,培養(yǎng)學生的動手能力,并培養(yǎng)良好的程序設(shè)計風格。課程設(shè)計是軟件設(shè)計的綜合訓練,包括問題分析、總體結(jié)構(gòu)設(shè)計、用戶界面設(shè)計、程序設(shè)計基本技能和技巧,多人合作,以至一整套軟件工作規(guī)范的訓練和科學作風的培養(yǎng),對學生的一種全面綜合訓練,是與課堂聽講、自學和練習相輔相成的、必不可少的一個教學環(huán)節(jié)。但是,課程設(shè)計的效果不盡人意,絕大部分同學只是在DOS環(huán)境下實現(xiàn)了一個算法,演示效果缺乏美觀,盡管我們一再要求學生自學可視化開發(fā)工具如Visual C++,但是只有極少數(shù)同學進行這項工作,很多同學反映,看不懂,太難了。所以,根據(jù)實際教學經(jīng)驗,應(yīng)該開設(shè)可視化開發(fā)環(huán)境介紹這門課,幫助學生掌握一門實際的開發(fā)工具。學習完這門課以后,開設(shè)課程設(shè)計,這樣,在課程設(shè)計階段綜合運用所學知識,提高學生用軟件開發(fā)環(huán)境解決實際問題的能力。

二、教學內(nèi)容與教材建設(shè)

教學內(nèi)容的組織與實施是程序設(shè)計課程改革的重要內(nèi)容。教學內(nèi)容在組織上應(yīng)該與時俱進,不與實際的程序設(shè)計發(fā)展脫節(jié),比如,STL(Standard Template Library),即標準模板庫,是一個具有工業(yè)強度的,高效的C++程序庫。它被容納于C++標準程序庫(C++ Standard Library)中,是ANSI/ISO C++標準中最新的也是極具革命性的一部分。應(yīng)該作為程序設(shè)計課程的必不可少的組成部分,程序設(shè)計內(nèi)容體系結(jié)構(gòu)應(yīng)分為三個部分:第一部分簡述程序設(shè)計的基本概念和思想,以C++語言面向語法和語義為背景,講述一般程序設(shè)計語言所具有的基本內(nèi)容:數(shù)據(jù)(類型)、操作、程序控制結(jié)構(gòu)、數(shù)據(jù)控制,這部分內(nèi)容重點介紹如何進行結(jié)構(gòu)化程序設(shè)計及計算機解題的思路和方法,使學生理解算法結(jié)構(gòu)與解題過程,同時掌握程序調(diào)試與測試的初步技術(shù)。第二部分以C++面向?qū)ο髾C制為背景,介紹面向?qū)ο蟮幕靖拍睿侯?、對象、消息、方法、封裝、繼承、多態(tài),使學生初步掌握面向?qū)ο蟪绦蛟O(shè)計開發(fā)技術(shù)的基本方法,為后繼課程打下基礎(chǔ)。第二部分以標準模板庫和Visual C++開發(fā)工具為背景,介紹容器、算法、迭代子、開發(fā)環(huán)境、MFC、視圖等知識,使學生進一步掌握面向?qū)ο蟮某绦蛟O(shè)計方法,以及用高效的工具進行軟件開發(fā)的能力。

教材的質(zhì)量直接影響教學的質(zhì)量,以注重學生的程序設(shè)計思想和能力的培養(yǎng)為指導(dǎo),組織編寫具有特色的、高水平的教材。此外,隨著教育信息化進程的推進,僅提供一本平面紙質(zhì)教材,已無法滿足高校的教學需求。為了教學的需要,我們給學生提供了立體化的教材,主要包括:主教材、學習指導(dǎo)書(實驗和課程設(shè)計指導(dǎo)書)、主要參考書目、電子教案、多媒體課件、習題庫和試題庫等。這些資料,學生都可以通過網(wǎng)站獲得。

三、教學方法

教學方法是程序設(shè)計教學的核心,有了合理的課程設(shè)置和教學內(nèi)容,把程序設(shè)計的知識傳授給學生,這是決定教學成功與否的關(guān)鍵因素。

在目前普遍采用的教育模式中,學生處于一種較單純的接受式學習方式中,學生所學知識,基本上是由教師以定論的形式傳授給學生的,學生不需要進行獨立發(fā)現(xiàn),而只需接受或理解。教師則更多注重知識的傳授,重視教學內(nèi)容的選擇和講授的技巧和方法的研究,而往往不重視對學生的自主學習能力和創(chuàng)新思維的培養(yǎng)。因此,在對傳統(tǒng)教學方法分析的基礎(chǔ)上,繼續(xù)保持傳教法研究的優(yōu)勢,改變以教師為中心的狀況,注重學生多方面的能力和素質(zhì)的培養(yǎng),特別要重視學生思維能力、思維方法和創(chuàng)新能力的培養(yǎng),應(yīng)采用探究式教學方法。

1.采用探究式教學培養(yǎng)學生的創(chuàng)新能力

“探究式教學”,是指教學過程在教師的啟發(fā)誘導(dǎo)下,以學生自主學習和合作討論為基礎(chǔ),為學生提供充分自由表達、質(zhì)疑、探究、討論問題的機會,讓學生通過個人、小組、集體等多種解難釋疑嘗試活動,將所學知識應(yīng)用于解決實際問題的一種教學形式,[6]探究式教學方法通過“探究—創(chuàng)新”的過程,在培養(yǎng)創(chuàng)新型人才上起了明顯的作用,強調(diào)通過在教師引導(dǎo)下的學生自主或合作進行探索而獲得知識,特別適宜于思維能力的鍛煉和自主學習能力和團隊合作精神的培養(yǎng),它在啟發(fā)和培養(yǎng)學生創(chuàng)新能力方面呈現(xiàn)著明顯的優(yōu)點,受到教育學界的重視并得到了逐步推廣。

2.采用案例教學法提高學生的興趣

案例教學法(Case Method),在1870年由哈佛法學院院長藍德爾(C.C.Langdell)首倡,案例教學法已被大學很多專業(yè)及中小學教學廣泛應(yīng)用。它是培養(yǎng)和提高學習者知識能力的一種教學方法,即將已經(jīng)發(fā)生或?qū)砜赡馨l(fā)生的問題作為個案形式讓學習者去分析和研究,并提出各種解決問題的方案,從而提高學習者解決實際問題能力的一種教學方法。案例教學法是一種啟發(fā)學生研究實際問題,注重學生智力開發(fā)及能力培養(yǎng)的現(xiàn)代教學方法,它有著傳統(tǒng)教學方法所不具備的特殊功能。和傳統(tǒng)的“滿堂灌”、“注入式”教學法相比,案例教學側(cè)重實踐和案例的講解分析,啟迪學生積極思維,強調(diào)在教學過程中學生主動參與,引導(dǎo)學生動用科學的理論知識,去分析、歸納、演繹、推理、總結(jié),從而達到鞏固知識的目的。案例教學的實施一般包括三個步驟,案例的選擇,作為教師可以選擇一些經(jīng)典案例課題,如程序設(shè)計課程中的“學生管理系統(tǒng)”案例,接下來是案例教學的開展。案例教學的一般流程是教師介紹案例背景給出任務(wù)目標,學生開展現(xiàn)場討論提出初步意見,之后就是在教師的指導(dǎo)下不斷討論與實踐直至最終完成任務(wù)目標。案例教學的最后一步是評價,對學生提交的案例實施報告和案例解決方案根據(jù)案例任務(wù)目標進行評價,這里案例的評價通常由教師與學生共同完成,讓學生介入評價更有利于加強學生對案例的認識提高案例教學效果。古語云:“授人以魚,三餐之需;授人以漁,終生之用。”在案例選擇及實施階段強調(diào)學生的自學能力是非常有必要的。那么如何做到這點呢?首先逐步削弱學生對老師的依賴,即老師不再是學生學習知識的唯一途徑,告知學生如何提高各種途徑獲得解決問題的方法是一種很有效的手段。在課堂中經(jīng)常告知學生獲取知識的三種途徑:互聯(lián)網(wǎng)、書籍或者編程軟件的幫助文檔、他人。其次是對學生獨立解決的任何問題給予鼓勵及肯定,這必將進一步促進其獨立解決問題的興趣。最后是在案例中刻意制造一些未學習過的問題,促使學生必須通過各種途徑找到解決方法。[7~8]

3.采用任務(wù)驅(qū)動式教學法增強學生的綜合能力

任務(wù)驅(qū)動教學法是一種建立在建構(gòu)主義教學理論基礎(chǔ)上的教學法。所謂任務(wù)驅(qū)動教學法,就是讓學生在一個典型的信息處理“任務(wù)”的驅(qū)動下,展開教學活動,引導(dǎo)學生由簡到繁、由易到難、循序漸進地完成一系列“任務(wù)”,從而得到清晰的思路、方法和知識的脈絡(luò),在完成“任務(wù)”的過程中,培養(yǎng)分析問題、解決問題以及用計算機處理信息的能力,為學生創(chuàng)造良好的學習環(huán)境,讓學生通過努力,能順利完成每個具體的任務(wù),掌握學習內(nèi)容,獲得成功的體驗。任務(wù)驅(qū)動式教學在形式上是:提出任務(wù)師生共同分析完成任務(wù)的方法和步驟適當講解或自學或協(xié)作學習完成任務(wù)實踐歸納和研討。比如我們在上運算符重載時,在沒進入主題以前,先給學生布置一個任務(wù),實現(xiàn)兩個復(fù)數(shù)的運算,可能學生會用以前的知識完成任務(wù),也有的學生可能會有比較超前的想法,然后通過研討的方式對問題進行分析并提出解決方案,最終完成任務(wù),學生在完成任務(wù)的同時既學會了運用以前的知識點分析解決問題,又學會了運算符重載這一知識點。采用任務(wù)驅(qū)動教學法進行教學,教師的教和學生的學都是圍繞如何完成一個具體的任務(wù)進行。教師教學思路清晰,學生學習目的明確,學習變成了學生的主動行為,可以充分調(diào)動學生的主觀能動性,在用的需求下學,學以致用,更容易掌握學習內(nèi)容,增強學生的綜合能力。[1、7]

四、教學手段

在教學手段上,采用多媒體(黑板輔助)+實驗室環(huán)境+網(wǎng)絡(luò)課堂的方式。多媒體教學已經(jīng)是一種非常重要的教學手段,但單純使用多媒體進行教學,老師的即興發(fā)揮以及與學生的交互將受到限制,所以,我們采用黑板進行輔助的方式。對于識記性的內(nèi)容可以通過多媒體展示,對于理解性的內(nèi)容,為了理清學生的思路則通過黑板給學生講解。此外,對于一些例題,我們采用在集成開發(fā)環(huán)境下進行現(xiàn)場調(diào)試和制作例題的多媒體動態(tài)演示課件等方法來加深學生的理解。當前,程序設(shè)計的課堂教學一般在教室里采用“計算機+大屏幕投影”的方式,實驗課在實驗室環(huán)境下人手一機練習。該模式缺點是理論與實踐相脫節(jié)、以教師為中心、束縛學生的思維,最終直接影響到教學效果。[9]在實驗室環(huán)境下,老師講課時,鎖住所有的機器,使學生機和教師機保持同步,在學生練習時,再給機器解鎖,讓學生自由練習,通過這種方式,邊講邊練,可以通過實際動手編程加深對新知識的理解。為了使所有的教學資源能被有效地利用,要建立一個網(wǎng)絡(luò)輔助教學環(huán)境,即建立程序設(shè)計網(wǎng)絡(luò)課堂,將現(xiàn)實教學中的課堂教授、作業(yè)、答疑、測試、課程設(shè)計、討論等全部在網(wǎng)絡(luò)課堂中予以實現(xiàn),提供課程的教學大綱、教學日歷、參考資料等。這樣,為學生提供了一個很好的學習氛圍。學生可以進入程序設(shè)計網(wǎng)絡(luò)課堂進行在線學習、在線討論和答疑、在線測試等。

五、結(jié)束語

總之,程序設(shè)計是計算機專業(yè)的核心課程,合理的課程內(nèi)容設(shè)置配以科學的教學方法,充分利用科技發(fā)展帶來的教學方式的革新,定能促進學生能力的提高,但是,還有很多方面有待進一步摸索。

參考文獻

1 楊靜、王浩、胡學鋼、方寶富、張晶.程序設(shè)計課程教學改革探討[J].吉林大學學報(信息科學版),2005(S2)

2詹自勝.案例教學法在計算機程序設(shè)計教學中探索與實踐. 省略/lunwen/2008/200811/270935.shtml

3 方寶富、王浩、胡學鋼.機器人足球賽程序設(shè)計教學研究——大學生創(chuàng)新能力培養(yǎng)實踐第七屆全國計算機系主任論壇論文集[C].北京:清華大學出版社,2004

4 何炎祥、伍春香.現(xiàn)代教學理論指導(dǎo)下的“編譯原理”教學綜合改革[J].計算機教育,2005(3)

5 劉傳平.《C++語言程序設(shè)計》課程教學改革的探討[J].中國科技信息,2005(11)

6 戴挺、童蔚蘋.探究式教學法在計算機程序設(shè)計教學中的應(yīng)用[J].電氣電子教學學報,2005(4)

7 崔艷莉、張敏、王重英.淺談“案例+任務(wù)”驅(qū)動教學法在VB程序設(shè)計語言教學中的應(yīng)用[J].中國農(nóng)業(yè)銀行武漢培訓學院學報,2009(1)

篇6

關(guān)鍵詞:C#程序設(shè)計;迭代;項目驅(qū)動

中圖分類號:TP393.092

C#程序設(shè)計課程是計算機專業(yè)的一門重要的專業(yè)基礎(chǔ)課,課程要求學生能夠熟練運用面向?qū)ο蟪绦蛟O(shè)計的各類方法,實現(xiàn)開發(fā)實際運用的各種應(yīng)用程序。但是在面向?qū)ο蟾拍詈退枷氲膶W習,對于學生是一個十分抽象的知識學習,很多學校在該問題的課堂講授中,也采用了大量的例子來灌輸該部分的學習,但是大部分效果都不理想。為此,能否采用軟件開發(fā)中經(jīng)常使用迭代式開發(fā)[1]作為課堂教學改革的方法,將一個大案例分解若干個功能,按照知識的學習進度,不斷使用新知識來迭代設(shè)計每個功能,從而使學生能在實際項目實踐動手能力上進行融會貫通。

1 迭代法教學方法概述

在數(shù)學上為了求解方程不斷重復(fù)某一過程,利用不同結(jié)果作為初值的方法叫迭代。當今的計算機軟件開發(fā)中引用了該方法,將一個任務(wù)分為若干個功能,采用多次重復(fù)開發(fā),每次增加功能模塊開發(fā)。在由簡到繁的迭代過程中,實現(xiàn)系統(tǒng)的各個功能的實現(xiàn)。

在程序設(shè)計教學中,可以采用軟件開發(fā)[2]中的這種迭代開發(fā)方法,以任務(wù)驅(qū)動進行組織教學,將任務(wù)分解為相關(guān)聯(lián)的獨立功能,由淺到深、由易到難地進行知識點的貫穿和螺旋上升的教學,最終實現(xiàn)教學的知識目標[3]和教學任務(wù)。在這種迭代項目的學習中,學生不僅能夠不斷地鞏固程序設(shè)計的基礎(chǔ)知識,同時也能夠設(shè)計出功能完整的系統(tǒng),學生的積極性和實際動手能力能夠得到很好地提升,并有助于實現(xiàn)課堂到企業(yè)的無縫對接。

2 迭代法在教學中的運用

2.1 迭代教學的設(shè)計

通過分析現(xiàn)有C#程序設(shè)計課程內(nèi)容,我們細化了實驗教學的方式和內(nèi)容。整個實驗教學過程中,我們采用兩個原則作為實驗教學主線。

(1)教學內(nèi)容迭代貫穿始終。將關(guān)聯(lián)的知識系統(tǒng)化,把實驗任務(wù)及內(nèi)容采用迭代的方式依次分解之各個實驗中,使學生能夠從淺入深、從易到難地完成。我們?nèi)滩捎糜嬎闫骱蛯W生信息管理系統(tǒng)兩個不同角度的案例進行知識的分解和迭代,把系統(tǒng)功能分階段在各次實驗中迭代完成,把其具體實現(xiàn)的功能也采用新的知識迭代實現(xiàn)。

(2)任務(wù)驅(qū)動方式教學。每次項目的分解,均采用任務(wù)驅(qū)動式教學,明確任務(wù)需求,并講解任務(wù)實現(xiàn)所需關(guān)鍵知識。學生按照規(guī)范的軟件開發(fā)過程進行實現(xiàn),并提交任務(wù)清單及實現(xiàn)代碼。任課教師會將學生優(yōu)秀作品在下一次的講授中進行展示和點評。

2.2 迭代教學實施

依據(jù)C#程序設(shè)計課程的教學目標,本文以學生最難理解的面向?qū)ο蟮念惙庋b及繼承的教學為例,選取“計算器”作為迭代式項目教學法的程序設(shè)計項目,來說明該課程教學中迭代教學法的具體實施過程。

計算器軟件實現(xiàn)模擬Windows計算器功能,系統(tǒng)功能分解為算術(shù)運算、公式計算、科學計算、進制計算四大功能任務(wù),四個功能均可采用迭代式教學法進行教學。為了實現(xiàn)類的封裝、類的繼承教學目標,下面就以算術(shù)運算的實現(xiàn)解釋迭代式教學過程。

(1)第一次迭代。該環(huán)節(jié)教學圍繞著掌握基本的C#語言基本結(jié)構(gòu),熟練運用各種運算符、表達式以及常用流程控制語句使用,注重培養(yǎng)學生分析問題、解決問題的能力。因此,第一次迭代的教學內(nèi)容為使用C#語言的基本控制語句設(shè)計簡單計算器的算術(shù)運算功能,能夠現(xiàn)輸入兩個數(shù)和運算符號得出結(jié)果。涉及知識點主要包括輸入輸出語句的使用,if選擇結(jié)構(gòu)的使用及f語句嵌套使用的程序設(shè)計基礎(chǔ)。

(2)第二次迭代。該環(huán)節(jié)教學圍繞著學習C#語言的控制結(jié)構(gòu)的應(yīng)用技巧,學習運用程序結(jié)構(gòu)的調(diào)整來提升程序的執(zhí)行效率,并讓學生養(yǎng)成程序的行業(yè)命名規(guī)則和程序代碼的編寫規(guī)范。為此,第二次迭代具體的教學主要采用功能上增加和調(diào)整、代碼上進行編碼規(guī)范修改。

功能上進行了修改和新增內(nèi)容主要為:將原使用if時,出現(xiàn)每個條件都要做判斷的多次無用執(zhí)行過程進行修改,改為switch判斷分支;新增異常處理try―catch語句,解決數(shù)據(jù)輸入有效性判斷處理,比如增加用戶輸入的是字符符號而不是數(shù)字、用戶輸入除數(shù)為0等情況。代碼的編寫規(guī)范內(nèi)容主要為:規(guī)范變量名、代碼縮進、注釋的使用及其它命名規(guī)范的使用。

(3)第三次迭代。該環(huán)節(jié)教學圍繞著掌握基本的C#語言基本結(jié)構(gòu),熟練運用各種運算符、表達式以及常用流程控制語句使用,注重培養(yǎng)學生分析問題、解決問題的能力,養(yǎng)成良好的編程規(guī)范。為了解決代碼耦合度過高,重復(fù)率高的問題,實現(xiàn)可復(fù)用、可擴展的程序設(shè)計思想,需要將業(yè)務(wù)邏輯與界面邏輯分開。涉及知識點主要為:類的建立,類的封裝及使用等。從而將運算過程單獨提取出來,從而實現(xiàn)易復(fù)用。

(4)第四次迭代。使用類的繼承知識,把加減乘除等運算分離,修改其中一個不影響另外的幾個,增加運算算法也不影響其它代碼。首先定義一個運算類,它有兩個Number屬性,主要用于計算器的前后數(shù);然后有一個虛方法GetResult(),用于得到結(jié)果;然后把加減乘除都寫成了運算類的子類,繼承它后,重寫了GetResult()方法。這樣如果要修改任何一個算法,都不需要提供其它算法的代碼了。整個程序?qū)㈩惖睦^承、類的虛方法的使用、方法的重寫等知識點的靈活融合起來。

(5)第五次迭代。在本次迭代過程中,使用簡單工廠的設(shè)計模式來重新整合程序,用一個單獨的類來做這個創(chuàng)造實例的過程,從而解決讓計算器精確實例化各種對象的問題。這樣,不管是控制臺程序、Windows程序、Web程序,PDA或手機程序,都可以用統(tǒng)一代碼來實現(xiàn)計算器的功能。實現(xiàn)了面向?qū)ο蟮目蓮?fù)用及可維護的特性。

3 結(jié)束語

C#程序設(shè)計引入迭代式教學方法后,內(nèi)容緊緊圍繞著項目的迭代案例開發(fā)逐步展開,每一個迭代不僅使學生復(fù)習以前掌握的知識點,而且使學生在不斷開發(fā)新功能過程中激發(fā)了其求知欲和創(chuàng)新意識。學生的程序設(shè)計能力均得到了大幅提高,不僅基礎(chǔ)技能扎實,而且掌握了理論和實踐相輔相成的學習方法和技巧。

教學實踐證明,迭代式項目教學能夠有效激發(fā)學生的學習興趣,調(diào)動學生的學習積極性,潛移默化地滋養(yǎng)了學生的編程邏輯思維,有效提高學生學習效果。使學生的學習、技術(shù)和設(shè)計方法循序漸進、環(huán)環(huán)相扣,形成了一條合理的認知鏈。同時對后繼課程包括整個專業(yè)課程的學習都產(chǎn)生了非常重要的影響。

參考文獻:

[1]王艷娟,崔敏,宋建敏.案例式教學在 動態(tài)網(wǎng)頁設(shè)計中的應(yīng)用[J].科技創(chuàng)新導(dǎo)報,2009(14).

[2]曾愛民,蔣麗波,于順達.采用項目教學法培養(yǎng)學生職業(yè)能力的研究與實踐[J].職業(yè)技術(shù),2009(09):37.

[3]蔣慶斌,徐國慶.基于工作任務(wù)的職業(yè)教育項目課程研究[J].職業(yè)技術(shù)教育,2005(22):46-50.

[4]王艷娟,崔敏,宋建敏.案例式教學在動態(tài)網(wǎng)頁設(shè)計中的應(yīng)用[J].科技創(chuàng)新導(dǎo)報,2009(14).

篇7

【關(guān)鍵詞】C++程序設(shè)計 分層教學

【中圖分類號】G642 【文獻標識碼】A 【文章編號】1674-4810(2014)21-0084-02

C++程序設(shè)計是計算機專業(yè)的理論、實踐性都很強的專業(yè)基礎(chǔ)課,是陜西職業(yè)技術(shù)學院計算機科學系大一新生進入編程世界的入門課,它語法豐富、算法靈活,不僅要掌握基本語法語句的使用,還要掌握編程的技巧,除結(jié)構(gòu)化程序設(shè)計的方法還有面向?qū)ο蟮脑O(shè)計思想和技巧等,是新生眼中難學的課和教師眼中難教的課,提高其教學效果一直是C++課程教師的追求目標。

傳統(tǒng)教學模式下,基礎(chǔ)好、能力強的學生“吃不夠”,而基礎(chǔ)差、能力弱的學生“吃不消”的現(xiàn)象普遍存在,尤其隨著高校的擴招、職業(yè)院校數(shù)量的增加及辦學規(guī)模的擴大,高職學生的整體素質(zhì)呈下降趨勢。而且學生來源多元化,既有普通高中中下水平的學生,又有職業(yè)高中的學生和中考后錄取的五年制學生。學生水平參差不齊,差異程度加大,這些差異主要表現(xiàn)在學生文化知識的基礎(chǔ)上、學生學習能力、學習習慣、行為與心理等多個方面上,傳統(tǒng)的教學方法已不適應(yīng)當前教學的需要。面對學生個體差異的客觀存在,如何使全體學生C++程序設(shè)計課程的學習水平普遍有所提高,提高該課程的整體教學效果,是該課程老師研究的重要課題。

學生的學習能力、知識水平、接受能力等素質(zhì)直接影響著C++課程的教學質(zhì)量,此外,學生對知識的內(nèi)在需求也存在層次上的差別,對該課程推行分層教學很有必要。

一 分層教學概述

分層教學是因材施教教育思想的具體體現(xiàn),是指教師要在尊重個體差異、需求的基礎(chǔ)上,根據(jù)學生的知識基礎(chǔ)、智力水平、學習能力、興趣等因素,設(shè)計不同的教學目標、制訂教學內(nèi)容、確定教學方法,有針對性地對不同類型的學生進行學習指導(dǎo),激發(fā)每個學生的潛質(zhì)和能力,使每個學生都能學有所獲。

二 分層教學的實施

1.學生分層

實施分層教學首先要將學生進行分層,分層方法的合理與否是決定分層教學效果的關(guān)鍵。老師在實際執(zhí)行過程中,應(yīng)充分了解、研究學生,根據(jù)學生的基礎(chǔ)情況、學習能力、學習態(tài)度、操作能力等差異,可將班中學生分為A、B、C三個層次:A層為優(yōu)秀層,該層學生的基礎(chǔ)知識好,學習能力、操作能力強,有很強的求知欲,思維活躍,對編程興趣濃厚,有很強的學習自覺性;B層為中等層,該層學生基礎(chǔ)知識一般,有一定的學習興趣,能理解老師講授內(nèi)容,實踐操作能力較A層學生差,學習較自覺;C層為欠缺層,該層學生基礎(chǔ)知識掌握差,基本無學習興趣,學習不認真,學習能力、實踐操作能力差,學習積極性不高。值得一提的是,對學生進行分層是任課老師自己的內(nèi)在行為,老師自己心中有數(shù)即可,這樣做就不會傷害學生們的自尊心。此外,層次的劃分可動態(tài)調(diào)整,這是因為學生的可塑性較強,應(yīng)根據(jù)學生的學習情況不斷調(diào)整分層,以保護學生的學習積極性,提高教學效果。

2.教學目標分層

在對學生分層的基礎(chǔ)上,以面向各層學生為原則,根據(jù)課程標準、教材的知識結(jié)構(gòu)、各層次學生的認知能力,將知識能力、思想方法融為一體,合理地制訂各層學生的教學目標,再將層次目標貫穿于教學的各個環(huán)節(jié)。最終目標是使每個學生的學習潛能都能得到發(fā)揮,盡可能地取得更大收獲和進步。

3.課堂教學分層

在課堂教學中,老師針對不同層次的學生開展不同的教學活動,按照由淺入深、由易到難的原則及具體的教學內(nèi)容和目標,不斷變換教學方法,運用啟發(fā)式、探究式、討論式、多媒體課件輔助教學、網(wǎng)絡(luò)平臺教學等,激發(fā)學生學習的興趣,使每層的學生只要努力,在每節(jié)課上都能學有所獲,激發(fā)各層次學生進一步學習和探索的欲望。

4.實訓內(nèi)容分層

根據(jù)不同層次的學生及實訓內(nèi)容的難易程度,對實訓內(nèi)容進行分層,有助于大面積提高教學質(zhì)量。具體分層如下:基礎(chǔ)驗證性實訓:主要使學生及時牢固掌握C++的語法、語句要素、基本算法等基本知識點,重點是基礎(chǔ)知識的掌握,是針對基礎(chǔ)知識訓練學生的基本技能,屬于知識的直接運用,是全體學生的必做題,要求學生在課堂上獨立完成。較簡單的綜合性實訓:主要以B層學生能達到的水平為準,通常是在一章內(nèi)容的基礎(chǔ)性實訓的基礎(chǔ)上,對指定的實訓內(nèi)容附加一些思考題讓學生去實現(xiàn)。如在學完控制語句后,要求學生實現(xiàn)2012年的工信部舉辦的藍橋杯軟件設(shè)計大賽決賽真題:素數(shù)就是不能再進行等分的整數(shù)。比如:7,11。而9不是素數(shù),因它可以平分為3等份。一般認為最小的素數(shù)是2,接著是3,5,……請問,第100002(十萬零二)個素數(shù)是多少?綜合性或探索性實訓:主要面向A層學生,它常覆蓋多個章節(jié)的知識點,重在考查學生運用所學知識解決問題的能力,突出學生分析問題、解決問題思路的培養(yǎng)。在學生完成課程標準基本要求的基礎(chǔ)上,可適當增加一些拔高的內(nèi)容,如藍橋杯軟件大賽的題目或ACM中的題目,以培養(yǎng)這些學生的創(chuàng)新能力及解決實際問題的能力。如在學完結(jié)構(gòu)體、函數(shù)、數(shù)組、經(jīng)典的排序算法后,讓學生試著完成一個綜合性的題目:在選美比賽的現(xiàn)場,有一批選手參加比賽,比賽的規(guī)則是最后得分越高,名次越低。當比賽結(jié)束時,要在現(xiàn)場按照選手的出場順序宣布最后得分和最后名次,獲得相同分數(shù)的選手具有相同的名次,名次連續(xù)編號,不考慮同名次的選手人數(shù):如選手序號為:1,2,3,4,5,6,7,選手得分為:5,3,4,7,3,5,6,則輸出名次為:3,1,2,5,1,3,4,請編程幫助大賽組委會完成比賽的評分和排名工作。此外,教師應(yīng)對那些能積極思考、正確完成選做題的學生及時給予肯定的眼神或由衷的微笑或贊許,這將給他們帶來極大的鼓勵,有助于提高其學習積極性。

5.輔導(dǎo)分層

在進行學習內(nèi)容、方法輔導(dǎo)時,實行因人而異。對C層學生加強檢查督促,進行面對面地指正、演示,也可讓A、B層學生參與對該層學生的輔導(dǎo);對B層學生著重進行啟發(fā)、提示,也可讓A層學生參與對該層學生的輔導(dǎo);對A層學生進行知識拓展、提高性輔導(dǎo),主要引導(dǎo)其進行自主地解決問題。

三 成效

分層教學尊重個性差異,強調(diào)以學生為中心,充分調(diào)動了各層次學生的學習積極性、主動性,這樣不僅提高了該課程的教學效果,而且近三年來學生參與系上舉辦的軟件設(shè)計競賽及藍橋杯軟件設(shè)計大賽的積極性及成績都得到明顯提高,值得其他專業(yè)課程借鑒。

四 結(jié)束語

從高職教育人才培養(yǎng)的目標、生源質(zhì)量現(xiàn)狀及教學中存在的現(xiàn)實問題,在C++程序設(shè)計課程中實行分層教學,它體現(xiàn)了因材施教的原則,是面向全體學生的學習要求,調(diào)動了學生學習的積極性、減輕了心理壓力,是全面提高教育教學質(zhì)量、增強學生就業(yè)競爭力的有效途徑。當然,分層教學在具體的實施過程中還面臨各種問題、阻礙,有待在以后的工作中進一步進行探索和實踐。

篇8

關(guān)鍵詞:程序設(shè)計;教學方法;教學手段

中圖分類號:G642 文獻標識碼:B

“C語言程序設(shè)計”作為一門公共基礎(chǔ)課程,是高校理工科非計算機專業(yè)學生的一門必修課程。通過該課程的學習,學生不僅要掌握C程序設(shè)計語言的知識,更重要的是要學會分析問題的方法,提高解決基本問題的能力和程序語言的應(yīng)用能力,并為今后的繼續(xù)學習打下良好的基礎(chǔ)。

由于“C語言程序設(shè)計”這門課程的實踐性較強,必須通過大量的編程訓練,才能逐步理解和掌握程序設(shè)計的思想和方法,因此,怎樣激發(fā)學生自主學習的興趣,培養(yǎng)學生的實際編程能力是這門課教學改革應(yīng)解決的問題。

1教材適合教師的“教”和學生的“學”

教學有兩個方面,一個是教師的“教”,另一個是學生的“學”?!敖獭笔菫榱藢W生能獨立地去“學”,就像葉圣陶先生說的那樣:教,是為了最后達到不需要教。教師不僅要研究怎么教,更重要的是要研究學生怎么學。教師備課一定是要“背”學生的,首先要看學生的基礎(chǔ)是什么?學生要達到的目標是什么?其評價的標準也是以學生能夠掌握為評判標準。

其實,學生都想學好“C語言程序設(shè)計”這門課,也想掌握一門真本領(lǐng)到社會上去競爭。但很多學生一遇到問題就退縮了,不愿意費太大的力氣,而這門課恰恰又是需要通過大量練習才能入門的一門課。

感謝由譚浩強教授編著的《C 程序設(shè)計》這本書,為教師進行該課程的教學改革提供了一個很好的平臺。該書不僅將復(fù)雜問題簡單化了,而且可使教師根據(jù)不同程度的學生對內(nèi)容進行取舍而不影響整個程序設(shè)計的思想和方法。該書符合學生的任知規(guī)律,將學習的每一個臺階變“矮”,并能夠使人理性認識C語言。

我們在教學中考慮到學生學習的難度,分解講解,從而使學生克服了畏難心理,覺得C語言并不難學。有些課上沒有講到的內(nèi)容,學生也可利用教材自學。同時,根據(jù)該教材,我們制作了適合學生自學的助學系統(tǒng)??紤]到學生基礎(chǔ)的差異,我們結(jié)合教材,編寫了《C語言程序設(shè)計上機指導(dǎo)》,從而給學生提供了一個自主學習的平臺,受到學生們的好評。

2培養(yǎng)學生的抽象思維能力

在進行“C語言程序設(shè)計”的教學改革中,我們思考了這樣的問題:如果教師只是鉆研教材,并讓學生理解、記住其結(jié)果,那么,學生就會失去獨立鉆研和獲取新知識的能力;每個學習“C語言程序設(shè)計”的學生將來未必都從事計算機編程;因此,我們把砥礪學生的抽象思維能力作為了改革“C語言程序設(shè)計”教學的方法之一。

首先,我們根據(jù)“C語言程序設(shè)計”這門課的特點,研究了譚浩強教授編著的《C程序設(shè)計》這本書是怎樣引導(dǎo)學生完成抽象的認知過程并逐步提升的;怎樣通過簡單的舉例和進一步的講解,使學生理解抽象的數(shù)據(jù)類型、函數(shù)以及指針在構(gòu)造抽象程序中的意義;并將研究成果應(yīng)用在教學中,從而使學生學會算法抽象的基本方法,掌握程序抽象的思考方法。

實踐中,我們采用程序設(shè)計和語言講解并行的方法。首先提出用程序要解決的一個問題,找出解決問題的方法,講解要引入的新的語法知識,給出算法并解釋,最后編寫出完整的程序,再上機實踐。

3激發(fā)學生的學習興趣,培養(yǎng)學生解決實際問題的能力

教學與科研在研究目的等很多方面一樣,其本質(zhì)都是為了實際應(yīng)用,并且科研的有些方法也同樣適用于教學研究,因此,如何強調(diào)實踐教學都不為過,并把培養(yǎng)學生解決實際問題的能力作為“C語言程序設(shè)計”教學改革追求的主要目標,這也與譚浩強教授編著的《C程序設(shè)計》這本書的初衷相一致。至于采用哪種方法好,筆者認為,主要看是否適合學生。在這個問題上,只有適合不適合,而沒有好壞之分。

對于所要解決的問題,首先引導(dǎo)學生仔細進行分析、對各功能模塊進行抽象描述、畫出解決方案的流程圖、討論并修改算法、最后再進行編程、調(diào)試,并得出正確結(jié)論,這是培養(yǎng)學生創(chuàng)造性地解決實際問題能力的必由之路。我們在教授“C語言程序設(shè)計”這門課開始時,就把本學期要做一個實用作品、期末要進行上機編程考試、作品及上機考試占期末成績的比例、要求寫實驗報告等信息告知給學生,并在期中將所要做的內(nèi)容確定下來。有的是老師指定內(nèi)容,有的是讓學生自己選題。有的教師采取一對一輔導(dǎo),有的分成小組讓學生討論,教師在適當?shù)臅r候給予指導(dǎo)。對于做得比較好的同學及時給予表揚,并讓學生將思路講給教師聽;同時要求寫出詳細的注釋,并在小組或班上講解。這樣做,可使部分學生的編程能力明顯提高,并帶動了很多同學積極參與討論,激發(fā)了同學們編程的熱情,課上和課下都有學生在討論編程的事,班里出現(xiàn)了良好的學習編程的氛圍。

但是,我們清楚地認識到:要普遍提高學生的實際編程能力目前還存在著很大的困難。教師在有限的學時內(nèi)不僅要完成授課計劃,還要利用很多的課余時間完成類似于課程設(shè)計的作品輔導(dǎo),教師在肩負科研和教學雙重任務(wù),所教學生多的情況下,也只是盡力而為。因此,在實際實施的過程中,采取“先讓少部分人富起來”的做法,教師對部分編程愛好者多進行輔導(dǎo),讓好一點的學生去幫助其他同學。雖然取得了一定的效果,但距離我們良好的愿望還相差很遠,需要我們在今后的教學中不斷地探索,找出普遍提高學生實際編程能力更好的方法。

4 “C語言程序設(shè)計”的教學改革

C++是從C語言發(fā)展演變而來的一種面向?qū)ο蟮某绦蛟O(shè)計語言,其主要特點表現(xiàn)在全面兼容C,并且支持面向?qū)ο蟮姆椒?。目?C++程序設(shè)計語言已經(jīng)成為應(yīng)用最廣泛的面向?qū)ο蟮某绦蛟O(shè)計語言之一,全國計算機等級考試(二級)也已把它作為主要考查的語種之一。很多學生考慮到就業(yè),也希望我們開設(shè)這門課。鑒于上述等原因,我們從教學改革的角度出發(fā),在我校部分班級開設(shè)C++程序設(shè)計課程,先在部分班級試點,待積累一定的經(jīng)驗,時機成熟時再向全院推進。

“程序設(shè)計方法是不可選擇或不可抗拒的時代潮流,只能在應(yīng)用中領(lǐng)悟和熟悉,算法則需要比較深入的理論知識,必須經(jīng)過嚴格的科學訓練?!?我們在教學實踐中,本著一個原則:不論是C程序設(shè)計還是C++程序設(shè)計,均把培養(yǎng)學生的實際編程能力作為教學目標。對于非計算機專業(yè)的在校大學生來說,學習C++程序設(shè)計是為了讓學生了解面向?qū)ο蟪绦蛟O(shè)計方法,能夠利用C++編寫較大并相對簡單的程序,為以后進一步的學習和應(yīng)用打下良好的基礎(chǔ)。

通過對所教學生進行實事求是的分析和估計,我們選用了譚浩強教授編著的《C ++程序設(shè)計》作為教材。之所以選用這本教材,主要還是想用容易理解的方法講清楚有關(guān)的基本概念和基本方法。該教材前7章的內(nèi)容是C++從C語言繼承來的部分。由于教師都是初上該門課,感到完成整個教材,課時有些緊張,如果再加上實用作品設(shè)計,學生負擔會太重。因此,我們在教學上著力于使學生對C++的全貌和作用有基本的認識,而不是注重語法中的細節(jié),同時引導(dǎo)學生閱讀實用程序,指導(dǎo)學生在學完課程后,編寫完成一個較大的應(yīng)用程序。

5結(jié)束語

“C語言程序設(shè)計”的教學改革是一項長期的任務(wù),無論怎樣改,都要從學生的實際出發(fā),發(fā)揮教師的主導(dǎo)作用,調(diào)動學生學習的積極性,使學生有收獲。教學千古事,得失寸心知。在今后的教學實踐中我們還要不斷地完善教學內(nèi)容和方法,做到既有“法”而又無“定法”,真正提高教學質(zhì)量。

參考文獻:

篇9

[關(guān)鍵詞]C語言 程序設(shè)計 實踐教學

一、前言

上個世紀70年代以來,C語言在以其目標代碼質(zhì)量高,使用靈活,數(shù)據(jù)類型豐富,可移植性好等特點而得到廣泛的普及和迅速發(fā)展,成為一種在系統(tǒng)軟件開發(fā)、科學計算、自動控制等各個領(lǐng)域廣泛應(yīng)用的程序設(shè)計語言。在眾多高級程序設(shè)計語言競顯風流的當今社會,C語言以其強大的功能仍在高級程序設(shè)計領(lǐng)域占據(jù)著重要的地位。

C語言作為計算機類專業(yè)的一門專業(yè)課,是學生學習程序設(shè)計的開端,學生分析問題、解決問題的能力和程序設(shè)計過程理念的形成都與C語言有著密切的聯(lián)系。C語言有著其它高級程序設(shè)計語言不可比擬的優(yōu)點,同時也有其較難學習的一面。由于現(xiàn)行教學過程中存在著一些弊端和學生自身因素的原因,所以在學習中普遍反映“難學”、“不懂“,這也是學生普遍遇到的問題。

二、現(xiàn)行教學和學習中存在的問題

1.現(xiàn)行教學中理論課與實踐課完全分離,不能相互促進。理論課中往往只注重對教材知識的分析和灌輸,在廣度上對知識沒有拓展和延伸,必定會影響對知識深度的剖析,也會造成學生理解的困難。而實踐課程通常被放到了次要的地位,很多時候是在走形式:一方面,學生對知識一知半解、往往用上網(wǎng)來對付實踐課;另一方面,老師很難監(jiān)控到每個學生,了解他們是否都在認真編寫、調(diào)試程序。這就造成理論課沒有起到為實踐課打基礎(chǔ)的作用,實踐課也沒有起到鞏固、應(yīng)用理論課的作用。

2.學生對計算機基礎(chǔ)的學習不深入,嚴重影響了C語言的學習。因為C語言程序設(shè)計課程的延續(xù)性和拓展性非常的強,包含了算法、數(shù)據(jù)結(jié)構(gòu)、計算機基礎(chǔ)等相關(guān)專業(yè)課程和基礎(chǔ)課程的課程的知識。在C語言教學中涉及到進制轉(zhuǎn)換、取值范圍和順序存儲等基礎(chǔ)知識時,發(fā)現(xiàn)很多學生還沒掌握這些基礎(chǔ)知識,甚至根本不理解。在這樣薄弱的基礎(chǔ)上,C語言教學很難順利進行。

3.學生在學習中處于被動的接受知識的地位,沒有機會主動參與到學習中來,導(dǎo)致學習興趣不濃、學習停留在表面、對知識學的一知半解。由于接受的多是課本知識,所以動手能力差、應(yīng)用能力差,導(dǎo)致不能把自己所學的知識應(yīng)用到實踐中去。這樣培養(yǎng)出來的學生不能滿足社會的需要,也沒有達到教學的目的。

三、探索新的教學方法

在多年的教學過程中,嘗試多種教學方式,不斷總結(jié)教學經(jīng)驗,探索新的教學方法。

1.上好第一堂課,引起學生的學習興趣。第一堂課是最基礎(chǔ)的理論知識課,如介紹C語言的發(fā)展、特點、優(yōu)點等內(nèi)容,往往不被教師所重視,認為應(yīng)該把精力放到程序設(shè)計部分。其實恰恰相反,上好第一堂課至關(guān)重要,它關(guān)系著學生是否會對學習產(chǎn)生興趣,渴望進行后繼內(nèi)容的學習問題,所以絕對不能照本喧科。而對C語言的發(fā)展追本溯源,將C語言領(lǐng)域的開發(fā)投入、研發(fā)過程、遇到的問題進行詳細的分析,對C語言在現(xiàn)實中的應(yīng)用以及C++、VC++進行介紹,往往能夠引起學生學習C語言程序設(shè)計的興趣、推動后續(xù)知識的學習。

2.詳細講解基礎(chǔ)知識,深度剖析與后繼課程相關(guān)的內(nèi)容,激發(fā)學生學習動力。C語言程序設(shè)計教學中涉及的數(shù)據(jù)類型、取值范圍、運算符、優(yōu)先級、表達式等內(nèi)容雖是基礎(chǔ)知識,但對學生來說卻是邁入程序設(shè)計大門的第一步。沒有堅實的基礎(chǔ)知識,便無從談及程序設(shè)計,所以對基礎(chǔ)知識的講解一定要詳細。比如遇到整型數(shù)據(jù)的取值范圍問題時,可以適當拓展一些原碼和反碼的知識,讓學生知其然,更知其所以然;鏈表知識是C語言的難點,這部分內(nèi)容和數(shù)據(jù)結(jié)構(gòu)聯(lián)系密切,所以要深度剖析,尤其是對帶表頭結(jié)點的單、雙鏈表更要講解的清晰、透徹,為數(shù)據(jù)結(jié)構(gòu)、JAVA語言等后繼課程打下堅實基礎(chǔ)。這樣繼往開來,不僅可以鞏固以前的計算機基礎(chǔ)知識,更能激發(fā)學生的學習動力。

3.重點分析程序設(shè)計過程,培養(yǎng)學生良好的編程習慣,逐步提高學生編程能力。很多學生認為,進行程序設(shè)計就是用計算機語言編寫源代碼,這其實是學習程序設(shè)計的一個誤區(qū),編寫源代碼僅僅是完成了程序的編碼,而程序設(shè)計從問題分析就開始了,它包括分析問題、選擇算法、繪制流程圖、編寫源代碼、調(diào)試并測試程序,直到取得正確結(jié)果這樣一個完整的過程。其中繪制流程圖能使程序員在編程時思路清晰,減少編程錯誤。利用流程圖來分析、查找、解決程序設(shè)計中的問題能夠一目了然。例如:下面這一簡單的while循環(huán)結(jié)構(gòu),用流程圖便可以輕易發(fā)現(xiàn)錯誤所在。圖1是錯誤代碼的流程圖,它使程序陷入了死循環(huán),圖2是正確的流程圖。所以繪制正確的流程圖,是減少代碼錯誤的有效手段。

Main(0

{int i,sum;

i=sum=0;

While(i

Sum+=i;

i++;

Printf(“1+2+3+…+100=%d’,sum);

}

在C語言程序設(shè)計教學過程中,即使對簡單的程序設(shè)計的講解也嚴格的按照程序設(shè)計的過程一步步的進行分析和引導(dǎo),培養(yǎng)學生良好的編程習慣。

4.通過實踐教學,讓學生親自體會程序設(shè)計全過程,鞏固所學知識。學生通常在C語言的學習上投入了很多的精力與時間,但卻離實際要求相差很遠。因為缺乏了實踐經(jīng)驗和能力,不能滿足社會的需求,這也是計算機類學生的通病。為此,在教學中一定要注重理論與實踐相結(jié)合。案例實驗可以說是學習C程序設(shè)計最有效的方法之一,在教學過程中我們故意將賦值符號“=”和等號“= =”互換、漏寫分號“;”和大括號“{}“,設(shè)置一些待解決的錯誤,引導(dǎo)學生在編程和調(diào)試過程中逐一解決這些問題,不僅能夠鞏固理論知識、養(yǎng)成編程的好習慣,更能調(diào)動學生思考問題和解決問題的積極性。同時在解決問題的過程中使學生有一種成就感,這對學習能力的提高和積極性的培養(yǎng)有很好的作用。

5.多種教學手段相結(jié)合,提高教學效果。理論教學與實踐教學相結(jié)合,適當減少理論課、增加實踐課,將理論教學融入實踐教學中來,逐漸模糊兩者之間的界限;傳統(tǒng)教學與豐富多彩的多媒體教學相結(jié)合、教師講解與學生課堂討論相結(jié)合,以便調(diào)動學習的主動性和積極性。

6.注重對知識的歸納和總結(jié),讓學生溫故而知新。在教學過程中,按章節(jié)、按階段對相關(guān)重點知識進行歸納總結(jié),讓學生把模塊化的知識連接起來,系統(tǒng)、全面的掌握所學內(nèi)容。

四、結(jié)束語

目前C語言程序設(shè)計教學中仍然有很多需要改進的地方,如何提高實踐教學質(zhì)量,使理論與實踐相結(jié)合,仍需要在教學過程中不斷的探索和改革。

參考文獻

[1]楊路明等.C/C++程序設(shè)計教程.長沙:湖南科學技術(shù)出版社, 2003.

[2]譚浩強. C語言程序設(shè)計教程.北京:高等教育出版社,1997.

篇10

關(guān)鍵詞 C語言 實驗教學 任務(wù)驅(qū)動式

中圖分類號:G424 文獻標識碼:A

C語言是通用的計算機程序設(shè)計語言。其數(shù)據(jù)類型豐富、表達能力強、使用靈活方便、生成目標程序設(shè)計代碼質(zhì)量比較高,對硬件也能直接進行操作,因此C語言將作為大部分高校的普遍程序設(shè)計的首選課程,也是其編程的基礎(chǔ)性課程。學習程序設(shè)計必須具有語法規(guī)則、算法思想、數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計等方面的知識,C語言比較復(fù)雜,教學內(nèi)容理論性較強,較難掌握,學生易產(chǎn)生厭煩情緒。以前C語言運行環(huán)境是以Turbo C2.0為主,現(xiàn)在雖然可以在VC++6.0運行環(huán)境下進行編程與調(diào)試,但是它的程序運行還不能完全可視化。就對我校高職計算機專業(yè)學生的具體調(diào)查發(fā)現(xiàn):學完C語言后能熟練掌握、靈活運用的學生為10%左右,基本掌握的學生為45%左右,大部分學生還是不能掌握其編程技巧。為了提高和改善學生學習C語言的教學現(xiàn)狀,根據(jù)C語言自身特點,探討新的教學模式和教學方法。以促使提高該課程的教學效果。

1 根據(jù)人才培養(yǎng)方案,合理調(diào)整其教學內(nèi)容

高職院校教育的目的是培養(yǎng)生產(chǎn)一線應(yīng)用型和技能性人才,著重培養(yǎng)學生的學習能力、就業(yè)能力、工作轉(zhuǎn)換能力和創(chuàng)業(yè)能力。高職學生的學習基礎(chǔ)較差,邏輯思維能力較弱,想象空間較窄,因此,在學習C語言程序設(shè)計課程時,必須考慮學生的學習能力和基礎(chǔ)能力,適當降低理論知識的難度和深度,力求教學內(nèi)容淺顯易懂。在本門課程的教學過程中一般要求學生掌握程序設(shè)計的三種程序設(shè)計的基本結(jié)構(gòu)、數(shù)組、函數(shù)、指針等教學內(nèi)容,對于其中過繁過深的知識,例如指針,結(jié)構(gòu)體等,我們則可以進行取舍,使學生知道它們即可。對于重點、難點的教學內(nèi)容必須進行詳細講解,使學生不僅掌握它們的理論知識,更能靈活編寫類似程序以求解決生活中的實際問題??傊?,教學目的是使學生真正掌握并力求能熟練靈活運用C語言進行編程。

2 重視培養(yǎng)模式,培養(yǎng)學生學習興趣

傳統(tǒng)模式下,C語言程序設(shè)計課程的教學內(nèi)容一般則采用黑板式的教學方式來實現(xiàn)。大部分理論知識都要在教室來進行學習,很少在機房來進行程序的編寫。C語言程序設(shè)計運行環(huán)境一般以Turbo C2.0為主,但Turbo C2.0的調(diào)試環(huán)境采用DOS模式,調(diào)試不是很直觀,且操作采用命令和鍵盤來實現(xiàn),界面不可視化操作使學生很不理解,因此會使學生失去學習的動力和學習的積極性。盡管C語言實用價值很高,但理論性很強的教學內(nèi)容,很難引起學生的學習興趣,如果我們再不講究其教學方法,則難以達到本課程的培養(yǎng)目標。為了改變目前的教學現(xiàn)狀,教師必須利用學院現(xiàn)有的教學資源對教學內(nèi)容進行重新整合,改進以往單一、枯燥乏味的教學模式和教學方式,讓知識變得有趣而生動化,從面提高學生的學習興趣、學習的積極性、學習的動力和學以致用的能力。

3 合理利用多媒體技術(shù),提高教學效果

傳統(tǒng)的教學模式是利用黑板式教學手段在教室進行講授C語言程序設(shè)計課程。特別是在講解如何利用運行環(huán)境進行上機步驟、程序調(diào)試方法,程序運行過程和程序運行結(jié)果的查看等內(nèi)容時,課堂教學則顯得枯燥無味、不夠清楚,也不直觀,在這種教學方式下,大部分學生則會對C語言這門課程失去學習興趣、學習的積極性、學習的動力和學習信念。高職院校多年來進教學改革和更新教學設(shè)施,基本上來講,教學設(shè)備都比較齊全。先進的多媒體教學手段出現(xiàn)后,被廣泛使用在許多課程的教學上,多媒體教學具有直觀生動、圖文并茂的優(yōu)勢,能夠把枯燥無味的理論知識變得生動形象化。但先進的教學手段并不完全代表一定會收到良好的教學效果,教師則必需精心制作出適合自己課程的教學課件,把傳統(tǒng)教學不能很好表達的教學重點和教學難點進行重新設(shè)計,并與傳統(tǒng)教學有機結(jié)合,從而達到滿意的教學效果。合理利用多媒體技術(shù)不僅可以加強學生的學習興趣,也能激發(fā)學生的學習動力和求知欲,使學生真正體會到學習的快樂和滿足。

4 加強實踐環(huán)節(jié),培養(yǎng)學生的編程能力

C語言程序設(shè)計是一門實踐性很強的課程,學生不僅要掌握C語言的概念,語法規(guī)則,又要動手編寫程序,并進行上機調(diào)試運行得出結(jié)果。所以培養(yǎng)學生的實際操作能力則顯得尤為重要。在實踐課的教學過程中教師必須做到:教師必須為每次上機習題做到精心挑選,認真對待,在實驗內(nèi)容上應(yīng)做到有較容易的題目,也要有綜合性較強的題目,題目要求不僅要顧全驗證性、綜合性和設(shè)計性實驗的比例,也要做到使所學的知識內(nèi)容進行整合,達到學習的系統(tǒng)化。學生在進行實驗時,根據(jù)學生的學習能力和操作能力,將其分組來進行實驗。實驗過程中,要求學生根據(jù)實驗內(nèi)容再進行分解,教師正確引導(dǎo)學生學會運用正確的思維方法,由易到難,自頂向下,逐步求精,找出解題的關(guān)健,并且鼓勵他們互相學習、大膽討論,這樣不僅能調(diào)動每一位學生的學習動力,也能加強團隊精神的培養(yǎng)。

5 考試考核制度的改革

C語言程序設(shè)計課程的培養(yǎng)目標是學生的思維能力和實踐能力,學生最終成績評定也是體現(xiàn)學生在整個學習過程的主要評價,采用單一的試卷考試方式已經(jīng)不能體現(xiàn)出學生的實際能力水平。我們對學生的要求不僅要考學生的知識水平,更注重考核學生的學習能力、知識應(yīng)用能力、對問題的分析能力和解決實際問題的操作能力綜合考評。即要更多地通過關(guān)注學生的學習過程,用可持續(xù)發(fā)展的方略去評價每一位學生,更好地體現(xiàn)評價的激勵功能,使其做到促進學生學習的主動性和積極性。建議的考評標準為:理論占40%,實踐技能占60%,或進行全國計算機等級二級C語言考試,凡通過者可獲得一定獎勵。

在目前信息社會中,計算機的應(yīng)用越來越廣,因此,高職院校的責任重大,學院在進行計算機教育中應(yīng)依據(jù)培養(yǎng)目標提出不同的教學要求。使每一位學生在學習C語言時,都能由淺逐深、循序漸進地進行教學培養(yǎng),教師在學生學習的過程中必須激發(fā)學生的興趣,更新教學理念,充分利用、整合各種教學資源,注重教學模式和教學方法的探索,真正使C語言程序設(shè)計這門課程成為學生學習其他計算機編程知識的基石。

參考文獻

[1] 張長海.以程序設(shè)計為主線為主線講授“高級語言程序設(shè)計”課.計算機教育.2005(5).

[2] 譚浩強.C語言程序設(shè)計.清華大學出版社.2002(6).