python问题化教学设计_基于IPO的Python教学设计

冯艳茹 陈平

摘要:程序设计基础课程是培养大学生解决计算问题的思维和能力的课程,使用Python作为大学生的首门编程语言课程,可操作性强,入门容易,上手快。该文提出了基于IPO的教学设计新思维,使教学活动和教学设计变得更为清晰,有章可循,更有利于提高程序设计类课程的教学效果。

关键词:IPO;程序设计;程序;教学设计;Python

中图分类号:TP393 文献标识码:A

文章编号:1009-3044(2019)11-0001-03

开放科学(资源服务)标识码(OSID):

据统计,大学计算机专业甚至是机械专业、电气自动化控制专业等都会开设程序设计课程,而且把《C语言程序设计》作为程序设计课程的入门课程。C语言是一门通用计算机编程语言,简洁结构严谨,广泛应用于底层开发。但是对于大学生来说,入门困难而且学习吃力,不利于编程思想和逻辑思维的培养。从2009年开始,国外众多大学广泛开设了Python语言课程。Python是一种面向对象、解释性的程序设计语言,非常简单易学,完全免费,上手快,入门容易。Python 语言是比 C 语言、Java 语言、VB 语言以及 VFP 语言更适合以应用为主的大学非计算机专业学生,该语言是目前美国大学最受欢迎的程序设计语言[1]。2016 年,教育部高等学校大学计算机课程教学指导委员会发布了《大学计算机基础课程教学基本要求》(简称《基本要求》)[2]。《基本要求》首次建议将Python语言作为首门程序设计课程的教学语言,在其推动下,国内高校逐步开设了Python 语言,成为教学改革热点[2]。因此,本人提出了基于IPO的Python教学设计新思维。

1 程序的编写方法——IPO方法

程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。每个计算机程序都用来解决特定的计算问题[3]。程序的规模有大有小,无论程序的规模如何,每个程序都有统一的运算模式:输入数据、处理数据和输出数据,即IPO(Input Process Output)方法。IPO不仅是程序设计的基本方法,也是描述计算问题的方式。

身体质量指数(即:Body Mass Index,简称BMI),是目前国际上常用的衡量人体胖瘦程度以及是否健康的一個标准,主要用于统计分析,当我们需要比较及分析一个人的体重对于不同高度的人所带来的健康影响时,BMI值是一个中立而可靠的指标。 BMI的定义如下:

BMI=体重(kg)/身高的平方(m2)

即: BMI是用体重公斤数除以身高米数平方得出的数字

以身体质量指数BMI为例,其IPO描述如下。

输入:一个人的体重weight和身高height

处理:计算bmi的值。

bmi=weight/(height*height)

输出:bmi值

IPO描述能够帮助初学者理解程序设计的基本过程,即了解程序的运算模式,进而理解程序设计的基本概念。

2 Python程序设计课程的教学目标

《程序设计基础(Python)》作为一门专业基础课程,课程作用是通过教学,使学生掌握计算机编程语言的基本知识,初步掌握程序设计的基本思想和方法,使学生会使用Python语言进行简单的程序设计,使学生具有一定的分析问题、解决问题的能力。具体教学目标和教学内容如表1所示。

3 教学设计新探究

在教学设计时,要充分结合 Python 语言特点,采用新思维进行设计。我们需要对教学内容进行重构,以任务或案例的形式来展现。本文以成人的BMI指数来说明基于IPO的教学设计。成人的身体状况有以下五种情况:过轻、正常、过重、肥胖、非常肥胖。当BMI数值低于18.5,则“过轻”;BMI数值在18.5-23.9之间,则“正常”;BMI数值在24-27之间,则“过重”;BMI数值在28-32之间,则“肥胖”;当BMI数值高于32,则“非常肥胖”。具体设计如下表2所示。

我们可以采用循序渐进的方式来逐步解决整个问题,可以将问题逐步进行细化,分步骤分阶段地来完成和实施。每完成一个任务,再适当地增加难度,不断拓展知识和技能的容量。学生上手快,容易解决,能够从完成任务的过程中获得满足感,从而激发他进一步探究解决问题的主观能动性。对于不同程度的大学生来说,完成这个任务需要的时间也不一致完成这个案例大概需要10个学时。

学生一般都比较喜欢打游戏,游戏中的一关又一关的闯关过程使游戏者获得了满足感和成就感,身心愉悦而亢奋。那我们在设计问题时,如果像游戏中的关卡一样,一个比一个复杂一点点,难度一点点加大,会给学生留下一些想象和思考的空间,会激发学生探究的好奇心和热情,学习的效率和动力会不断地加强。由此,我们将成人的BMI数值问题设置为不同级别的版本,一个版本又一个版本的实现和闯关。

(1)成人的BMI数值1.0版本

在成人的BMI数值1.0版本中,主要学习IPO方法,数据的输入、数据的处理以及数据的输出。

输入:身高和体重值。实现方法:采用python解释器中内置的函数input()来实现数据的输入,该函数的返回值是字符串。同时说明字符串的概念及表示。

处理:计算BMI值。实现方法:使用eval()函数将我们输入的身高和体重值转换为数值;并使用算术运算符完成BMI值的计算。

输出:BMI值。实现方法:使用print()函数输出BMI值,重点讲解print()函数的使用。

程序的流程图如图1所示。

说明:其中图2的1和2行语句实现的是数据的输入;3-5行语句实现的是数据的处理;第6行语句实现的是数据的输出。

(2)成人的BMI数值2.0版本

任务描述:在成人的BMI数值1.0版本的基础上,增加对BMI值的判断,得出一个人的身体状况。数据的输入和输出没有问题,重点的是数据的处理。在上次的数据处理基础上,我们再使用分支结构来处理。

输入:体重weight和身高height

处理:

将身高和体重转换为数值;

计算BMI指数

判断BMI,给出相应的身体状况。如果BMI数值低于18.5,则身体状况是“过轻”;如果BMI数值在18.5-23.9之间,则身体状况是“正常”;如果BMI数值在24-27之间,则身体状况是“过重”;如果BMI数值在28-32之间,则身体状况是“肥胖”;如果BMI数值高于32,则身体状况是“非常肥胖”。

输出:身体狀况body_situation

BMI指数2.0版本参考代码,如图3:

(3)成人的BMI数值3.0版本

任务描述:在成人的BMI数值2.0版本的基础上,增加对多个人BMI值的判断,得出多个人的身体状况。问题的重点是数据的处理,我们采用循环结构来实现。实现循环的语句有while、 for等语句,我们可以选择容易理解和上手快的while语句先来实现。

(4)成人的BMI数值4.0版本

任务描述:在成人的BMI数值3.0版本的基础上,把处理对多个人BMI值的判断,得出多个人的身体状况这个问题封装到函数。数据的输入和输出没有问题,数据的处理采用函数来完成。问题的重点就是函数的定义以及调用。

(5)成人的BMI数值5.0版本

任务描述:在成人的BMI数值4.0版本的基础上,增加的功能是把上次得出多个人的身体状况写入到一个文件中保存。问题的重点就是文件的打开以及写入操作。

在使用IPO方法进行教学设计时,输入和输出比较简单,容易实现和掌握,重点在于数据的处理过程,在python中实现数据处理的主要有程序的控制结构、函数以及类等,这些才是我们学习的重点。如何将这些知识融合到教学设计中,这才是我们应该研究的问题。

4 总结与反思

本文谈论的基于IPO的Python教学设计有利于不断激发学生的探究问题的兴趣和解决问题的能力,从而提高课程的教学效果,当然也会存在一些不足和局限性。Python 语言简洁、高效和生态的特点能够较好地培养大学生解决计算问题的思维和能力。在Python中还有一些实现图形和图像的库,比如turtle、tkinter、graphics等,可以绘制一些平面图形、图像处理等。如果我们在教学过程中,再以有趣、生动的图形图像的绘制来激发学生学习兴趣,使程序设计变得直观、生动、形象并且切合实际。这样学生在学习程序设计时,就不会感到枯燥、无趣了,从而能够更好地提高课堂的教学效率。如果我们在教学过程能够多思考勤于总结,一定能够得到更好更优的教学效果。

参考文献:

[1] 冯艳红. Python语言程序设计教学模式探索[D].福建电脑,2018.10.

[2] 嵩天,黄天羽,礼欣. Python语言: 程序设计课程教学改革的理想选择[J]. 中国大学教学, 2016(2): 42-47.

[3] 嵩天,黄天羽. Python 语言程序设计教学案例新思维基础[D].计算机教育, 2017.12

[4] 嵩天,礼欣,黄天羽. Python 语言程序设计基础[M]. 2 版. 北京: 高等教育出版社, 2017.

【通联编辑:王力】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SPOJ - SCITIES】Selfish Cities (二分图最优匹配,最大费用流)

题干: Far, far away there is a world known as Selfishland because of the nature of its inhabitants. Hard times have forced the cities of Selfishland to exchange goods among each other. C1 cities are willing to sell some goods and the other C2 c…

将方孔分段的lisp_AutoLisp编写工程地质剖面图小工具

AutoLisp编写工程地质剖面图小工具朱红雷李健民 (浙江省水利水电勘测设计院杭州 310002)在我院应用的CAD工程地质制图系统中,通常采用的各种高级语言编制的程序,一般是通过编制数据文件,生成CAD图形数据交换文件(一般为*.SCR或*.DXF)达到绘制…

【CodeForces - 922B 】Magic Forest (数学,异或,暴力,水题,三元组问题)

题干: Imp is in a magic forest, where xorangles grow (wut?) A xorangle of order n is such a non-degenerate triangle, that lengths of its sides are integers not exceeding n, and the xor-sum of the lengths is equal to zero. Imp has to count the …

【牛客 -2A】矩阵(二分,字符串哈希)

题干: 给出一个n * m的矩阵。让你从中发现一个最大的正方形。使得这样子的正方形在矩阵中出现了至少两次。输出最大正方形的边长。 输入描述: 第一行两个整数n, m代表矩阵的长和宽; 接下来n行,每行m个字符(小写字母&#xff09…

java生产者消费者代码_Java实现Kafka生产者消费者代码实例

Kafka的结构与RabbitMQ类似,消息生产者向Kafka服务器发送消息,Kafka接收消息后,再投递给消费者。生产者的消费会被发送到Topic中,Topic中保存着各类数据,每一条数据都使用键、值进行保存。每一个Topic中都包含一个或多…

java dom创建xml文件_Java 如何使用dom方式读取和创建xml文件

Java 如何使用dom方式读取和创建xml文件发布时间:2020-11-11 17:08:31来源:亿速云阅读:101作者:Leah本篇文章给大家分享的是有关Java 如何使用dom方式读取和创建xml文件,小编觉得挺实用的,因此分享给大家学…

【CodeForces - 304B】Calendar (前缀和,水题)

题干: Calendars in widespread use today include the Gregorian calendar, which is the de facto international standard, and is used almost everywhere in the world for civil purposes. The Gregorian reform modified the Julian calendars scheme of le…

java 刷新jtextarea_Java JTextArea不能实时刷新的问题

相信JTextArea用法都了解吧,JTextArea textArea new JTextArea();生成一块空白的区域, 我的需求就是点击发送邮件按钮后,后台的执行日志能输出到textArea中。但是我点击发送按钮的时候,由于邮件的附件要好久,界面一直…

【CodeForces - 312C】The Closest Pair (思维)

题干: Currently Tiny is learning Computational Geometry. When trying to solve a problem called "The Closest Pair Of Points In The Plane", he found that a code which gave a wrong time complexity got Accepted instead of Time Limit Excee…

java request 封装对象_java通过request自动封装复杂对象

参考:Jfinal源码,在上面基础上改的,然后分享出来适用JAVAEE平台[Java]代码/*** 实现深层封装对象的实例 从request封装对象* 举例:* House.class 属性有三个 ID:id 名称:name 门类:Door doorDoor类: id nam…

【UVA - 10020 】Minimal coverage (贪心,区间覆盖问题)

题干:(Uva题不给题干了) t组样例,每组首先给出一个M,然后给出一些线段(0 0结束),然后问怎么取能使得最少的线段覆盖区间[0, M]。 Sample Input 2 1 -1 0 -5 -3 2 5 0 0 1 -1 0 0 1 …

java邮箱地址正则表达式_Java 中用正则表达式修改 Email 地址

需求系统中有一列会用来存储 email 地址,现在需要对输入的字符串进行过滤,要求是,把无效的地址过滤掉。有一些需要说明的是这些地址是通过图像识别得到的,有些是用户自己输入的已有历史记录已经存在了脏数据,需要替换这…

【CodeForces - 305C】Ivan and Powers of Two(思维,STL,set,优先队列)

题干: Ivan has got an array of n non-negative integers a1, a2, ..., an. Ivan knows that the array is sorted in the non-decreasing order. Ivan wrote out integers 2a1, 2a2, ..., 2an on a piece of paper. Now he wonders, what minimum number …

【CodeForces - 1082B】Vova and Trophies (贪心模拟,暴力)

题干: Vova has won nn trophies in different competitions. Each trophy is either golden or silver. The trophies are arranged in a row. The beauty of the arrangement is the length of the longest subsegment consisting of golden trophies. Vova wan…

java mac 转换 整形_JAVA的整型与字符串相互转换

1如何将字串 String 转换成整数 int?A. 有两个方法:1). int i Integer.parseInt([String]); 或i Integer.parseInt([String],[int radix]);2). int i Integer.valueOf(my_str).intValue();注: 字串转成 Double, Float, Long 的方法大同小异.2 如何将整数 int 转换成字串 St…

【CodeForces - 798A】Mike and palindrome (回文串,水题,字符串问题)

题干: Mike has a string s consisting of only lowercase English letters. He wants to change exactly one character from the string so that the resulting one is a palindrome. A palindrome is a string that reads the same backward as forward, for e…

java迷宫生成算法_DFS算法迷宫生成器

我正在尝试使用DFS算法在ASCII中创建迷宫(#表示墙和自由空间),其左上角开始,右下角出口 . 问题是迷宫开始创建,然后它被阻止,因为它的所有邻居都已被访问过 .我从左上角开始,将单元格标记为已访问并放置一个…

【牛客 - 272A】Phrase String(构造,水题)

题干: 给出v, k,请你找到最小的正整数n,满足: n的二进制表示下存在一个长度为v的回文串,该回文串首尾都是1且n的二进制表示中至少有k个1。保证v,k均为偶数! 由于n可能很大,你只需要输出对取模的…

eclipse 跑maven命令_maven编写命令行执行mvn package没问题,eclipse执行报错

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼报错是这样的“[ERROR] Unknown lifecycle phase "Systemout3". You must specify a valid lifecycle phase or a goal in the format : or :[:]:. Available lifecycle phases are: validate, initialize, generate-sou…

【CodeForces - 798D】Mike and distribution (思维构造,贪心,黑科技)

题干: Mike has always been thinking about the harshness of social inequality. Hes so obsessed with it that sometimes it even affects him while solving problems. At the moment, Mike has two sequences of positive integers A  [a1, a2, ..., an…