亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2016-09-20 08:14:26翁佩純馬慧張遠海
        現(xiàn)代計算機 2016年21期
        關鍵詞:面向對象程序設計數(shù)組面向對象

        翁佩純,馬慧,張遠海

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

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

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

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

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

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

        0 引言

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

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

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

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

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

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

        2 教學案例設計原則

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

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

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

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

        3 教學案例設計思路

        3.1 案例選題

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

        3.2 內容設計

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

        3.3 任務分解

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

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

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

        4 具體案例設計

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

        4.1 案例描述

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

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

        4.2 任務分解

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

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

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

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

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

        (1)類的定義

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

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

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

        接下來進行示范性教學,可由教師給出類的定義頭文件”Book.h”,由學生來完成類的實現(xiàn)。這樣不僅給學生主動思考自主學習的機會,而且有助于培養(yǎ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類的實現(xiàn)之后,組織學生進行課堂討論:

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

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

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

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

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

        Book arrBooks[5]={

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

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

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

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

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

        ·設計一個系統(tǒng)主菜單,要求有以下選項,如圖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的系統(tǒng)主菜單

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

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

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

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

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

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

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

        void borrow(Book&b)

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

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

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

        arrBooks[number++]=b;

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

        void restore(Book&b);

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

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

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

        number--;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        5 結語

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

        [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)、“十二五”規(guī)劃2013年青年課題子課題項目(No.W_QNZ201401)

        1007-1423(2016)21-0050-05

        10.3969/j.issn.1007-1423.2016.21.011

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

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

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

        2016-05-17

        2016-07-20

        猜你喜歡
        面向對象程序設計數(shù)組面向對象
        JAVA稀疏矩陣算法
        電腦報(2022年13期)2022-04-12 00:32:38
        JAVA玩轉數(shù)學之二維數(shù)組排序
        電腦報(2020年24期)2020-07-15 06:12:41
        面向對象的計算機網(wǎng)絡設計軟件系統(tǒng)的開發(fā)
        電子測試(2018年15期)2018-09-26 06:01:34
        面向對象的數(shù)據(jù)交換協(xié)議研究與應用
        基于MOOC的編譯原理分階段課程教學研究
        計算機教育(2016年9期)2016-12-21 00:32:22
        CDIO理念下《面向對象程序設計》教學改革研究
        科技視界(2016年16期)2016-06-29 21:58:51
        獨立學院面向對象程序設計教學模式的探討與實踐
        考試周刊(2016年43期)2016-06-18 17:32:22
        面向對象Web開發(fā)編程語言的的評估方法
        軟件工程專業(yè)面向對象程序設計教學改革研究
        科技視界(2016年4期)2016-02-22 12:31:42
        尋找勾股數(shù)組的歷程
        精品黑人一区二区三区| 99久久国产综合精品女图图等你| 国产精品igao视频网| 在线欧美精品二区三区| 色偷偷亚洲av男人的天堂| 日本中文字幕精品久久 | 国产3p一区二区三区精品| 亚洲精品无码专区在线在线播放 | 久久aaaa片一区二区| 午夜不卡av免费| 日本a在线播放| 国产在线视频一区二区三区不卡| 精品无码久久久久久久久水蜜桃| 国产伦久视频免费观看视频| 国产美女在线一区二区三区| 久久五月精品中文字幕| 国产精品自线一区二区三区| 成人免费777777被爆出| āV第三区亚洲狠狠婷婷综合久久| 少妇激情一区二区三区久久大香香| 免费在线观看av不卡网站| 久久无码专区国产精品s| 久久国产亚洲精品超碰热| 人妻少妇偷人精品久久人妻| 狠狠躁夜夜躁av网站中文字幕| 三级特黄60分钟在线观看| 亚洲日韩精品久久久久久| 亚洲乱码中文字幕第一页| 久久久久九九精品影院| 国产成人久久777777| 亚洲AV无码中文AV日韩A| 久久伊人精品中文字幕有尤物| 精品www日韩熟女人妻| 国产精品成人午夜久久| 国产午夜精品综合久久久| 中文字幕亚洲欧美在线不卡| 亚洲av成人综合网| 美腿丝袜一区二区三区| 人妻少妇不满足中文字幕 | 日本一区二区三区四区高清不卡 | 六月丁香婷婷色狠狠久久|