999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

以“任務驅動”的《面向對象程序設計》教學案例設計

2016-09-20 08:14:26翁佩純馬慧張遠海
現代計算機 2016年21期
關鍵詞:定義案例設計

翁佩純,馬慧,張遠海

(1.電子科技大學中山學院,中山 528400;2.中山火炬職業技術學院,中山 528400)

以“任務驅動”的《面向對象程序設計》教學案例設計

翁佩純1,馬慧1,張遠海2

(1.電子科技大學中山學院,中山 528400;2.中山火炬職業技術學院,中山 528400)

《面向對象程序設計》是一門實踐性很強的課程,教學案例將直接影響其教學效果。針對目前教學案例存在的問題進行分析總結,提出以“任務驅動”的教學案例設計方法。通過實例講述從案例選題、內容設計、任務分解等方面,將面向對象設計的知識點融入到一個案例中,并以任務驅動學生進行團隊協作開發,提供一種新的教學思路。

任務驅動;案例設計;面向對象程序設計

0 引言

《面向對象程序設計》課程是計算機科學與技術專業一門重要的且實踐性很強的專業基礎課,其教學案例的設計將直接影響本課程的教學質量。由于課程的學習對象一般是大一的學生,多數學生屬于第一次接觸計算機編程,加上面向對象程序設計本身的抽象性和復雜性,使很多學生望而卻步。任務驅動教學法,是指學生在教師的幫助下,緊緊圍繞一個共同的任務活動中心,在強烈的問題動機的驅動下,通過對學習資源的積極主動應用,進行自主探索和互動協作的學習,并在完成既定任務的同時,引導學生產生一種學習實踐活動[1]。本文將以“任務驅動式”來進行教學案例的設計,研究出一套符合《面向對象程序設計》課程的教學案例。

1 目前教學案例設計存在的問題

目前《面向對象程序設計》課程的教學案例,普通存在以下幾個問題:

(1)教學案例多數以知識點為目標進行設計,比較單一,缺乏案例之間的連貫性。

(2)以標準化習題和簡單的編程題為主,缺少對知識綜合運用能力的訓練和考核,這種脫離實際應用的案例最終導致學生失去學習興趣。

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

2 教學案例設計原則

在教學案例的設計上,以“任務驅動式”來進行設計主要有以下幾個原則:

(1)教學案例的設計應該逐步提高、前后連貫,要能緊密聯系實際,讓學生在實踐中鞏固課堂知識的同時,進一步增強學生獨立分析問題、解決問題的能力。

(2)由教師對任務進行分解,完成示范性教學,讓學生分組進行程序開發,同時學習如何按“分而治之”策略解決一個具有相當規模與復雜性的實際問題。

(3)鼓勵學生在完成任務的基礎上進行一定程度的創新,以任務為驅動,但不是以任務為終結,從而培養學生的創新能力。

3 教學案例設計思路

3.1 案例選題

首先案例的選題應具有一定挑戰性,同時應兼有趣味性。在實施任務驅動的過程中,“以任務為主線、教師為主導、學生為主體”的教學模式,每成功完成一個子任務都能給學生帶來極大的成就感,激發學生實踐的興趣。例如,模擬銀行柜臺存取款程序、模擬圖書館借還書程序等。

3.2 內容設計

案例的內容應注重前后知識運用的綜合性和連貫性,后續案例以前續案例為基礎。例如,在講授類與對象的知識時,設計的案例包含如何類的定義和實現,成員函數的調用等內容,后續的內容如對象數組、類的繼承與派生、文件讀寫等知識要點都可以不斷的融入到前面案例中。這樣一方面可以復習前面的知識,一方面可以培養學生系統化意識,以幫助學生建立知識體系。

3.3 任務分解

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

3.4 兼顧實踐創新

以任務驅動進行教學時,可提供一些進一步完善開發的意見,作為選做的進階任務。通過加分等獎勵方式,鼓勵動手能力較好的學生去嘗試。同時,鼓勵學生在此基礎上自行創新,收集這些素材作為以豐富教學資源庫。

4 具體案例設計

下面將以一個具體的教學案例來說明以 “任務驅動”的教學案例設計思路和方法。

4.1 案例描述

在講授“類與對象”這一概念時,對于初次接觸“面向對象”這個抽象的概念,多數學生一時難以接受。因此在設計教學案例時應遵從“由易入難,逐步推進”的設計原則,把各個知識點包含在案例的講授當中[2]。例如,如何定義類、使用對象數組、動態申請內存、拷貝構造函數等。這個案例將設計一個簡易圖書館借閱管理系統,把抽象的概念用具體的實例展示給學生,使學生能融會貫通。

下面的案例將以面向對象的方法設計一個簡易圖書館借閱管理系統,實現查找圖書、登錄系統、借書、還書等功能,按需求設計并實現Book類、Reader類、Library類。

4.2 任務分解

這個題目對于剛剛接觸面向對象程序設計的學生來說,會覺得任務超出負荷且毫無頭緒。因此下面將進行任務分解,使每一個任務做到學生能接受并相信此任務的難度是在自己的實踐能力之內。

(1)Book類定義與實現

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

表1 Book類數據成員表

通過組織學生分小組討論該題目,讓學生進行自主學習,主要包含以下幾個知識點:

(1)類的定義

(2)數據成員的定義

(3)構造函數的定義

(4)成員函數的定義

接下來進行示范性教學,可由教師給出類的定義頭文件”Book.h”,由學生來完成類的實現。這樣不僅給學生主動思考自主學習的機會,而且有助于培養學生良好的編程風格。以下是參考代碼。

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類的實現之后,組織學生進行課堂討論:

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

②目前暫未實現Reader讀者類,如何測試借還書?

在經過充分討論之后,給出下一個任務。

【任務1-2】本任務的設計目的是將Book類的定義與實現設計成為一個可交付的題目,從而讓學生收獲一個子任務的成就感。

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

Book arrBooks[5]={

Book("Java編程思想","埃克爾","機械工業出版社",78.0,3,"9787111213826"),

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

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

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

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

·設計一個系統主菜單,要求有以下選項,如圖1所示。

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

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本書,模擬其下標

arrBooks[index].borrow();

else{

模擬還書操作;}

圖1 任務1的系統主菜單

(2)Reader類定義與實現

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

表2 Reader類數據成員表

【課堂討論】引導學生對下面幾個方面進行課堂討論并進行程序開發:

①缺省構造函數的作用;

②析構函數的作用;

③成員函數borrow算法描述如下:

void borrow(Book&b)

如果已借書本數未達到max上限,則

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

//把書本b的各項信息復制到數組中的第number個元素中

arrBooks[number++]=b;

④成員函數restore算法描述如下:

void restore(Book&b);

首先查找書本b在books數組中的下標index

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

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

number--;

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

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

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

②設計一個系統主菜單,要求有如圖2所示的選項。

圖2 任務2的系統主菜單

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

【問題反饋】學生經過編程運行之后,發現了如下問題:

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

圖3 登錄系統后的菜單

②借還書成功后圖書庫存數量未發生變化。

根據所反饋的問題,教師進行重點知識點講解,問題①講解拷貝構造函數的知識點,問題②講解函數的參數為對象引用的知識點,貫徹“示范-模仿-實踐”的教學方式。

(3)Library類定義與實現

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

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

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

②int book_num; //目前已有書目數

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

④int reader_num;//目前已有讀者數

要求實現圖書管理函數:查看所有圖書,查找圖書功能;實現讀者功能函數:登錄系統,借書,還書功能等。

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

這個進階任務雖然看似簡單,卻包含了許多知識點,如管理員身份的表示,登錄后的菜單調用等。可以組織學生以2~3人的團隊形式進行討論和課后開發,再由團隊進行演示。從教學效果來看,不少學生能完成以上進階任務,其中有不少學生還考慮到字體顏色、背景顏色等效果,鍛煉了學生的創新能力。

經過以上任務分解,學生基本可以清楚整個圖書館借閱管理系統流程和架構,熟悉面向對象程序設計思想,并在每一個任務中得到了鍛煉。在任務驅動的過程中,教師應發揮指導作用,引導學生將所接觸到的知識自我消化,融合新舊知識,探索知識創新應用,從而超過課本的局限,應用到解決實際問題上。

5 結語

以任務驅動的教學案例,通過課堂討論、團隊協作、模仿并創新等方式,讓學生在實踐中消化和理解知識難點。連續的幾屆教學實踐證明,采用“以任務驅動的案例式教學模式”,有利于培養學生分析問題、解決問題的能力,進一步提高學生的協作能力和創新能力。

[1]張松敏,王國強.案例—任務驅動模式的計算機程序語言教學探究[J].計算機教育,2010(2).

[2]楊瑞龍,朱征宇,朱慶生.引入軟件設計模式的面向對象程序設計教學方法[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

電子科技大學中山學院教學團隊項目(No.JXTD201502)、“十二五”規劃2013年青年課題子課題項目(No.W_QNZ201401)

1007-1423(2016)21-0050-05

10.3969/j.issn.1007-1423.2016.21.011

翁佩純(1982-),女,廣東潮安人,碩士,講師,研究方向為網絡計算、移動應用開發

馬慧(1981-),女,廣東中山人,博士,副教授,研究方向為數據庫理論、圖數據查詢

張遠海(1978-),男,黑龍江牡丹江人,本科,工程師,研究方向為通信技術

2016-05-17

2016-07-20

猜你喜歡
定義案例設計
案例4 奔跑吧,少年!
少先隊活動(2021年2期)2021-03-29 05:40:48
隨機變量分布及統計案例拔高卷
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
發生在你我身邊的那些治超案例
中國公路(2017年7期)2017-07-24 13:56:38
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
一個模擬案例引發的多重思考
中國衛生(2015年4期)2015-11-08 11:16:06
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
山的定義
公務員文萃(2013年5期)2013-03-11 16:08:37
主站蜘蛛池模板: 99热这里只有免费国产精品| 白浆免费视频国产精品视频| 亚欧美国产综合| 国产欧美日韩18| 国产精品视频第一专区| 欧美激情第一欧美在线| 国产情侣一区| 在线精品亚洲国产| www.亚洲天堂| 日本手机在线视频| 亚洲性日韩精品一区二区| 女人天堂av免费| 美女国内精品自产拍在线播放 | 一级毛片在线播放免费观看| 女人爽到高潮免费视频大全| 国产精品私拍99pans大尺度 | 国产永久在线视频| 在线不卡免费视频| 日本黄网在线观看| 国产成人综合在线观看| 欧美69视频在线| 又污又黄又无遮挡网站| 欧美人与牲动交a欧美精品| 91国内在线观看| 欧美久久网| 国产原创演绎剧情有字幕的| 国产99免费视频| 亚洲—日韩aV在线| 四虎永久在线视频| 噜噜噜久久| 少妇极品熟妇人妻专区视频| 亚洲AV成人一区国产精品| 亚洲欧美成aⅴ人在线观看 | 亚洲国产成人精品无码区性色| 亚洲成a∧人片在线观看无码| 亚洲国产一区在线观看| 国产亚洲欧美在线中文bt天堂| 福利一区三区| 久久这里只有精品8| 精品国产污污免费网站| 中文字幕在线免费看| 久久精品丝袜| 国产亚洲美日韩AV中文字幕无码成人| 午夜福利无码一区二区| 午夜激情福利视频| 国产成人综合网| 天天色综网| 国产精品页| 免费一级无码在线网站 | 亚洲欧美不卡视频| 国产一级一级毛片永久| 国产欧美专区在线观看| AV不卡国产在线观看| 国产精品免费入口视频| 国产欧美又粗又猛又爽老| 在线视频亚洲欧美| 中文字幕永久视频| 日韩123欧美字幕| 亚洲精品成人福利在线电影| 午夜三级在线| 亚洲国产精品国自产拍A| 狠狠久久综合伊人不卡| 国产自视频| 亚洲视频a| 成·人免费午夜无码视频在线观看| 午夜国产理论| 国产成人精彩在线视频50| 亚洲欧美成人在线视频| 日本午夜影院| 91久久偷偷做嫩草影院精品| 久久久久亚洲AV成人人电影软件 | 91国内在线视频| 综合天天色| 99草精品视频| 国产福利大秀91| 国产欧美综合在线观看第七页| 亚洲国产精品VA在线看黑人| 97在线国产视频| 真实国产乱子伦视频| 欧美精品xx| 无码福利日韩神码福利片| 亚洲国产综合精品一区|