欢迎您访问思政资源库!
中唐方德官网 | 思政直播
软件工程专业《程序设计基础》课程思政课堂教学设计
程序设计基础
教学设计

软件工程专业《程序设计基础》课程思政课堂教学设计

4591
0
展开
下载
收藏
版权说明

发布日期:2021-12-08

false

适用专业(1)

    本科(1):

  • 软件工程
  • 展开

适用课程(1)

  • 程序设计基础
  • 展开
版权说明及权利通知
课程名称

程序设计基础

授课对象

大一第一学期

授课内容

运算符和表达式

课时

2.00

课程类型 A.思想政治理论课;B.通识课;C.专业课;D.实践课;
教学目标

1. 能力目标:


(1) 能够根据问题场景选择合适的运算符编写正确代码;


(2) 能够分析给定代码并给出正确的程序运行结果;


(3) 能够在程序中正确的运用强制数据类型转换;


(4) 能够编写规范的代码。


2. 知识目标:


(1) 能够列举出所有的运算符并举例阐明各个运算符的功能;


(2) 能够描述自动数据类型转化的原则;


(3) 能够描述多种运算符混合运算的编程规范原则。


3. 思政目标:


(1) 培养学生具备“前人栽树,后人乘凉”的奉献意识和精神;


(2) 培养学生“精益求精”的工匠精神,树立“科技强国”意识;


(3)培养学生具有灵活处理“复杂”问题的思维和能力,具备化繁为简的工程意识。

课程思政 融入知识点

(1) 库函数


(2) 数据类型转换


(3)运算符优先级

融入方式

(1) 我们今天科技发展有如此的成绩,正是站在巨人的肩上,这是奉献的力量。程序设计过程中调用第三方或者系统函数库,正是站在巨人的肩上,才能让我们更好地聚焦业务代码,高效地开发出程序,在工作过程中,我们也应该具备这种奉献、共享意识和精神。


(2) 亚利安 5 号(Ariane 5)运载火箭事件,是由于程序中整数溢出导致的。在数据类型转换时要考虑溢出问题和精度问题。对待科学问题要有“精益求精”、“刨根问题”的科学精神和态度。


(3)编程语言中运算符的优先级顺序非常庞大,非常难记的,如果记不清楚,在编程应用中就会导致BUG,这个问题换个角度完全可以使用括号来解决。因此当我们面对复杂问题,要灵活处理,换一种视角和思路,就会“柳暗花明又一村”。

思政元素 奉献精神 工匠精神 思辨精神 科技强国 行业素养 工程实践能力
思政资源
思政案例
教学实施
教学引入

在前面的学习过程中我们使用了scanf和printf这两个函数非常方便地实现了输入和输出。大家试想一下,如果系统没有提供这两个函数,我们在编写程序过程中需要自己实现,大家可以想象下,这个工作量有多大。所谓“前人栽树,后人乘凉”,一些经典的算法、标准的接口,前人把他们制式化,做成库函数,那么后来的开发者就可以直接拿来使用,这样可以大大提高开发效率。我们今天科技发展有如此的成绩,正是站在巨人的肩上,这是奉献的力量。小到一个项目,大到一个社会,每个人都应该奉献自己的力量,我为人人,人人为我,这个世界才能更美好。

教学展开

1:库函数

 

讲解:库函数的思想

 

库函数顾名思义是把函数放到库里,就是说是把一些常用到的函数放到一个文件里,供他人用。其他人用的时候把函数所在的文件名用#include <>加到自己的程序里面就可以了。

 

程序员本身也可以对自己的程序进行“分段”,构造自己的函数,但这些函数我们一般不称之为“库函数”,C语言的库函数一般是指编译器提供的函数。常见的库函数有数学类、字符串操作类、输入输出类等等。

 

为什么需要库函数?所谓“前人栽树,后人乘凉”,一些经典的算法、标准的接口,前人把他们制式化,做成库函数,那么后来的开发者就可以直接拿来使用,大大提高开发效率。我们今天科技发展有如此的成绩,正是站在巨人的肩上,这是奉献的力量。小到一个项目,大到一个社会,每个人都应该奉献自己的力量,我为人人,人人为我,这个世界才能更美好。

 

2、讲解 演示:算术运算符 

 

(1)讲解 运算符家族

 

(2)讲解 演示:算术运算符

 

讲解:算术,这两个字对我们来说真是太熟悉了,以前是从小学开始学算术,现在从幼儿园就开始学算术了,从简单的加减,到复杂的乘除,都属于算术运算。

 

C语言的常见的算术运算符有5种,即+-*/%,分别对应数学中的加、减、乘、除和取余数操作,下面我们来实际编程看看这个几个运算符的使用。

 

演示:演示算术运算符的用法

 

一边演示一边讲解,同时注意强调编程过程的规范要求。


             

(3)讲解:算术表达式

 

用算术运算将变量或者常量连接起来,满足语言语法要求的式子。例子中的c = a + b, c = a – b……都是算术表达式。

 

(4)讲解 演示:自增、自减运算符

 

讲解:编程语言中还有一种运算叫自增(++)运算,这是一个单目运算符。何为单目运算符?引入概念:双目运算符、单目运算符、还有我们后面要学习的三目运算符,是根据操作数的不同划分的:

 

双目运算符的操作数有2个

 

单目运算符的操作数有1个

 

三目运算符的操作数有3个

 

所谓自增就是自己增1,所谓自减就是自己减1:

 

自增:a++ ++a 等价于 a = a + 1

 

自减:a-- --a 等价于a = a – 1 

 

自增或自减运算符放在变量的前面或者后面有什么区别呢?讲解PPT上的例子。


 

讲解对于多个运算符连续出现的情况,系统是如何处理的?

 

演示: i+++j    等价于 (i++)+j

 

-i+++-j  等价于 -(i++)+(-j)

 

但是请注意在实际编程时,应避免编写此类容易因此歧义的代码,必要时使用括号进行区分。不要将问题复杂化,编程的世界与我们的现实世界一样,“与人方便,与己方便”,写别人更易于理解、易于维护的代码,以“代码”会友,“团结协作”,彰显个人的专业素养。

 

(5)讲解 演示:数据类型转化

 

实际编程中如果不同的数据类型碰到一起组成了表达式,结果是什么样的数据类型呢?如果不人为去处理这种特殊的情况,C语言的程序会遵守这样一个原则:自动将精度低、表示范围小的运算对象类型向精度高、表示范围大的运算对象类型转换。

 

在赋值运算中,赋值号两边的数据类型不同时,编译器会把右边表达式的类型转换为左边变量的类型,这可能会导致数据失真,或者精度降低;所以说,自动类型转换并不一定是安全的。

 

演示: 大家看这样一个例子:


 

这就是数据类型在自动转化时造成了数据失真,精度变低。

 

大家听说过亚利安 5 号(Ariane 5)运载火箭事件吗?这是编程史上臭名昭著的bug之一。1996 年 6 月 4 日,欧洲空间局(European Space Agency,ESA)发射的亚利安 5 号(Ariane 5)运载火箭在法属圭亚那的库鲁发射场发射后仅 40 秒就爆炸了。这枚火箭经过长达十年的研发,耗资 80 亿美元后进行首飞,但这一 Bug 的结果导致了 3.7 亿美元的损失。首飞失败的原因是整数溢出,这是计算机编程中一个普遍存在的错误。有人试图在 16 位空间中设置 64 位数字。所以说,在编程过程中关注每个数字的长度和大小,不要随意进行混合类型赋值,对数据关系进行细致的分析,养成“精益求精”的开发习惯。只有这样,你才能成为一个优秀的软件工程师,未来通过你的技术为国家的繁荣富强贡献自己的力量。

 

讲解强制类型转化:C语言提供强制类型转化,将数据类型转化成你想要的类型,上面的例子可以使用强制类型转化解决数据失真的问题。

 

(6)实践:给定一个三位数,通过编程分别输出个位、十位、百位。

 

 教师讲解思路,学生进行编码实践。


 

3、讲解:关系运算符 

 

(1)讲解:关系运算符也称为比较运算符,就是用来比较两个值(或表达式的运算结果)谁大谁小,相等还是不等于的问题。

 

 在编程中如何使用比较运算符呢?之前讲过数学思维和编程思维,在编程的世界中,不是让我们去比较两个值(或表达式的计算结果)究竟谁大谁小,相等或者不相等,二是用于当满足某种条件时,会怎么样?

 

譬如在计算器中,当你输入“+”号时,我们要对两个数做加法运算,当我们输入“*”时,我们对两个数做乘法运算,这时候我们就用到了比较运算符。

 

初学者对于关系运算符很容易陷入一个误区,就是使用数学思维,以为是让我们做一道数学题,去判断两个数的大小,而在编程的世界中,往往用关系运算符做条件,这一点要给学生讲明白。

 

(2)讲解:关系表达式,用关系运算符将运算对象连接起来的式子,运算对象可以是值也可以是表达式。

 

(3)讲解:关系表达式的结果是逻辑值,即真或假(对或错)。在C语言中用 0 或者1表示,满足逻辑条件即为1,不满足则为0。

 

(4)特别注意: 当关系表达式中含有多个关系运算符时,与数学上的表达方式是有差别的。 6>x>-3       X>-3&&X<6

 

(5)演示: 输入一个整数,求这个整数的绝对值。

 

4、讲解 演示:逻辑运算符

 

(1)讲解: 逻辑运算符

 

何为逻辑?举个例子,有两个条件(命题)“我有空”和“天气好”,我们可以通过不同的逻辑连接词把这两个条件(命题)连接成更复杂的条件,譬如:“我有空,且天气好”,“我有空或天气好”,“天气不好”……

 

在C语言中,用几个符号来表示这种逻辑关系,即“逻辑与”、“逻辑或”以及“逻辑非”,&& || !。通过逻辑运算符连接起来的式子就是逻辑表达式,

 

接下来通过一个例子具体看下逻辑运算符是如何应用的。

 

演示 实践:输入一个年份,判断是否是闰年。

 

教师先进行演示,再让学生进行编码实践。

 

5、讲解 演示:条件运算符

 

(1)讲解:条件运算符又称之为问号运算符,它是一个三目运算符。讲解条件运算符的语法逻辑。

 

(2)演示: 使用条件运算符计算一个数的绝对值。


 

6、讲解:赋值运算符

 

在前面的课程中,我们看到过多个类似于a = 12的这种带“等号”的表达式,在C语言中,“=”不是 数学中的等号,我们称之为“赋值运算符”。所谓“赋值”就是把一个数(一般是常量或者是常量表达式)给一个变量,让这个变量的值等于这个常量或者是表达式的计算结果。

 

“=”为基本的赋值运算符,赋值运算符与其他运算符结合后称之为复合运算符,譬如,a += b 等价于a = a + b。

 

特别注意:不一定我们学习了复合赋值运算符,你就得用它,这两种写法虽然不同,但对结果没有任何影响,所以,如果它妨碍了你的理解,可以不用。

 

7、讲解: 逗号运算符 

 

从左向右,依次对表达式求值,最后得到表达式n 的值就是逗号表达式的值。

 

特别说明:除了在定义变量的时候我们使用逗号作为‘间隔符’,上面我们讲的这种用法,在实际编程中尽量不要用,为什么?因为它同样增加了程序的复杂度,降低了程序的可读性。

 

8、讲解 讨论: 运算符的优先级

 

讨论:如果多个运算符构成一个复杂的表达式,究竟改先算哪个呢?请大家以小组为单位进行讨论,挑选1-2人发表小组意见。

 

参考讲解:大家先看一下这个运算符优先级的表,试问一下,你能不能记得住?我反正是记不住。即便是你现在记住了,如果真正用的时候又忘了怎么办?有的同学说,百度呗。还有的同学说,我打印出来揣兜里。那多麻烦,其实很简单,大家从小学就知道,四则混合运算,先算乘除,后算加减,有括号先算括号里面的。注意“括号”,我们管它什么优先级,统统加括号不就完了嘛。复杂的优先级问题,通过一个小小的括号就解决了。未来我们可能会遇到更加复杂的工程问题,有时间换种角度,反而是一条捷径,所以大家不要只拘泥于问题本身,多动脑,多思考,多积累,“化繁为简”。

教学总结

本节课讲解了库函数、各种运算符以及运算符组成的表达式,要求学生能够领会库函数的思想和意义,能够掌握各类运算符的用法,并灵活应用于编程中,能够依据运算符的基本语法规则分析程序。


课堂上通过讲解、演示、讨论、实践等多种活动,引导学生充分参与,学习目标由记忆、理解迈向高层次的应用、分析、评价层面。


课堂上各个环节融入“思政元素”,将“奉献精神”融入库函数,将“团结协作”融入编程规范,将“工匠精神”融入数据类型转换,将“化繁为简”、“灵活多变”融入运算符的优先级,已达成“润物细无声”的思政教学目标。

目标达成检测

(1)知识目标在教学管理平台中通过课堂测试题目进行评价,学生答题,系统自动评分。


(2)能力目标通过课堂编程实践、程序分析、课堂讨论以及课后编程作业进行评价,由教师根据学生完成情况评分。


(3)思政目标通过课堂学生讨论过程、实践过程以及课后作业完成情况进行间接评价。

教学反思

本节课内容相对较多,知识点比较零散,课堂上学生的实践时间较少,后续课程中可以安排一部分内容进行线上较多,线下课堂重点进行案例演示和学生实践练习,也更容易将思政元素融入其中。

加入资源库VIP 本文免费下载
2万VIP文档下载
海量文档免费下载
付费资源7折起
专属客服服务
仅需0.6元/天
开通VIP
继续阅读
VIP用户可继续阅读
收藏
版权说明
下载
VIP专享文档
付费资源7折起
专属客服服务
仅需0.6元/天
立即开通