数据科学与大数据技术专业程序设计课程教学初探
2021-06-24赵艳芳潘文林
赵艳芳,潘文林
(云南民族大学 数学与计算机科学学院,云南 昆明 650031)
2016年,教育部发布的《2015年度普通高等学校本科专业备案和审批结果》中,首次增设数据科学与大数据技术专业,北京大学、对外经济贸易大学、中南大学成为第1批成功申请到“数据科学与大数据专业”的学校[1].2017年3月,第2批32所高校获批[2].而在2018年《教育部关于公布2017年度普通高等学校本科专业备案和审批结果的通知》中,第3批有248所学校获批[3],是过去2次审批通过总数的近8倍.
由于数据科学与大数据技术专业是新开设的本科专业,不同高校根据自身教学资源与办学条件制订相应的人才培养目标,虽然有各自特点,但总的来说,该专业主要培养具有信息科学、数理统计和数据科学的基础知识与基本技能,掌握大数据采集、预处理、存储、处理、分析、可视化和数据安全等技术,具备一定的数据科学研究能力以及数据科学家岗位的基本素养,能胜任数据分析与挖掘算法研究和数据系统开发的应用型和创新型人才.
文献[4]对数据科学与大数据技术专业建设进行了研究,从课程体系、师资力量和实践平台3各方面进行了建议,在课程体系建设中提到,基础能力培养涉及课程包括程序设计、数据结构等课程.文献[5]针对新工科背景下数据科学与大数据技术专业建设问题进行了研究,通过对毕业要求指标点进行分解,给出了指标点与支撑课程的关系,这些课程中涉及大数据编程、深度学校编程、数据处理编程、数据分析编程以及算法分析与设计等课程.文献[6]则对目前我国开设数据科学与大数据技术专业的高校为研究对象,对各高校的开设情况、课程数量、类型、特点等进行了全方位分析,文中指出,数据工具类课程中,编程语言类课程所占比重最大.文献[7]对数据科学与大数据技术专业核心课程建设进行了探索与研究,文章以北京大学、中南大学以及福建工程学院的培养方案为例进行分析,指出3所学校都开设程序设计、数据结构、算法设计与分析等计算机学科相关课程.文献[8]对数据科学与大数据技术专业特色课程进行研究,在系统调研世界一流大学该专业建设现状的基础上,分析了国外8所大学的数据科学专业特色课程,提出了该专业应重视的10门特色课程,其中涉及Python语言课程;文章还重点分析了我国数据科学与大数据技术专业课程体系设计存在的不足及普遍存在的8种曲解现象,其中之一是照搬传统统计学和计算机科学专业课.
从上述文献可以看出,程序设计能力是数据科学与大数据技术专业毕业生应具备的基本能力,然而该专业的主要目标是对数据的采集、处理和分析应用,因此对程序设计能力的要求应该与计算机类其它专业的有所不同,应根据专业需求制定程序设计类课程的教学目标.目前尚未看到探讨该问题的相关文献,本文针对该问题,首先分析数据科学与大数据技术专业毕业生应具备的程序设计能力,针对能力要求制定程序设计课程的教学目标,以《C程序设计》课程为例,对该课程教学实践进行了探讨.
1 程序设计课程教学目标
从数据科学与大数据技术专业培养目标可见,毕业生只有掌握大数据采集、预处理、存储、处理、分析、可视化和数据安全等技术,才能胜任数据分析与挖掘算法研究和数据系统开发相关专业工作.这一系列技术都需要学生需要有扎实的程序设计基础.因此,程序设计课程是数据科学与大数据技术最终归要的专业基础课之一.
通常,只要专业课程涉及嵌入式编程相关的,程序设计课程通常开设《C程序设计》,需要学生理解和掌握指针技术.数据科学与大数据技术专业的专业课程主要围绕数据采集、数据处理和数据分析这几个技术层面,应关注数据处理相关的编程技术,不需要关注硬件相关的嵌入式编程技术,因此,可以弱化指针之类的相关编程技术.
以云南民族大学数据科学与大数据专业为例,该专业学生需修读完人才培养方案规定的160学分方可毕业,其中专业基础课57学分.程序设计课主要涉及C程序设计、Python语言程序设计和面向对象程序设计(Java),共9学分.程序设计课程对后续课程的支撑关系如图1所示.
图1 程序设计课程对后续课程的支撑关系
2 C程序设计课程的教学实践
2.1 课程知识模块
数据科学与大数据专业人才培养目标是学生毕业后,能在健康医疗、扶贫大数据等相关产业从事数据科学研究、大数据相关工程分析开发、测试、运维、管理和咨询等工作.针对数据科学与大数据专业的人才培养目标,对C程序设计课程进行了知识重构,强调以计算思维训练为目的,循序渐进地融入后续课程.课程知识点及要求如表1.
表1 课程知识点及要求
在表1中,1~5项属于基本程序设计,培养学生基本编程的能力,是所有专业共同的知识点,其中计算机类专业更强调内存的使用,而数学类、统计类则一般不单独提及,数据科学与大数据专业对内存使用要求理解程序运行过程.6~9项属于高级程序设计.计算机类因后续课程涉及嵌入式编程相关课程,会重点讲解指针部分的内容.而数据科学与大数据专业这部分内容可以弱化,甚至不讲.而数据科学与大数据技术专业因后续课程的需求,应该对文件部分内容进行讲解,使学生熟悉文件基本操作的方法.另外,在表中未列的内容,比如位运算,对于电子信息类专业是重点讲解的内容,对于数据科学与大数据专业则可以不讲.
2.2 课程教学方法
课程教学采用线上线下相融合的教学模式,使教学活动不受时空限制,随时随地进行.
1) 线上学习融合的教学模式 通过慕课平台,培养学生自主学习的能力.课程采用学堂在线网络课程,通过布置学生完成相关视频的观看,对课程进行预习.在教学中,教师主要针对具体问题进行分析讲解,将课程重心放在计算思维、程序分析与调试等实践训练.慕课平台记录学生学习情况,教师可以随时进行跟踪、督促,强调学生的学习过程.
2) 学习社区构建 构建学习社区,一是将学生分组,按小组建立微信群,高年级的助教同学担任小组长,对学生平时作业进行检查、批改,任课老师与各组长进行定期交流,掌握学生学习和作业情况.二是使用微信小程序“小打卡”,由老师在打卡圈里布置学习、讨论任务,学生在打卡圈内打卡反馈.学习社区的建立,营造了良好的学习氛围,同学之间既有竞争的激励,也有同伴的鼓励.
3) 雨课堂辅助教学 课堂教学采用雨课堂,充分调动了学生的积极性.教师可以将带有MOOC视频、习题、语音的课前预习课件推送到学生手机,师生沟通及时反馈;课堂上实时答题、弹幕互动,有效实现了师生互动.雨课堂教学模式,一方面提高了同学上课的积极性,另一方面,使学生在教学中参与度得到提高.
2.3 课后实践
课后实践是C程序设计课程的一个重要环节.通过实践环节,是学生掌握程序设计的方法、步骤,巩固课堂教学中所学知识.该课程的课后实践环节共分为3部分.
1) 线上作业 线上作业主要采用学堂在线慕课课程布置相关知识点作业,重点是随堂知识点巩固练习.该部分作业包括视频学习、课后知识点练习,通过学堂在线后台管理,教师可以及时掌握学生学习进度、作业完成情况、知识点掌握程度.
2) 平时上机作业 平时上机作业采用CG一体化教学平台,老师布置随堂上机程序设计练习,学生在线提交,由助教学生和老师共同完成作业批改.
3) 大作业 大作业是小组共同完成的项目设计作业.一学期开展2次,分别将一段时间内所学知识点融入到项目课题中,由小组进行讨论,分工完成,形成项目报告并进行现场演示讲解.一方面强调学生的动手实践能力,另一方面培养学生的协作能力.
3 结语
程序设计课程是数据科学与大数据专业的基础课,是贯穿整个人才培养的一系列课程.C程序设计课程是高校计算机类专业本科的必修课,作为数据科学与大数据专业教学实践只有一年.在此过程中,结合该专业学生的培养目标,对C程序设计课程知识点进行了重构,以培养学生计算思维和支撑后续课程的学习为目标,对教学内容进行了整合.在教学过程中,采取形式多样的教学策略,构筑线上线下相融合的教学模式,激发学生的学习兴趣和主动性,提高学生的自主学习能力和团队协作能力.C程序设计课程的教学改革,对后续程序设计课程的启发是,要以产出为导向,对课程知识进行重构整合,走出照搬传统计算机专业课程的误区.