“C语言程序设计”课程建设与实践教学探索
——以大数据专业为例
2023-11-25包正义包山虎
包正义,包山虎
(内蒙古师范大学 a.计算机科学技术学院;b.地理科学学院,内蒙古 呼和浩特 010020)
“C语言”从1972年诞生以来,以其简洁性和结构完善等特点,被广泛应用于各大领域,在编程语言飞速发展的今天,依旧作为多数高等院校的计算机相关专业必修基础学位课程[1]。我校自2018 年设立数据科学与大数据技术专业以来,针对学科建设等进行了全方位、多维度的探索,“C语言程序设计”作为大数据专业大学本科一年级新生编程入门的基础课程,衔接了学生从计算机“零基础”到专业人才的过渡阶段,要求能够培养学生兴趣、建立学生信心、协助探寻处理问题的方法及引导树立正确的人生观和价值观,对专业人才培养具有重要的支撑作用。“C语言程序设计”课程旨在让学生掌握基本的程序设计和编写能力,理解计算机相关理论,为今后的学习和工作打下扎实的基本功。因此,本文从大数据专业人才培养目标、教学内容设计、混合教学模式及实践体系探索等方面进行了探讨。
一、人才培养目标
数据科学与大数据专业旨在培养具有大数据思维以及将领域知识与计算机技术和大数据技术融合、创新的能力,具备大数据核心技术的应用能力,能够胜任大数据系统开发、分析与挖掘等工作的专业型和研究型人才。“C语言”作为一门专业性较强的课程,主要内容包括计算机理论基础和C语言程序设计和开发,要求学生在完成本课程修读后,具有基础的程序设计与编写能力,具备编程的思维能力,善于使用编程思维解决问题。
“C语言程序设计”课程作为大一新生的专业必修课程,对学生兴趣培养方面十分关键,因此在教学过程中,必须结合多种教学模式、使用分组教学等方法,实现每一名学生高度参与教学活动,完成真正意义上的计算机入门。这就要求教师针对大数据专业和学生特点,引入国内外前沿内容和技术,全方位分析社会、学校和专业各方面的需求,结合新兴的教学资源,定制适合学生特点的课程教学模式。“C语言程序设计”课程除了要求学生具备以上编程和计算机能力之外,还要求在程序设计教学过程中,通过小组项目等方式培养其良好的沟通交际能力和团队协作精神。利用编程过程中的“Debug”过程培养学生认真、务实和勤奋的基本素养,结合教学时引入课程思政引导学生建立文化认同和民族自豪感[2]。基于项目开发帮助学生建立逻辑思维、改善解决问题能力及提升个人综合素质,不断地引导学生理论结合实践,灵活运用所学知识,保持终身学习,成为大数据等领域优秀的技术开发和生产管理等专业技术人才。
二、教学内容设计
“C语言程序设计”作为计算机相关专业必修课程多年,目前课程主要内容基本完善,包括程序和程序设计基础知识、C语言的分支结构、C语言的循环结构、函数、数据类型和表达式、数组、指针、结构体、链表、文件。其中以指针为分界线,从第一章到数组部分作为C语言程序设计基础内容,而指针、结构体、链表和文件部分作为C语言程序设计进阶内容,可根据不同专业培养方案进行不同的学时教学设置,在大数据专业中,要求其至少完成两学期共128学时的学习。“C语言”在教学创新改革中,往往难以找到突破口,结合现阶段技术手段和发展趋势,应用于线上各类平台,包括中国大学慕课的视频资源、超星学习通教学资源、雨课堂智慧教学方案及实验辅助类平台等,为教师和学生提供成熟稳定的软件系统平台,可以实现课前、课中、课后多环节新形势教学过程[3]。
在课程思政方面,因“C语言”教学涉及大量案例,教学过程中可在经典案例基础上,结合当下计算机流行元素和科技前沿进行融合,吸引学生对课程学习的兴趣。如在指针部分教学中,指针变量值的变化及其对目标变量的间接访问是学习难点,让学生上台扮演变量与指针变量,通过给学生所扮演的变量赋值,动态展现变量值的实时变化,在帮助学生理解计算机运行过程的同时,加深对指针部分知识点的理解与掌握。同时,在变量扮演过程中,通过给扮演指针变量的学生戴上白色的帽子和其他变量加以区分,引入“白帽子”的例子,引导学生掌握计算机技术后,需要为社会为国家做贡献,与“黑客”恶势力做斗争。通过这些新颖的方式方法,帮助学生更好地掌握C语言程序设计的知识基础,为实践做好准备。也可通过结合较火的短视频元素和流行语,融入课堂中,告诉学生“认真编程、仔细调试BUG,程序才能不emo”等,通过与学生更贴近的方式进行教学,强调编程过程中严谨思维的重要性,培养学生一丝不苟的学习态度,引导学生建立认真负责的价值观。
三、线上+线下混合教学模式
随着信息技术和互联网的发展,越来越多的工具和资源被用于课堂教学,针对本课程设计中使用的各项工作进行简单介绍。微信作为目前国内最流行的即时通信工具,其便捷性已不言而喻,通过课程微信群的建立,实现信息发布及与学生的实时交流沟通,是课前的重要工具。中国大学MOOC(慕课)即大规模开放在线课程,是一种教育受众面广(大规模)、开放的、基于互联网技术的在线课程[4],MOOC是高等教育出版社有限公司旗下的软件,自2019年发布以来,因其影响力和大量的优秀资源,吸引众多高校教师不断探索基于慕课的新教学模式[5],其中“C语言”课程方面包括浙江大学、哈尔滨工业大学、大连理工大学等多所高校已发布成熟的视频资源,用于学生课前自学和测试。雨课堂是清华大学在线教育办公室和学堂在线共同推出的混合式教学工具,其特点是将教学工具巧妙融入微软办公软件PPT与微信小程序,在推动混合式教学方面,逐渐成为一线师生点赞的教学利器。雨课堂因其嵌入PPT和微信的特点,特别适用于课堂互动,有助于吸引学生学习注意力,有效控制学生手机带入课堂导致的精力分散[6]。程序设计类教学辅助教学平台(Programming Teaching Assistant,PTA)是浙江大学国家级程序设计系列课程教学团队与网易公司、杭州百腾教育科技有限公司合作推出的开放式的教学辅助平台[7],是一款在线评判(Online Judge,OJ)系统,提供了多种类型题目设置,可用于在线考试等,其中C语言教学方面,其对学生答题代码的验证模块,可以帮助教师掌握学生在程序编写过程中所遇到的问题和难点,极大地减少了“C语言”课程程序编写类作业的评判时间消耗,可针对不同难度和不同题型的错误代码分布等精准讲解,提升课堂教学效率。
利用新兴的技术工具与方法进行课程设计,实现课堂教学创新,充分发挥学生的积极性,具体混合教学模式如图1所示。通过微信群实时通信工具实现课前任务发布及与学生的沟通工作,使学生能够时刻与教师在线同步交流,掌握学生课前动态;通过学生在中国大学慕课上视频资料的自学和相关测试,教师在后台掌握学生的预习情况、重点和难点理解程度;在课堂教学过程中,充分发挥雨课堂的优势,通过建立线上雨课堂班级,在教学过程中随时发布与讲解内容对应的习题,推送至学生微信端,学生通过微信进入雨课堂即可进行答题,既有效解决了学生上课使用手机不当的情况,又可根据雨课堂统计学生回答问题的情况,对课堂重心进行实时调整;在课后作业布置时,通过将相关题目发布至PTA平台,时刻掌握学生作业完成情况,统计不同难度的题目学生完成时间和正确率情况,有助于把握教学班级学生对教学内容掌握程度,以及课后在习题完成时时间分配细节。线上+线下混合教学模式,在传统课堂教学的基础上,引入了新兴的各类工具和平台,让学生的学习不仅停留在课堂上,还充分发挥学生的主观能动性,并将教师和学生紧密联系在一起,提升教师课堂教学效率,有利于学生对课程内容的重点和难点的掌握。
图1 教学设计思路与工具
四、C语言实践体系探索
实践教学是课程教学的重要组成部分之一,是培养学生分析问题和解决问题能力的重要环节,是帮助学生增强感性认识、提升实践能力、发散创新能力及拓展综合素质的根本途径,在培养学生基本素养和创新等方面具有重要作用。“C语言”作为程序设计类课程,在学生实践能力培养与理论部分具备同等重要的作用,近年来许多学校更加重视实践能力部分。C语言程序设计实践遵从由一般到复杂、基础到应用、单项训练到综合实践的原则,其主要目的是巩固理论教学知识。“C语言程序设计”实践教学中,将相应地设计与实现对应章节模块,综合模块部分从学生感兴趣的方向出发,开发出具有特色的软件应用。实践模块主要目的是提高学生动手实践能力,激发学生对专业的兴趣,使其能够主动思考,增加未来的核心竞争力。例如,针对DNA、GIS等计算机应用领域,提取简单的功能模块,布置学生项目任务,使学生以团队的形式完成相应的开发任务,在实践中得到编程技巧和综合素质的提升。实践创新方面,师生形成研究团队,参加天池大数据竞赛、“互联网+”大学生创新创业大赛、“挑战杯”等各类竞赛。通过参加竞赛使学生真正地将所学知识应用到实际系统中,激发学生的创作热情,加强学生的编程能力和思维能力,并且能够培养其团结协作精神,在参赛过程中开阔教师与学生的视野,使其能够从多角度学习实践[8]。
结语
“C语言程序设计”课程作为数据科学与大数据技术专业的基础学位课程,具有很强的技术性和实践性,课程创新对学科建设具有重要意义。教学过程中,应结合教学对象特点,利用现有学校资源和线上各类平台,选择合适的教学媒体和工具,采用理论教学创新引导实践教学完善的思路,多维度培养学生的学习能力和综合素质,增强核心竞争力。在培养目标方面,需要针对学生个性特点开展课程和实践教学,充分发挥学生的主观能动性,不断提升学生的创新能力和综合素质,同时引导其树立正确的人生观和价值观。在信息技术发展迅速的背景下,为培养适应社会发展的大数据技术人才,对“C语言程序设计”课程教学模式的改革仍需要不断地探索、实践与完善。