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