面向计算思维能力培养的C语言课程改革研究
2022-08-31李静李炳超
李静 李炳超
摘要:面向計算思维培养的计算机基础教育是国内外各大高校的教育共识。当前我校C语言公共基础课程教学存在一些问题,比如没有关注学生的专业背景和学习需求,不能满足学生的多元化个性化发展。基于课程中计算思维的体现方式,在新工科人才培养和学科融合的大背景下,对C语言程序设计课程进行改革研究,结合专业背景制定教学内容、设计教学方法和实践案例,提高授课学生计算思维能力的培养质量和水平。
关键词:计算思维能力培养;C语言程序设计课程;学科融合;新工科人才培养;课程改革
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2022)18-0132-02
开放科学(资源服务)标识码(OSID):
随着计算机信息化技术在现代社会的应用普及,面向计算思维能力培养的计算机基础教育,逐渐成为国内外各大高校的教育共识。计算机程序设计课程处于计算机基础教育三个层次(大学计算机基础、计算机程序设计基础、计算机应用基础)中的第二层,起到承上启下的关键作用,是非常重要的一门课程。通过完整的学习一门程序设计语言,学生能够理解计算机解决问题的方式,实现从数学思维到计算思维的转换,并能够应用计算机程序解决工作和生活中的实际问题。C语言作为一种编程语言,具有使用灵活、表达能力强、功能丰富、执行效率高等特点,一直以来都是程序设计人员必须掌握的一种编程语言,同时也是大部分国内高校理工科学生必修的计算机程序设计课程。
《C语言程序设计》作为我校非计算机专业的理工类学生的一门计算机程序设计类课程,是培养大学生计算思维能力的重要途径,它的教学模式和教学方法需要与新时代新工科对理工类人才培养的要求相适应。本论文针对当前我校C语言公共基础课程教学的现状和存在的问题,基于C语言程序设计课程中计算思维的体现方式,在新工科人才培养和学科融合的背景下,对C语言程序设计课程进行改革研究,加强对学生科学行为能力的培养[1]。具体做法是,结合专业背景制定教学内容、设计教学方法和实践案例,提高授课学生计算思维能力的培养质量和水平。
1 计算思维的含义
早在2006年,美国的周以真教授就正式提出了计算思维的概念[2],周教授将计算思维的定义解释为:采用计算的概念解决问题、设计系统和理解人的行为的一种方法。随后,国内外学者也纷纷从自身的学科背景出发对计算思维的概念展开了多维度的补充说明。2019年,北京师范大学的罗海风博士等人[3]基于三个方面的视角对计算思维的定义进行了补充说明:(1)在基于跨学科、多领域融合的综合视角下,计算思维既可以用来解决专业技术上的问题,也能够处理日常生活上的问题;(2)在基于编程基础的专业视角下,计算思维等价于程序思维,核心内容是编程方法,目的是把实际问题分解为多步可操作的程序语句;(3)在基于算法、语言等表征下的功能视角下,计算思维关注抽象事物间的联系,通过对抽象事物的自动化,降低问题的复杂性从而解决问题。
具体到C语言程序设计课程,对计算思维的培养体现在课程与其他学科的交叉和融合上,当前无论是新工科、新文科、新医科还是新农科,其中的“新”是指创建新的学科或者是对传统的学科进行重构和改革,调整教学内容,进行技术融合、学科交叉、产教结合,在学科交叉和教学内容重构的过程中,需要重点培养学生的计算思维能力。在新工科的发展环境下,培养非计算机专业的大学生的计算思维能力非常重要。
2 C语言课程的教学现状
在我校大部分的非计算机专业的理工类学生都要学习C语言程序设计课程,课程设置在大学生入学后的第二个学期,在课程的教学过程中,存在以下几个方面的问题:
(1)选课的学生来自全国各个地区,学生的数学基础和计算机理论基础参差不齐。有些学生在中学阶段就已经学习了计算机文化课程,而有些地区的学生在进入大学之前从来没有接触过电脑。C语言程序设计课程是一门理论和实践并重的课程,既需要学生掌握语法规则方面的理论知识,更需要学生通过上机实践验证程序的正确性和可行性。不同性格的学生对这类课程的态度不尽相同,有些学生喜欢挑战,遇到困难和问题乐意钻研、不断尝试,而还有一些学生害怕挫折,遇到错误不知所措,不善于自我解决问题和更正错误。
(2)目前C语言程序设计课程对我校不同学科和专业的学生,制定的教学计划、教学内容、以及教学方法几乎是相同的,没有关注学生的专业背景和学习需求,没有做到计算机基础课程与其他学科和专业的结合,无法实现对学生计算思维能力的培养,不能适应新工科对人才培养的要求,也无法满足选课学生的多元化个性化发展的需要。在C语言课程的教学过程中,要以计算思维能力的培养为目标,加强与其他学科专业的融合,培养学生养成良好的学习习惯,锻炼和强化学生的计算思维能力以及自我思考和解决问题的能力。
(3)理论教学和实践教学没有很好地融合。在理论课时,授课老师往往重点关注C语言编程的语法规则,而且C语言的特点就是语法规则繁多,由于课时受限,老师们没有充分时间讲解程序算法的设计和分析过程。实践课时,老师安排学生根据实践教材进行程序设计,课程安排紧凑,学生没有时间和动力消化理论课程的知识,直接在实践课上动手编写程序,使得学生学习起来感觉到困难,渐渐失去对C语言的学习兴趣。
3 面向计算思维培养的课程改革尝试
3.1多样化的教学内容设计
正如南昌工程学院的叶军教授所说[4],C语言程序设计课程的教学目标主要有两个:第一个目标是理解计算机求解问题的方式方法,并把它应用到工作和生活中,弱化语法规则,强调解决问题的过程和方法;第二个目标是学习程序的设计方法和解决思路,能设计C语言程序解决实际问题,重视解决问题的过程。第一个目标是弱化语法规则,关注问题解决的思路和过程(即“计算思维”),大多数学生都需要达到这个教学目标;第二个目标要求注重程序的设计方法,同时关注问题解决过程的语法规则,面向的是少数数学基础较好、喜欢编程的学生。
整个课程总共有13个教学章节:前三章内容分别是“为什么学习C语言”“C语言数据类型”和“算术运算和表达式”,主要的教学目标是通过基本知识和表达式的学习,培养学生的计算思维意识;紧跟在后面的三章内容分别是“顺序结构”“选择控制结构”和“循环控制结构”,主要目标是通过C语言基本语句和控制结构的学习,培养学生的计算思维方法;最后几章内容分别是“函数”“数组”“指针”“字符串”“指针和数组”“结构体和共用体”以及“文件操作”,主要教学目标是通过数组、指针等数据结构算法的学习,培养学生的问题求解思维。
在现有的教学内容中,没有关注与选课学生学科的具体融合[5],难以激发授课学生的学习积极性,难以深入培养学生的计算思维能力。通过调研不同学科专业对C语言课程学习内容的不同需求,教学团队可以结合授课学生的专业背景采用多样化的教学方案。比如,针对材料化学、油气储运等专业的学生,前六章是重点讲授的教学内容,目标是加强培养学生的计算思维意识和计算思维方法;针对飞行器动力、飞行器制造等专业的学生,前八章是重点讲授的教学内容,目标是侧重于程序设计和实现、解决专业相关的实际应用问题;针对电子信息工程、航空电气等电子通信类专业的学生,前十一章是重点讲授的教学内容,强调程序设计的方法和调试纠错技巧,以及数据结构和算法等计算机理论知识。
因为我校是民航特色专业院校,为了提高学生的专业认同度和学习兴趣,课程组特意设计了一些与学科专业融合的教学案例。例如,在学习选择控制结构时,设计如图1所示的案例。
3.2面向计算思维培养的教学方法
为了提高学生的学习效率,我们可以结合各种教育媒体辅助教学活动[6]。教学团队将课程的知识点进行碎片化分解,录制成了“微课”,放置在网络学习平台(智慧树平台)上,学生可以在课外时间利用手机在碎片时间里进行自主学习,这种方式是课堂教学活动的有效补充。录制“微课”视频的时候,教学团队考虑了几个方面:(1)知识点的划分要有助于学生计算思维模式的形成,即能让学生掌握知识点又能培养学生的计算思维意识;(2)每个视频的知识点要具有完整性,能够包含某个知识点的全部内容,不能过于零散,否则不利于学生形成对知识点的综合认识;(3)所有的视频要涵盖教学大纲中规定的所有教学内容,方便学生课前预习和课后的复习。比如,我们在第二章“C数据类型”部分,共录制了三个视频“微课”,分别讲授“数据类型”“常量与变量”以及“进制的转换”,每个视频都大约10分钟,完整介绍了一个知识点,即方便学生利用碎片化的时间进行学习,也有利于学生快速系统地掌握完整的语法知识点。
这种课外的自主学习只是课堂教学的辅助手段,教师还需要在课堂上结合知识点和学生提出的问题进行有效引导,加强对知识的巩固和延伸。为了适应“新工科”对人才的需求,教学团队改进教学方法,在教学过程中,强调学生实际解决问题、完成项目的能力培养,教师要辅助引导学生完成任务。在讲解具体案例时,通过以下几个步骤帮助学生养成计算思维的能力:(1)首先,引导学生对问题进行抽象建模,分析题目需要处理的数据概念模型;(2)然后,引导学生将抽象模型转换为C语言的数据结构模型;(3)最后,再引导学生将数据结构模型用C语言代码实现出来。
3.3强化计算思维能力的实践教学
C语言程序设计是一门高级程序设计语言,学生的编程能力只能通过一个又一个的上机实验,不断地编码、调试、总结反思而逐步提高。为了培养学生的计算思维能力、锻炼学生的实践编程能力,课程组老师规范了C语言实验课的上机流程,帮助学生养成良好的思维能力和编程习惯。每次上机实践课之前,把练习题目布置给学生,要求他们利用空闲时间分析题目并拟定解决方案,最好是把代码初步写出来。上课时,适度抽查学生课前工作的完成情况,学生敲入代码进行调试,不断完善问题的解决方案,最后完成题目。在实践过程中,学生会遇到各种各样的程序错误,任课老师要及时给予指导和帮助,引导学生掌握调试方法,纠正程序中的语法错误和逻辑错误。
为了帮助学生提高实践能力,课程组开发了在线作业提交系统,实现程序代码的在线提交和自动检验。在作业提交系统中,课程组以计算思维的核心概念为依据,突出学科融合型内容,针对不同学科设计补充一些课后实践案例。同时,根据学生编程能力的不同,设置难易程度有差异的例题,以供学生自由选择练习。
4 总结
培养学生的计算思维能力,是高校计算机基础课程的教学目标。针对传统讲授模式下,教师是教学主体、学生被动接受、学习效果不佳的教学现状,课程组在C语言程序设计课程中将计算思维与现代教学方法进行结合,融合授课学生的专业特点设计教学内容,调动学生的学习积极性,培养学生的计算思维能力,推动新工科建设,培养新型工科人才。
参考文獻:
[1] 谭浩强.研究计算思维,坚持面向应用[J].计算机教育,2012(21):45-49,56.
[2] Wing J M.Computational thinking[J].Communications of the ACM,2006,49(3):33-35.
[3] 罗海风,刘坚,罗杨.人工智能时代的必备心智素养:计算思维[J].现代教育技术,2019,29(6):26-33.
[4] 叶军,汪一心,王磊.以培养计算思维能力为导向的“C语言”教学资源设计[J].江西广播电视大学学报,2018,20(4):82-87.
[5] 梁正平,朱泽轩,李延红,等.学科融合型“大学计算机基础”MOOC教学改革初探——以面向生命科学学科的“大学计算机基础”学科融合型特色教学内容设计为例[J].工业和信息化教育,2017(7):7-11.
[6] 邓敏.“互联网+”背景下“雨课堂”混合式教学模式的应用研究[J].高教学刊,2019(9):100-102.
【通联编辑:王力】