馮艷茹 陳平
摘要:程序設(shè)計基礎(chǔ)課程是培養(yǎng)大學(xué)生解決計算問題的思維和能力的課程,使用Python作為大學(xué)生的首門編程語言課程,可操作性強,入門容易,上手快。該文提出了基于IPO的教學(xué)設(shè)計新思維,使教學(xué)活動和教學(xué)設(shè)計變得更為清晰,有章可循,更有利于提高程序設(shè)計類課程的教學(xué)效果。
關(guān)鍵詞:IPO;程序設(shè)計;程序;教學(xué)設(shè)計;Python
中圖分類號:TP393 文獻標識碼:A
文章編號:1009-3044(2019)11-0001-03
開放科學(xué)(資源服務(wù))標識碼(OSID):
據(jù)統(tǒng)計,大學(xué)計算機專業(yè)甚至是機械專業(yè)、電氣自動化控制專業(yè)等都會開設(shè)程序設(shè)計課程,而且把《C語言程序設(shè)計》作為程序設(shè)計課程的入門課程。C語言是一門通用計算機編程語言,簡潔結(jié)構(gòu)嚴謹,廣泛應(yīng)用于底層開發(fā)。但是對于大學(xué)生來說,入門困難而且學(xué)習(xí)吃力,不利于編程思想和邏輯思維的培養(yǎng)。從2009年開始,國外眾多大學(xué)廣泛開設(shè)了Python語言課程。Python是一種面向?qū)ο?、解釋性的程序設(shè)計語言,非常簡單易學(xué),完全免費,上手快,入門容易。Python 語言是比 C 語言、Java 語言、VB 語言以及 VFP 語言更適合以應(yīng)用為主的大學(xué)非計算機專業(yè)學(xué)生,該語言是目前美國大學(xué)最受歡迎的程序設(shè)計語言[1]。2016 年,教育部高等學(xué)校大學(xué)計算機課程教學(xué)指導(dǎo)委員會發(fā)布了《大學(xué)計算機基礎(chǔ)課程教學(xué)基本要求》(簡稱《基本要求》)[2]?!痘疽蟆肥状谓ㄗh將Python語言作為首門程序設(shè)計課程的教學(xué)語言,在其推動下,國內(nèi)高校逐步開設(shè)了Python 語言,成為教學(xué)改革熱點[2]。因此,本人提出了基于IPO的Python教學(xué)設(shè)計新思維。
1 程序的編寫方法——IPO方法
程序設(shè)計是給出解決特定問題程序的過程,是軟件構(gòu)造活動中的重要組成部分。程序設(shè)計往往以某種程序設(shè)計語言為工具,給出這種語言下的程序。計算機程序是一組計算機能識別和執(zhí)行的指令,運行于電子計算機上,滿足人們某種需求的信息化工具。每個計算機程序都用來解決特定的計算問題[3]。程序的規(guī)模有大有小,無論程序的規(guī)模如何,每個程序都有統(tǒng)一的運算模式:輸入數(shù)據(jù)、處理數(shù)據(jù)和輸出數(shù)據(jù),即IPO(Input Process Output)方法。IPO不僅是程序設(shè)計的基本方法,也是描述計算問題的方式。
身體質(zhì)量指數(shù)(即:Body Mass Index,簡稱BMI),是目前國際上常用的衡量人體胖瘦程度以及是否健康的一個標準,主要用于統(tǒng)計分析,當(dāng)我們需要比較及分析一個人的體重對于不同高度的人所帶來的健康影響時,BMI值是一個中立而可靠的指標。 BMI的定義如下:
BMI=體重(kg)/身高的平方(m2)
即: BMI是用體重公斤數(shù)除以身高米數(shù)平方得出的數(shù)字
以身體質(zhì)量指數(shù)BMI為例,其IPO描述如下。
輸入:一個人的體重weight和身高height
處理:計算bmi的值。
bmi=weight/(height*height)
輸出:bmi值
IPO描述能夠幫助初學(xué)者理解程序設(shè)計的基本過程,即了解程序的運算模式,進而理解程序設(shè)計的基本概念。
2 Python程序設(shè)計課程的教學(xué)目標
《程序設(shè)計基礎(chǔ)(Python)》作為一門專業(yè)基礎(chǔ)課程,課程作用是通過教學(xué),使學(xué)生掌握計算機編程語言的基本知識,初步掌握程序設(shè)計的基本思想和方法,使學(xué)生會使用Python語言進行簡單的程序設(shè)計,使學(xué)生具有一定的分析問題、解決問題的能力。具體教學(xué)目標和教學(xué)內(nèi)容如表1所示。
3 教學(xué)設(shè)計新探究
在教學(xué)設(shè)計時,要充分結(jié)合 Python 語言特點,采用新思維進行設(shè)計。我們需要對教學(xué)內(nèi)容進行重構(gòu),以任務(wù)或案例的形式來展現(xiàn)。本文以成人的BMI指數(shù)來說明基于IPO的教學(xué)設(shè)計。成人的身體狀況有以下五種情況:過輕、正常、過重、肥胖、非常肥胖。當(dāng)BMI數(shù)值低于18.5,則“過輕”;BMI數(shù)值在18.5-23.9之間,則“正?!保籅MI數(shù)值在24-27之間,則“過重”;BMI數(shù)值在28-32之間,則“肥胖”;當(dāng)BMI數(shù)值高于32,則“非常肥胖”。具體設(shè)計如下表2所示。
我們可以采用循序漸進的方式來逐步解決整個問題,可以將問題逐步進行細化,分步驟分階段地來完成和實施。每完成一個任務(wù),再適當(dāng)?shù)卦黾与y度,不斷拓展知識和技能的容量。學(xué)生上手快,容易解決,能夠從完成任務(wù)的過程中獲得滿足感,從而激發(fā)他進一步探究解決問題的主觀能動性。對于不同程度的大學(xué)生來說,完成這個任務(wù)需要的時間也不一致完成這個案例大概需要10個學(xué)時。
學(xué)生一般都比較喜歡打游戲,游戲中的一關(guān)又一關(guān)的闖關(guān)過程使游戲者獲得了滿足感和成就感,身心愉悅而亢奮。那我們在設(shè)計問題時,如果像游戲中的關(guān)卡一樣,一個比一個復(fù)雜一點點,難度一點點加大,會給學(xué)生留下一些想象和思考的空間,會激發(fā)學(xué)生探究的好奇心和熱情,學(xué)習(xí)的效率和動力會不斷地加強。由此,我們將成人的BMI數(shù)值問題設(shè)置為不同級別的版本,一個版本又一個版本的實現(xiàn)和闖關(guān)。
(1)成人的BMI數(shù)值1.0版本
在成人的BMI數(shù)值1.0版本中,主要學(xué)習(xí)IPO方法,數(shù)據(jù)的輸入、數(shù)據(jù)的處理以及數(shù)據(jù)的輸出。
輸入:身高和體重值。實現(xiàn)方法:采用python解釋器中內(nèi)置的函數(shù)input()來實現(xiàn)數(shù)據(jù)的輸入,該函數(shù)的返回值是字符串。同時說明字符串的概念及表示。
處理:計算BMI值。實現(xiàn)方法:使用eval()函數(shù)將我們輸入的身高和體重值轉(zhuǎn)換為數(shù)值;并使用算術(shù)運算符完成BMI值的計算。
輸出:BMI值。實現(xiàn)方法:使用print()函數(shù)輸出BMI值,重點講解print()函數(shù)的使用。
程序的流程圖如圖1所示。
說明:其中圖2的1和2行語句實現(xiàn)的是數(shù)據(jù)的輸入;3-5行語句實現(xiàn)的是數(shù)據(jù)的處理;第6行語句實現(xiàn)的是數(shù)據(jù)的輸出。
(2)成人的BMI數(shù)值2.0版本
任務(wù)描述:在成人的BMI數(shù)值1.0版本的基礎(chǔ)上,增加對BMI值的判斷,得出一個人的身體狀況。數(shù)據(jù)的輸入和輸出沒有問題,重點的是數(shù)據(jù)的處理。在上次的數(shù)據(jù)處理基礎(chǔ)上,我們再使用分支結(jié)構(gòu)來處理。
輸入:體重weight和身高height
處理:
將身高和體重轉(zhuǎn)換為數(shù)值;
計算BMI指數(shù)
判斷BMI,給出相應(yīng)的身體狀況。如果BMI數(shù)值低于18.5,則身體狀況是“過輕”;如果BMI數(shù)值在18.5-23.9之間,則身體狀況是“正?!保蝗绻鸅MI數(shù)值在24-27之間,則身體狀況是“過重”;如果BMI數(shù)值在28-32之間,則身體狀況是“肥胖”;如果BMI數(shù)值高于32,則身體狀況是“非常肥胖”。
輸出:身體狀況body_situation
BMI指數(shù)2.0版本參考代碼,如圖3:
(3)成人的BMI數(shù)值3.0版本
任務(wù)描述:在成人的BMI數(shù)值2.0版本的基礎(chǔ)上,增加對多個人BMI值的判斷,得出多個人的身體狀況。問題的重點是數(shù)據(jù)的處理,我們采用循環(huán)結(jié)構(gòu)來實現(xiàn)。實現(xiàn)循環(huán)的語句有while、 for等語句,我們可以選擇容易理解和上手快的while語句先來實現(xiàn)。
(4)成人的BMI數(shù)值4.0版本
任務(wù)描述:在成人的BMI數(shù)值3.0版本的基礎(chǔ)上,把處理對多個人BMI值的判斷,得出多個人的身體狀況這個問題封裝到函數(shù)。數(shù)據(jù)的輸入和輸出沒有問題,數(shù)據(jù)的處理采用函數(shù)來完成。問題的重點就是函數(shù)的定義以及調(diào)用。
(5)成人的BMI數(shù)值5.0版本
任務(wù)描述:在成人的BMI數(shù)值4.0版本的基礎(chǔ)上,增加的功能是把上次得出多個人的身體狀況寫入到一個文件中保存。問題的重點就是文件的打開以及寫入操作。
在使用IPO方法進行教學(xué)設(shè)計時,輸入和輸出比較簡單,容易實現(xiàn)和掌握,重點在于數(shù)據(jù)的處理過程,在python中實現(xiàn)數(shù)據(jù)處理的主要有程序的控制結(jié)構(gòu)、函數(shù)以及類等,這些才是我們學(xué)習(xí)的重點。如何將這些知識融合到教學(xué)設(shè)計中,這才是我們應(yīng)該研究的問題。
4 總結(jié)與反思
本文談?wù)摰幕贗PO的Python教學(xué)設(shè)計有利于不斷激發(fā)學(xué)生的探究問題的興趣和解決問題的能力,從而提高課程的教學(xué)效果,當(dāng)然也會存在一些不足和局限性。Python 語言簡潔、高效和生態(tài)的特點能夠較好地培養(yǎng)大學(xué)生解決計算問題的思維和能力。在Python中還有一些實現(xiàn)圖形和圖像的庫,比如turtle、tkinter、graphics等,可以繪制一些平面圖形、圖像處理等。如果我們在教學(xué)過程中,再以有趣、生動的圖形圖像的繪制來激發(fā)學(xué)生學(xué)習(xí)興趣,使程序設(shè)計變得直觀、生動、形象并且切合實際。這樣學(xué)生在學(xué)習(xí)程序設(shè)計時,就不會感到枯燥、無趣了,從而能夠更好地提高課堂的教學(xué)效率。如果我們在教學(xué)過程能夠多思考勤于總結(jié),一定能夠得到更好更優(yōu)的教學(xué)效果。
參考文獻:
[1] 馮艷紅. Python語言程序設(shè)計教學(xué)模式探索[D].福建電腦,2018.10.
[2] 嵩天,黃天羽,禮欣. Python語言: 程序設(shè)計課程教學(xué)改革的理想選擇[J]. 中國大學(xué)教學(xué), 2016(2): 42-47.
[3] 嵩天,黃天羽. Python 語言程序設(shè)計教學(xué)案例新思維基礎(chǔ)[D].計算機教育, 2017.12
[4] 嵩天,禮欣,黃天羽. Python 語言程序設(shè)計基礎(chǔ)[M]. 2 版. 北京: 高等教育出版社, 2017.
【通聯(lián)編輯:王力】