錢 進(jìn) 吳 劍
(遼寧省沈陽市東北大學(xué) 110819)
《C++程序設(shè)計(jì)》作為數(shù)學(xué)系學(xué)生的一門專業(yè)基礎(chǔ)課程,其內(nèi)容包括類、構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、繼承與多態(tài)性、操作符重載和模板,是后續(xù)程序開發(fā)的基礎(chǔ).該課程目標(biāo)是使學(xué)生理解并掌握面向?qū)ο蟮母拍钆c思想,知道與C語言之間的不同和聯(lián)系,并熟練編寫程序.
傳統(tǒng)的課堂教學(xué),學(xué)生只是聽教師授課,注重知識(shí)點(diǎn)的講解,忽略編程實(shí)踐,不能激發(fā)學(xué)生主動(dòng)性學(xué)習(xí).學(xué)生學(xué)到知識(shí)后,不能靈活運(yùn)用知識(shí),只是記住了概念,這并不是我們想培養(yǎng)學(xué)生編程的目的.只有通過上機(jī)訓(xùn)練,學(xué)生才能明白自己知識(shí)的不足,才能有的放矢,更加深刻地理解知識(shí)點(diǎn).
在2017-2018第二學(xué)期,我對(duì)數(shù)學(xué)三個(gè)專業(yè)的學(xué)生實(shí)施了《C++程序設(shè)計(jì)》課程教學(xué)改革,改革的方式采用從實(shí)際問題出發(fā),2到3個(gè)人為一組,自行選題.老師同意選題后,給2周時(shí)間進(jìn)行編程.由于程序較大,采用模塊多人協(xié)作的形式,編寫一個(gè)工程包含多個(gè)文件,來共同完成.完成后,每人15分鐘進(jìn)行報(bào)告并展示程序.老師進(jìn)行提問,并依據(jù)學(xué)生完成的情況,給予點(diǎn)評(píng).
拿一組學(xué)生的選題為例: 利用模擬退火算法對(duì)學(xué)費(fèi)尋優(yōu)模型的建立與求解.
基于對(duì)高等教育學(xué)費(fèi)的計(jì)算和合理度評(píng)價(jià),考慮對(duì)現(xiàn)有的學(xué)費(fèi)選擇模型進(jìn)行優(yōu)化,從而達(dá)到更合理的水平.
一個(gè)最佳的學(xué)費(fèi)標(biāo)準(zhǔn)應(yīng)該是既能顧及學(xué)生、學(xué)校、政府的利益,又能考慮到近期的利益和遠(yuǎn)期的利益.于是我們主要考慮以下幾個(gè)因素:
目標(biāo)一:學(xué)生近期利益最大
目標(biāo)二:學(xué)校近期利益最大
目標(biāo)三:政府近期利益最大
目標(biāo)四:個(gè)人遠(yuǎn)期收益率最大
目標(biāo)五:社會(huì)遠(yuǎn)期收益率最大
(1)目標(biāo)一:學(xué)生近期利益最大
(2)目標(biāo)二:學(xué)校近期利益最大
學(xué)校所能得到的總學(xué)費(fèi)作為學(xué)校近期利益的體現(xiàn),由前面的研究有:f0=f×N.
(3)目標(biāo)三:社會(huì)近期利益最大
(4)目標(biāo)四:個(gè)人遠(yuǎn)期收益率最大
(5)目標(biāo)五:社會(huì)遠(yuǎn)期收益率最大
下面考慮約束條件:
(1)約束條件1:學(xué)生支付能力約束
所謂學(xué)生支付能力,就是指學(xué)生交學(xué)費(fèi)的能力,我們認(rèn)為該能力與該學(xué)生的家庭純收入,國(guó)家生均撥款,還有學(xué)生獲得的獎(jiǎng)學(xué)金有關(guān),于是得到如下約束:f≤W+A+J(其中,W為學(xué)生的家庭年純收入,A為國(guó)家生均撥款,J為獎(jiǎng)學(xué)金).
(2)約束條件2:學(xué)校教育經(jīng)費(fèi)需求約束
政府財(cái)政撥款可以認(rèn)為是前文中定義的A×N,定義學(xué)校自籌費(fèi)用為Z1, 社會(huì)捐贈(zèng)費(fèi)用為Z2,事業(yè)收入的非學(xué)費(fèi)收入部分為Z3,學(xué)費(fèi)收入為f×N,則有如下約束:A×N+Z1+Z2+Z3+f×N≥F(其中,F(xiàn)為高校一年的教育經(jīng)費(fèi)).
綜上,解決該問題的模型轉(zhuǎn)化為:
該組學(xué)生通過本題的練習(xí), 熟悉了C++的一些重要性質(zhì),利用封裝、繼承、虛函數(shù)和多態(tài)性等特性,實(shí)驗(yàn)學(xué)習(xí)如何對(duì)各類圖元的屬性和方法進(jìn)行合理的封裝.
這種實(shí)踐教學(xué)的方式,不僅能激發(fā)學(xué)生的學(xué)習(xí)興趣,而且能夠使學(xué)生真正意義上編寫程序解決實(shí)際問題.學(xué)生通過這樣的訓(xùn)練過程,能更好地理解書本上的知識(shí),學(xué)以致用!
通過這次《C++程序設(shè)計(jì)》教學(xué)改革,學(xué)生的反響很不錯(cuò),對(duì)于編程不再膽怯.能熟練地掌握知識(shí)點(diǎn),靈活運(yùn)用編程技巧,解決問題,對(duì)以后的計(jì)算機(jī)等級(jí)考試,也打下了一個(gè)良好的基礎(chǔ).