投稿问答最小化  关闭

万维书刊APP下载

高级语言程序设计课程思政教学案例设计

2023/9/28 9:53:44  阅读:37 发布者:

0 引 言

20205月,教育部颁发了《高等学校课程思政建设指导纲要》,文件强调“使各类课程与思政课程同向同行,将显性教育和隐性教育相统一,形成协同效应”[1]

高级语言程序设计是工科专业学生的一门重要公共基础课,课程内容和目标是使学生掌握用计算机分析解决问题的思维方法和程序设计方法,在从问题到算法再到程序实现的过程中理解语言、算法和数据结构在程序构造中的作用,具备综合运用程序设计语言和程序设计方法求解科学或工程问题的程序设计与实现能力,使学生理解隐含在语言背后的思想,具备灵活运用这些思想解决实际问题的能力,并在程序设计能力培养过程中,培养学生的大国工匠精神和职业素养,增强文化自信,激发爱国情怀。

1 课程思政教学案例设计的基本原则

课程思政不同于思政课程,它不是一道物理工序,而应该是一次化学反应,就像盐溶于水的过程,要善于化有形于无形,贵在于精而不在于多,要做到不离专业讲思政,渗透思政讲专业。课程思政教学案例设计应掌握以下几个基本原则。

1)正确理解思政的内涵和目标,是设计思政教学案例的基础。

习近平总书记在2018910日召开的全国教育大会上强调,坚持把立德树人作为根本任务,要在坚定理想信念、厚植爱国主义情怀、加强品德修养、增长知识见识、培养奋斗精神、增强综合素质6个方面下功夫[2],这为课程思政指明了方向。换句话说,对于思政内涵的理解不仅局限于“政”字(例如政治认同、家国情怀),还要在“思”上下功夫(例如文化素养、宪法法制、职业道德)。有了这样的认识后,设计思政案例时,思路就可以打开了。

2)根据每一节课的具体教学内容挖掘思政元素,思政素材的选取不能脱离知识点本身。

以高级语言程序设计课程为例,在讲绪论时,可以从计算机发展及应用的背景和历史中挖掘思政元素,通过背景思政,将一些对计算机发展有贡献的科学家的事迹内化为学生的精神追求。在讲到程序测试、程序调试、程序优化、防御式编程等内容时,可以从学生职业素养养成的角度挖掘科学精神、工匠精神、忧患意识等思政元素进行延展思政。

3)将挖掘的思政元素和素材巧妙融入到程序实例中,化有声于无声。

很多人或许都有这样的切身体会,当正在观看一部情节引人入胜的电视连续剧时,突然插播一段广告,可能会让人下意识地想换台,而如果是在电视剧的情节中植入一个广告,却不会让人想换台。类似地,课程思政的内容不一定是从教师的口中“讲”出来,也可以是学生自己“悟”出来。例如,可以将中华优秀传统文化和时政新闻中挖掘的思政元素巧妙包装到例题、习题和实验题的题面中,让学生在读题的过程中慢慢地去悟、去领会。

4)课堂教学不是课程思政教学的唯一渠道,教师也不是课程思政教学的唯一主体。

虽然课堂教学是育人的主战场,但并不意味着它是课程思政的唯一渠道,只有将课程思政从课堂之内延伸到课堂之外的所有教学环节(例如实践环节、考核环节等),才能收到一致的育人效果。此外,教学既包括“教”,也包括“学”,教师是“教”的主体,而学生是“学”的主体。这两个主体不是孤立存在的,既包括师生之间的互动,也包括生生之间的互动,调动学生主体的主观能动性尤为重要。这就意味着课程思政并不是从教师到学生的单向输出,也包括学生之间的相互学习和自我教育。例如,可以在实践环节中增加强带弱、高带低等互帮互助的学习方式,在考核环节中增加生讲生评、作业互评等考核方式。

2 思政元素挖掘与思政素材选取

“教书育人、立德树人”为核心,坚持“知识传授与价值引领并举、思政教育与专业教育并重”两个基本原则,从专业背景励志典型、学生职业素养养成、中华优秀传统文化、时政新闻热点事件、身边故事日常生活等多视角深度挖掘课程中蕴含的思政元素,将其转化为学生喜闻乐见的教学载体,以潜移默化的方式融入到课程教学内容中。

通过提升教师思政育人能力,建设融入思政元素的教学资源,创新课程思政教学模式,将思政元素与教学内容深度融合设计,使课堂成为弘扬主旋律、传播正能量的主阵地,实现知识拓宽、能力提升、人格完善三位一体的课程教学目标。

3 课程思政案例的设计与实施——以字符串应用为例

3.1 授课对象分析

字符串是程序处理文本信息的重要手段,是学生学习C语言必须掌握的一个重要知识点。标准班的学生编程基础比零基础班好、接收知识更快。课堂组织要以导学为主,精讲导练,兼顾挑战度及能力提升。工科专业学生的文化底蕴相对薄弱,同时又对游戏比较感兴趣,考虑到这两个特点,本节教学设计有机地将二者融入教学内容中,在对学生进行中华优秀传统文化熏陶的同时,通过游戏调动学生的学习积极性,让原本枯燥的程序设计课程变得既有趣味又有内涵,既有温度又有情怀。

3.2 教学目标

1)知识目标:掌握字符串处理的常用算法和数据结构,以及向函数传递字符串和从函数返回字符串的函数设计方法。

2)能力目标:熟练使用字符数组/字符指针编写字符串处理相关的程序,具备灵活使用不同的数据结构求解实际问题的计算思维和程序设计能力,并在问题求解、防御式编程和程序优化中强化探究思考能力。

3)思政目标:在弘扬中华优秀传统文化、增强文化自信的同时,提高学生的学习兴趣,在提高人文素养的同时,培养学生精益求精、追求卓越的工匠精神和一丝不苟的编程素养。

4)高阶目标:以迷宫游戏为例,进行字符串应用的深度拓展学习,初步了解深度优先搜索和广度优先搜索算法。

3.3 教学方法

采取启发式、问题式、类比式、场景式等教学方法,循循善诱地启发学生深入思考并参与课堂互动,由浅入深地逐步提高编程任务的挑战度,培养学生科学的思维方法、批判性的思维能力。同时,从现实生活中挖掘“趣味性”,融合“专业性”,融入“思想性”,从诗词等中华优秀传统文化中挖掘思政元素,找准学生情感的触发点和思想的共鸣点,采取渐进代入、巧妙衔接、间接过渡、类比引申等方式潜移默化将其融入教学内容中。

3.4 教学重点和难点

本节课的教学重点是让学生熟练掌握字符串的常用处理方法,熟练编写字符串处理相关的程序,解决实际问题。教学难点是理解栈的原理及使用,以及利用栈解决实际问题。

3.5 教学方法和策略

1)本学时的教学以教师讲授、现场编程演示、精讲导练为主,注重培养学生计算思维和实际编程能力。

2)采用形象式教学法,通过中国文学中的诗文引出字符串处理的逆序和回文。

3)渐进式引入游戏设计、栈的原理及应用,以及深度优先和广度优先搜索算法的思想,增加专业性。

3.6 教学过程与教学活动设计

引子:从2014年“愿付雁书常思君——微情书征文大赛”一等奖作品《你还在我身旁》讲起,作者希望时光倒流,亲爱的母亲还能陪伴在自己身旁。时光不能倒流,但是字符串可以逆序。这一节拍较快,由一句学生熟知的励志语录和一篇游子写给母亲的微情书切入,让学生以轻松的心情进入到字符串应用内容的学习。

1)第1节拍:介绍第1种字符串逆序方法,即采用首尾字符交换方法实现字符串逆序(这一节拍稍慢,让学生理解字符串逆序的原理)。

1)启发设问:启发学生观察字符串逆序前后有什么区别。

2)教师讲解:配合板书分析字符串是如何实现逆序的,然后给出第1种实现字符串逆序的子函数代码。以字符串“12345”为例,逆序之后就是“54321”,可以看出它的首尾对应字符分别互换即可实现逆序,所以要设置两个下标ij标记当前操作位置。ij要相向而行,因此要执行i++j--,并配合循环实现。

3)教师提问:向学生提问,循环的结束条件是什么?根据大多数学生的回答,判断学生对问题的理解程度。

4)教师再讲解:改用字符指针做函数参数重写字符串逆序代码,利用指针的移动实现对应字符的互换。这里要特别讲清楚“字符指针的解引用”的概念。

5)学生编程:针对字符数组和字符指针做函数参数的两种函数实现方式,给学生一定的自己动手编程补全代码的时间。

2)第2节拍:换一种思路和数据结构实现字符串逆序(由于涉及新的知识点,节奏稍慢,要给学生思考和理解的时间)。

1)启发设问:是否希望字符串逆序程序能够实现“子弹退回枪膛”一样的效果呢?

2)教师讲解:配合PPT上的动画演示,利用“栈”这种特殊的数据结构具有的“后进先出”特点,可以模拟“子弹退回枪膛”的效果。

3)举例讲解:利用栈的“后进先出”特点,先将字符串压栈,然后再弹栈,即可实现字符串逆序,重点分析以下问题:①为什么栈的这一特点特别适合字符串的逆序处理?②如何编写Push()Pop()函数分别实现压栈和出栈操作?③栈顶指针在压栈和弹栈操作中发挥了什么作用?

4)刨根问底:这个代码“天衣无缝”了吗(如图1所示)?启发学生思考代码中存在的漏洞,培养批判性思维和精益求精的科学精神。

5)教师再讲解:根据学生的互动回答,讲解在入栈和出栈时为什么要判断“栈满”和“栈空”,引出防御式编程,将代码的进一步完善留给学生课后完成。

3)第3节拍:由字符串逆序任务进阶为回文字符串判断(以回文诗和回文对联作为过渡阶段,节奏稍快)。

1)引子:微情书让我们懂得了什么是“爱”,回文诗会让我们体会什么是“美”。在欣赏苏东坡的回文诗和回文对联(如图2所示)后,引出回文字符串判断的问题。

2)启发设问:观察回文诗、回文对联、回文词、回文数字有什么共同点?进一步分析并观察字符串逆序与回文判断有什么联系?

4)第4节拍:回文字符串判断的第1种编程求解方法。

1)教师讲解:通过观察发现将字符串逆序代码中的首尾字符互换改成判断其是否相等即可实现回文判断(如图3所示),引出回文字符串判断的方法1的代码实现。

2)提问互动:将输入的字符串由英文改成中文,代码能否正确判断回文呢?

3)代码演示:在IDE环境下运行程序,程序能够正确判断英文回文字符串(例如“dad”),但是输入中文字符串(例如“水连天天连水”)时会输出乱码,启发学生思考出现乱码的原因是什么?为什么这个代码对中文输入不起作用?

4)教师再讲解:配合板书讲解,根据国标码,一个汉字需要2个字节保存,所以,首尾字符比较时不能按字节进行,应按字进行(如图4所示)。

5)第5节拍:回文字符串判断的第2种编程求解方法。

1)启发设问:采用顺序栈的数据结构,如何实现回文字符串的判断?如何修改原来的采用顺序栈实现的字符串逆序代码,使其能够判断回文字符串?

2)教师讲解:先将字符串压栈,然后再弹栈,得到逆序后的字符串,如果逆序后的字符串与原字符串相等,那么即可判断其为回文字符串。配合板书解释原理,同时在IDE下运行代码,让学生观察程序的运行结果变化。重点讲解如下问题:①不能使用关系运算符直接判断两个字符串相等,要使用字符串比较函数strcmp()。②当输入汉字字符串时,由于弹栈后的汉字的两个字节的顺序发生了变化,将导致逆序后的汉字字符串变成乱码,如何保证弹栈后汉字的两个字节的前后顺序仍然是正确的?

6)第6节拍:从编程判断回文字符串进阶为编程破解如下的藏头诗(节奏稍快)。

一叶轻舟向东流,

帆梢轻握杨柳手。

风纤碧波微起舞,

顺水任从雅客悠。

教师讲解:要使用二维字符数组保存整首诗,每行保存一句诗。重点讲解如下问题:①如何提取每个字符串的首个汉字?②在提取的汉字字符串末尾一定要手动添加结束标志,否则会出现乱码。③将函数返回值设计成字符指针类型,有什么好处?

7)第7节拍:字符串的进阶应用——编写迷宫游戏。

1)第1阶段的任务目标:如何保存并显示迷宫地图?在这一阶段,重点讲解如下3种方法,借迷宫地图的3种存储方式启发学生“遇事要学会变通,殊途同归”:①用二维字符数组保存迷宫地图,直接使用字符串输出函数显示地图。②用二维整型数组保存迷宫地图,用数字012分别表示地图上的路、墙、玩家,并用不同的字符显示它们。③用文本文件保存迷宫地图,通过打开与读取文件显示迷宫地图。

2)第2阶段的任务目标:如何人机交互走迷宫?在这一阶段,先请学生现场体验走迷宫,然后重点讲解如下问题:①getch()getchar()的区别是什么?②计算机显示屏的坐标系与数学上的坐标系有什么不同?③如何获取用户的键盘操作并根据用户的键盘操作走迷宫?

3)第3阶段的任务目标:如何自动走迷宫?在这一阶段,重点讲解如下问题:①配合PPT动画,讲解深度优先搜索和广度优先搜索的区别和优缺点。②如何利用深搜算法实现迷宫自动寻路的代码?如何保证在无路可走时能够沿原路退回(回溯)?借深搜实现迷宫自动寻路启发学生“做事不要怕失败,一切还可以从头再来”。在课程结束前,给学生布置一个须查阅资料深入探究的问题:如何自动生成迷宫地图?

3.7 课程思政融入方式

借助诗文讲编程,使课程内容富有趣味性和启发性,以美育人,以美化人。巧妙地通过微情书、回文诗、藏头诗等案例,把字符串处理相关的知识点串联起来。从写给母亲的微情书《你还在我身旁》引出时光不能倒流,启发学生要珍惜时间和亲情,进而引出字符串逆序实例;从苏东坡的回文诗引出回文对联和回文字符串的程序实例;从破解藏头诗引出藏头句“一帆风顺”“不忘初心”,以达到于无声处弘扬传统文化、增强学生文化自信的目的。

以学生喜闻乐见的迷宫游戏为例,引入深度优先搜索算法,提升课程教学内容的“两性一度”。从深度优先搜索算法的特点引申到做事的态度:“要勇于探索,做事不要怕失败,失败了还可以从头再来”,让学生享受编程的乐趣、深度学习和快乐学习的同时,思考人生,对其进行思想引导和价值观塑造。

3.8 教学评价

1)通过本节课的学习,学生能够熟练掌握字符串的相关处理方法。

2)学生能够深入地理解栈的原理及其在字符串处理和游戏设计中的应用。

3)学生了解了深度优先和广度优先搜索的特点及其在迷宫游戏设计中的应用。

4)学生通过欣赏诗文,增强了文化自信,在欣赏美的同时还学会了编程,在游戏设计的过程中享受了编程的乐趣,同时还从深搜算法蕴含的哲理中获得了人生的启迪。

3.9 课程教学资源和课后习题

1)课程资源:①电子教案PPT;②在线开放课程:https://www.icourse163.org/course/HIT-69005;③在线训练平台:http://sse.hit.edu.cn/train/

2)课后练习题:最牛微信。“如果26个英文字母ABCDEFGHIJKLMNOPQRSTUVWXYZ分别等于1234567891011121314151617181920212223242526,那么KnowledgeK+N+O+W+L+E+D+G+E=11+14+15+23+12+5+4+7+5=96Work hardW+O+R+K+H+A+R+D=23+15+18+11+8+1+18+4=98,也就是说知识和努力工作对我们人生的影响可以达到96%98%LuckL+U+C+K=12+21+3+11=47LoveL+O+V+E=12+15+22+5=54,看来,这些我们通常认为重要的东西却并没起到最重要的作用。那么,什么可以决定我们100%的人生呢?是Money吗?M+O+N+E+Y = 13+15+14+5+25=72,看来也不是;是Leadership吗?L+E+A+D+E+R+S+H+I+P=12+5+1+4+5+18+19+9+16 =89,还不是。金钱、权力也不能完全决定我们的生活,那是什么呢?其实,真正能使我们生活圆满的东西就在我们自己身上!ATTITUDEA+T+T+I+T+U+D+E=1+20+20+9+20+21+4+5 =100。我们对待人生的态度才能够100%影响我们的生活!”这是2015年最牛的一条微信,现在请你编写程序测试上述计算结果的正确性。

4 结 语

笔者以高级语言程序设计课程的字符串应用为例,给出了一个完整的思政教学案例的设计过程,从四大名著、唐宋诗词等中华优秀传统文化中挖掘思政元素,通过巧妙改写程序案例,将其融入到例题、习题、实验题和考试题的设计中,以实现于无声处思政育人。经过近年来的课程思政教学实践,从最初的懵懵懂懂无从下手,到处处留心皆可成为思政元素,笔者深切感觉到,课程思政是一项盐溶于水的过程,贵在于精而不在于多,将思政内容以“润物细无声”的形式浸润学生的同时,教师也能通过教学感悟提升自身品德修养,并体会这一过程的快乐。

参考文献:

[1] 中华人民共和国教育部. 教育部关于印发《高等学校课程思政建设指导纲要》的通知[EB/OL]. (2020-06-01)[2021-09-27]. http://www.moe.gov.cn/srcsite/A08/s7056/202006/t20200603_462437.html.

[2] 陶好飞. 胸怀“国之大者”, 培育时代新人[N]. 中国教育报, 2022-07-07(5).

基金项目:黑龙江省高等学校课程思政示范课程和教学团队培育项目;黑龙江省高等教育教学改革项目“‘多师直播领编领练、个人异步边学边练、千人同步以考促练’的在线教学新模式”(SJGY20200231);黑龙江省高等教育本科教学改革研究项目“新工科背景下计算机学科‘课程思政’建设研究与实践”(SJGY20220048)。

第一作者简介:苏小红,女,教授,研究方向为智能软件工程、程序分析及其应用,sxh@hit.edu.cn

苏小红,李 . 高级语言程序设计课程思政教学案例设计

引文格式:何静媛,陈咸彰. 基于“三融三促”的操作系统课程教学创新实践[J]. 计算机教育, 2023(9): 39-43.

转自:“计算机教育”微信公众号

如有侵权,请联系本站删除!


  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com