国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

以“任務(wù)驅(qū)動”的《面向?qū)ο蟪绦蛟O(shè)計》教學(xué)案例設(shè)計

2016-09-20 08:14翁佩純馬慧張遠(yuǎn)海
現(xiàn)代計算機(jī) 2016年21期
關(guān)鍵詞:數(shù)組面向?qū)ο?/a>程序設(shè)計

翁佩純,馬慧,張遠(yuǎn)海

(1.電子科技大學(xué)中山學(xué)院,中山 528400;2.中山火炬職業(yè)技術(shù)學(xué)院,中山 528400)

以“任務(wù)驅(qū)動”的《面向?qū)ο蟪绦蛟O(shè)計》教學(xué)案例設(shè)計

翁佩純1,馬慧1,張遠(yuǎn)海2

(1.電子科技大學(xué)中山學(xué)院,中山 528400;2.中山火炬職業(yè)技術(shù)學(xué)院,中山 528400)

《面向?qū)ο蟪绦蛟O(shè)計》是一門實(shí)踐性很強(qiáng)的課程,教學(xué)案例將直接影響其教學(xué)效果。針對目前教學(xué)案例存在的問題進(jìn)行分析總結(jié),提出以“任務(wù)驅(qū)動”的教學(xué)案例設(shè)計方法。通過實(shí)例講述從案例選題、內(nèi)容設(shè)計、任務(wù)分解等方面,將面向?qū)ο笤O(shè)計的知識點(diǎn)融入到一個案例中,并以任務(wù)驅(qū)動學(xué)生進(jìn)行團(tuán)隊協(xié)作開發(fā),提供一種新的教學(xué)思路。

任務(wù)驅(qū)動;案例設(shè)計;面向?qū)ο蟪绦蛟O(shè)計

0 引言

《面向?qū)ο蟪绦蛟O(shè)計》課程是計算機(jī)科學(xué)與技術(shù)專業(yè)一門重要的且實(shí)踐性很強(qiáng)的專業(yè)基礎(chǔ)課,其教學(xué)案例的設(shè)計將直接影響本課程的教學(xué)質(zhì)量。由于課程的學(xué)習(xí)對象一般是大一的學(xué)生,多數(shù)學(xué)生屬于第一次接觸計算機(jī)編程,加上面向?qū)ο蟪绦蛟O(shè)計本身的抽象性和復(fù)雜性,使很多學(xué)生望而卻步。任務(wù)驅(qū)動教學(xué)法,是指學(xué)生在教師的幫助下,緊緊圍繞一個共同的任務(wù)活動中心,在強(qiáng)烈的問題動機(jī)的驅(qū)動下,通過對學(xué)習(xí)資源的積極主動應(yīng)用,進(jìn)行自主探索和互動協(xié)作的學(xué)習(xí),并在完成既定任務(wù)的同時,引導(dǎo)學(xué)生產(chǎn)生一種學(xué)習(xí)實(shí)踐活動[1]。本文將以“任務(wù)驅(qū)動式”來進(jìn)行教學(xué)案例的設(shè)計,研究出一套符合《面向?qū)ο蟪绦蛟O(shè)計》課程的教學(xué)案例。

1 目前教學(xué)案例設(shè)計存在的問題

目前《面向?qū)ο蟪绦蛟O(shè)計》課程的教學(xué)案例,普通存在以下幾個問題:

(1)教學(xué)案例多數(shù)以知識點(diǎn)為目標(biāo)進(jìn)行設(shè)計,比較單一,缺乏案例之間的連貫性。

(2)以標(biāo)準(zhǔn)化習(xí)題和簡單的編程題為主,缺少對知識綜合運(yùn)用能力的訓(xùn)練和考核,這種脫離實(shí)際應(yīng)用的案例最終導(dǎo)致學(xué)生失去學(xué)習(xí)興趣。

(3)從教學(xué)效果上來看,學(xué)生基本程序設(shè)計能力差,遇到實(shí)際應(yīng)用問題毫無頭緒,無法分析和解決實(shí)際問題。

2 教學(xué)案例設(shè)計原則

在教學(xué)案例的設(shè)計上,以“任務(wù)驅(qū)動式”來進(jìn)行設(shè)計主要有以下幾個原則:

(1)教學(xué)案例的設(shè)計應(yīng)該逐步提高、前后連貫,要能緊密聯(lián)系實(shí)際,讓學(xué)生在實(shí)踐中鞏固課堂知識的同時,進(jìn)一步增強(qiáng)學(xué)生獨(dú)立分析問題、解決問題的能力。

(2)由教師對任務(wù)進(jìn)行分解,完成示范性教學(xué),讓學(xué)生分組進(jìn)行程序開發(fā),同時學(xué)習(xí)如何按“分而治之”策略解決一個具有相當(dāng)規(guī)模與復(fù)雜性的實(shí)際問題。

(3)鼓勵學(xué)生在完成任務(wù)的基礎(chǔ)上進(jìn)行一定程度的創(chuàng)新,以任務(wù)為驅(qū)動,但不是以任務(wù)為終結(jié),從而培養(yǎng)學(xué)生的創(chuàng)新能力。

3 教學(xué)案例設(shè)計思路

3.1 案例選題

首先案例的選題應(yīng)具有一定挑戰(zhàn)性,同時應(yīng)兼有趣味性。在實(shí)施任務(wù)驅(qū)動的過程中,“以任務(wù)為主線、教師為主導(dǎo)、學(xué)生為主體”的教學(xué)模式,每成功完成一個子任務(wù)都能給學(xué)生帶來極大的成就感,激發(fā)學(xué)生實(shí)踐的興趣。例如,模擬銀行柜臺存取款程序、模擬圖書館借還書程序等。

3.2 內(nèi)容設(shè)計

案例的內(nèi)容應(yīng)注重前后知識運(yùn)用的綜合性和連貫性,后續(xù)案例以前續(xù)案例為基礎(chǔ)。例如,在講授類與對象的知識時,設(shè)計的案例包含如何類的定義和實(shí)現(xiàn),成員函數(shù)的調(diào)用等內(nèi)容,后續(xù)的內(nèi)容如對象數(shù)組、類的繼承與派生、文件讀寫等知識要點(diǎn)都可以不斷的融入到前面案例中。這樣一方面可以復(fù)習(xí)前面的知識,一方面可以培養(yǎng)學(xué)生系統(tǒng)化意識,以幫助學(xué)生建立知識體系。

3.3 任務(wù)分解

對于難度和規(guī)模較大的案例,為了避免學(xué)生突然面對這類實(shí)驗(yàn)時毫無頭緒,須將其分解為一個個學(xué)生可把握復(fù)雜性的任務(wù),再為每一任務(wù)提供足夠的指南與參考資源,每一任務(wù)同時也是可交付、可評價的。任務(wù)分解可使學(xué)生同時學(xué)習(xí)如何按“分而治之”策略解決一個具有相當(dāng)規(guī)模與復(fù)雜性的實(shí)際問題。

3.4 兼顧實(shí)踐創(chuàng)新

以任務(wù)驅(qū)動進(jìn)行教學(xué)時,可提供一些進(jìn)一步完善開發(fā)的意見,作為選做的進(jìn)階任務(wù)。通過加分等獎勵方式,鼓勵動手能力較好的學(xué)生去嘗試。同時,鼓勵學(xué)生在此基礎(chǔ)上自行創(chuàng)新,收集這些素材作為以豐富教學(xué)資源庫。

4 具體案例設(shè)計

下面將以一個具體的教學(xué)案例來說明以 “任務(wù)驅(qū)動”的教學(xué)案例設(shè)計思路和方法。

4.1 案例描述

在講授“類與對象”這一概念時,對于初次接觸“面向?qū)ο蟆边@個抽象的概念,多數(shù)學(xué)生一時難以接受。因此在設(shè)計教學(xué)案例時應(yīng)遵從“由易入難,逐步推進(jìn)”的設(shè)計原則,把各個知識點(diǎn)包含在案例的講授當(dāng)中[2]。例如,如何定義類、使用對象數(shù)組、動態(tài)申請內(nèi)存、拷貝構(gòu)造函數(shù)等。這個案例將設(shè)計一個簡易圖書館借閱管理系統(tǒng),把抽象的概念用具體的實(shí)例展示給學(xué)生,使學(xué)生能融會貫通。

下面的案例將以面向?qū)ο蟮姆椒ㄔO(shè)計一個簡易圖書館借閱管理系統(tǒng),實(shí)現(xiàn)查找圖書、登錄系統(tǒng)、借書、還書等功能,按需求設(shè)計并實(shí)現(xiàn)Book類、Reader類、Library類。

4.2 任務(wù)分解

這個題目對于剛剛接觸面向?qū)ο蟪绦蛟O(shè)計的學(xué)生來說,會覺得任務(wù)超出負(fù)荷且毫無頭緒。因此下面將進(jìn)行任務(wù)分解,使每一個任務(wù)做到學(xué)生能接受并相信此任務(wù)的難度是在自己的實(shí)踐能力之內(nèi)。

(1)Book類定義與實(shí)現(xiàn)

【任務(wù)1-1】編寫一個Book類,用于描述圖書,其數(shù)據(jù)成員(私有)如表1所示。

表1 Book類數(shù)據(jù)成員表

通過組織學(xué)生分小組討論該題目,讓學(xué)生進(jìn)行自主學(xué)習(xí),主要包含以下幾個知識點(diǎn):

(1)類的定義

(2)數(shù)據(jù)成員的定義

(3)構(gòu)造函數(shù)的定義

(4)成員函數(shù)的定義

接下來進(jìn)行示范性教學(xué),可由教師給出類的定義頭文件”Book.h”,由學(xué)生來完成類的實(shí)現(xiàn)。這樣不僅給學(xué)生主動思考自主學(xué)習(xí)的機(jī)會,而且有助于培養(yǎng)學(xué)生良好的編程風(fēng)格。以下是參考代碼。

class Book {

private:

string name;string ISBN;string writer;

string public_name;double price;int number;

public:

Book(string myname="Unknown",string myISBN="Unknown",string mywriter="Unknown",string mypub="Unknown",double myprice=0.0,int mynum=0);

void setData(string myname,string myISBN,string mywriter,string mypub,double myprice,int mynum);

void print();

string getName();

string getWriter();

string getISBN();

int getNumber();

void borrow();

void restore();

};

【課堂討論】完成以上Book類的實(shí)現(xiàn)之后,組織學(xué)生進(jìn)行課堂討論:

①圖書館中有多本書,如何表示和存儲?

②目前暫未實(shí)現(xiàn)Reader讀者類,如何測試借還書?

在經(jīng)過充分討論之后,給出下一個任務(wù)。

【任務(wù)1-2】本任務(wù)的設(shè)計目的是將Book類的定義與實(shí)現(xiàn)設(shè)計成為一個可交付的題目,從而讓學(xué)生收獲一個子任務(wù)的成就感。

·在main函數(shù)中,定義一個Book類的對象數(shù)組,包含5本書,參考代碼如下。

Book arrBooks[5]={

Book("Java編程思想","??藸?,"機(jī)械工業(yè)出版社",78.0,3,"9787111213826"),

Book("C++程序設(shè)計","陳可","電子工業(yè)出版社",45.6,2,"9787145513853"),

Book("程序設(shè)計基礎(chǔ)","張欣易","北京大學(xué)出版社",35.0,3,"9784380850350"),

Book("Linux入門","李旺","機(jī)械工業(yè)出版社",56.7,1,"9784254465775"),

Book("Unix編程大全","程查斯","清華大學(xué)出版社",128.5,2,"9784343465729")};

·設(shè)計一個系統(tǒng)主菜單,要求有以下選項(xiàng),如圖1所示。

·編程模擬10次借還書的操作,要求所操作的圖書序號是隨機(jī)的,借還書的操作是等概率的。參考代碼如下。

srand((unsigned)time(0)); //#include<ctime>

for(int i=0;i<10;i++)

int j=rand()%2;

if(j==0)

//模擬借書操作

int index=rand()%5;//總共5本書,模擬其下標(biāo)

arrBooks[index].borrow();

else{

模擬還書操作;}

圖1 任務(wù)1的系統(tǒng)主菜單

(2)Reader類定義與實(shí)現(xiàn)

【任務(wù)2-1】編寫一個Reader類,用于描述讀者,其數(shù)據(jù)成員(私有)如表3所示。

表2 Reader類數(shù)據(jù)成員表

【課堂討論】引導(dǎo)學(xué)生對下面幾個方面進(jìn)行課堂討論并進(jìn)行程序開發(fā):

①缺省構(gòu)造函數(shù)的作用;

②析構(gòu)函數(shù)的作用;

③成員函數(shù)borrow算法描述如下:

void borrow(Book&b)

如果已借書本數(shù)未達(dá)到max上限,則

b.borrow();//調(diào)用Book類的borrow函數(shù),使該書書目減1

//把書本b的各項(xiàng)信息復(fù)制到數(shù)組中的第number個元素中

arrBooks[number++]=b;

④成員函數(shù)restore算法描述如下:

void restore(Book&b);

首先查找書本b在books數(shù)組中的下標(biāo)index

如果找到這本書,則把它從arrBooks數(shù)組中刪除

b.restore();//調(diào)用Book類的restore函數(shù),使該書書目加1

number--;

【任務(wù)2-2】本任務(wù)的設(shè)計目的是融合任務(wù)1和任務(wù)2,設(shè)計成為一個可交付的題目,從而讓學(xué)生完成讀者借還書操作的功能。

①定義Reader類的對象數(shù)組,參考代碼如下。

Reader arrReaders[2]={Reader("陳小藝","150302","計算機(jī)",10),Reader("吳海","150204","人文社科",5)};

②設(shè)計一個系統(tǒng)主菜單,要求有如圖2所示的選項(xiàng)。

圖2 任務(wù)2的系統(tǒng)主菜單

(3)借書和還書時,首先要輸入該讀者的借書證號登錄系統(tǒng)。設(shè)計子菜單如圖3所示。

【問題反饋】學(xué)生經(jīng)過編程運(yùn)行之后,發(fā)現(xiàn)了如下問題:

①初始化Reader對象數(shù)組后,每個對象所包含的arrBooks指針是錯誤指針。

圖3 登錄系統(tǒng)后的菜單

②借還書成功后圖書庫存數(shù)量未發(fā)生變化。

根據(jù)所反饋的問題,教師進(jìn)行重點(diǎn)知識點(diǎn)講解,問題①講解拷貝構(gòu)造函數(shù)的知識點(diǎn),問題②講解函數(shù)的參數(shù)為對象引用的知識點(diǎn),貫徹“示范-模仿-實(shí)踐”的教學(xué)方式。

(3)Library類定義與實(shí)現(xiàn)

通過上述任務(wù)1和任務(wù)2的練習(xí),學(xué)生基本能掌握類的定義格式,構(gòu)造函數(shù)的含義與作用,對象數(shù)組,動態(tài)對象數(shù)組的申請與釋放等,此時在原基礎(chǔ)上提出新的任務(wù)要求,學(xué)生只需將已完成的項(xiàng)目略加整合和修改即可,較容易被接受。

【任務(wù)3】編寫一個Library類,用于描述圖書館,其數(shù)據(jù)成員(私有)包含有:

①Book*arrBooks;//Book對象數(shù)組,包含所有圖書館的書

②int book_num; //目前已有書目數(shù)

③Reader*arrReaders; //Reader對象數(shù)組,包含所有讀者

④int reader_num;//目前已有讀者數(shù)

要求實(shí)現(xiàn)圖書管理函數(shù):查看所有圖書,查找圖書功能;實(shí)現(xiàn)讀者功能函數(shù):登錄系統(tǒng),借書,還書功能等。

【任務(wù)進(jìn)階】豐富Library類的功能,增加管理員用例,以區(qū)分普通讀者。管理員可對圖書和讀者進(jìn)行增刪改操作。

這個進(jìn)階任務(wù)雖然看似簡單,卻包含了許多知識點(diǎn),如管理員身份的表示,登錄后的菜單調(diào)用等??梢越M織學(xué)生以2~3人的團(tuán)隊形式進(jìn)行討論和課后開發(fā),再由團(tuán)隊進(jìn)行演示。從教學(xué)效果來看,不少學(xué)生能完成以上進(jìn)階任務(wù),其中有不少學(xué)生還考慮到字體顏色、背景顏色等效果,鍛煉了學(xué)生的創(chuàng)新能力。

經(jīng)過以上任務(wù)分解,學(xué)生基本可以清楚整個圖書館借閱管理系統(tǒng)流程和架構(gòu),熟悉面向?qū)ο蟪绦蛟O(shè)計思想,并在每一個任務(wù)中得到了鍛煉。在任務(wù)驅(qū)動的過程中,教師應(yīng)發(fā)揮指導(dǎo)作用,引導(dǎo)學(xué)生將所接觸到的知識自我消化,融合新舊知識,探索知識創(chuàng)新應(yīng)用,從而超過課本的局限,應(yīng)用到解決實(shí)際問題上。

5 結(jié)語

以任務(wù)驅(qū)動的教學(xué)案例,通過課堂討論、團(tuán)隊協(xié)作、模仿并創(chuàng)新等方式,讓學(xué)生在實(shí)踐中消化和理解知識難點(diǎn)。連續(xù)的幾屆教學(xué)實(shí)踐證明,采用“以任務(wù)驅(qū)動的案例式教學(xué)模式”,有利于培養(yǎng)學(xué)生分析問題、解決問題的能力,進(jìn)一步提高學(xué)生的協(xié)作能力和創(chuàng)新能力。

[1]張松敏,王國強(qiáng).案例—任務(wù)驅(qū)動模式的計算機(jī)程序語言教學(xué)探究[J].計算機(jī)教育,2010(2).

[2]楊瑞龍,朱征宇,朱慶生.引入軟件設(shè)計模式的面向?qū)ο蟪绦蛟O(shè)計教學(xué)方法[J].計算機(jī)教育,2012(10).

Design of Task-Driven Teaching Cases in OOP Course

WENG Pei-chun1,MA Hui1,ZHANG Yuan-hai2
(1.University of Electronic Science and Technology of China,Zhongshan Institute,Zhongshan 528400;2.Zhongshan Torch Polytechnic,Zhongshan 528400)

OOP course is a very practical course.Teaching cases will directly affect its teaching effect.Analyzes and summarizes the currently problems existing in the teaching cases,proposed task-driven teaching cases.Gives an example to show how to put OOP knowledge points into a teaching case from the case topics,content and decomposition.

Task-Driven;Teaching Case Design;OOP

電子科技大學(xué)中山學(xué)院教學(xué)團(tuán)隊項(xiàng)目(No.JXTD201502)、“十二五”規(guī)劃2013年青年課題子課題項(xiàng)目(No.W_QNZ201401)

1007-1423(2016)21-0050-05

10.3969/j.issn.1007-1423.2016.21.011

翁佩純(1982-),女,廣東潮安人,碩士,講師,研究方向?yàn)榫W(wǎng)絡(luò)計算、移動應(yīng)用開發(fā)

馬慧(1981-),女,廣東中山人,博士,副教授,研究方向?yàn)閿?shù)據(jù)庫理論、圖數(shù)據(jù)查詢

張遠(yuǎn)海(1978-),男,黑龍江牡丹江人,本科,工程師,研究方向?yàn)橥ㄐ偶夹g(shù)

2016-05-17

2016-07-20

猜你喜歡
數(shù)組面向?qū)ο?/a>程序設(shè)計
GEE平臺下利用物候特征進(jìn)行面向?qū)ο蟮乃痉N植分布提取
JAVA稀疏矩陣算法
醫(yī)學(xué)專業(yè)“Python程序設(shè)計”課程教學(xué)改革總結(jié)與思考
基于Visual Studio Code的C語言程序設(shè)計實(shí)踐教學(xué)探索
JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
從細(xì)節(jié)入手,談PLC程序設(shè)計技巧
面向?qū)ο蠓椒ㄔ谒罾銹LC編程中應(yīng)用分析
面向?qū)ο蟮慕M合軟件工程研究
更高效用好 Excel的數(shù)組公式
高職高專院校C語言程序設(shè)計教學(xué)改革探索
博白县| 巨野县| 永平县| 米脂县| 莒南县| 金堂县| 商南县| 秭归县| 互助| 奉贤区| 宜春市| 那坡县| 江孜县| 峨眉山市| 富顺县| 清镇市| 盐源县| 叙永县| 宣恩县| 惠安县| 安平县| 奎屯市| 牟定县| 海口市| 巨鹿县| 巴东县| 新竹市| 安阳县| 长阳| 乳山市| 芒康县| 新巴尔虎右旗| 涞水县| 内黄县| 潼关县| 沁源县| 建平县| 洮南市| 达日县| 比如县| 西华县|