蒋联源+袁浩浩+王智文+蓝红莉

摘要:信息技术类学科知识更新快、实践性强,有效培养信息技术类专业学生的创新能力和计算思维能力,是当前教学改革中的一项重要任务。文中以C语言课程设计的实践教学为例,从框架设计、功能实现、修改完善、解决新问题这四个方面展开讨论,以提高信息技术类专业学生的计算思维能力。近几年的教学实践评估及反馈表明,教学效果达到了预期目标,对学生计算思维能力的培养有一定促进作用。

关键词:信息技术类专业;实践教学;计算思维能力;课程设计

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)41-0273-02

实践教学是信息技术类专业中的一个重要环节,能进一步加深学生对理论教学内容的理解,培养学生的动手能力和创新能力。北京大学、清华大学等高校于2010年在西安召开的“九校联盟(C9)计算机基础课程研讨会”,教育部高教司于2012年开展的"大学计算机课程改革研讨会",都强调了培养大学生计算思维能力的重要性和迫切性。文中以C语言的课程设计为切入点,对信息技术类专业学生的计算思维能力培养进行探讨。对于培养大学生计算思维能力的教学研究,近几年引起了众多学者的广泛关注。比如,冯博琴[1]对计算思维能力培养的落地过程中一些普遍性问题进行了探讨;邓辉文等[2]从计算思维的角度对计算机问题求解课程的多个方面进行了分析。在C语言课程设计的教学改革方面,相关教学工作者也提出了自己的观点和教学措施。比如,吴丽娟等[3]从教学目标、实施流程以及教学策略三个方面,介绍了一种C语言课程设计的教学模式;武航星等[4]阐述了基于Funcode平台的C语言课程设计的教学实施过程。

一、课程设计的题目

设计并实现一个简单的学生成绩管理系统。该系统包括输入学生成绩、输出学生成绩、追加一个学生的成绩、删除一个学生的成绩、查询一个学生的成绩、修改一个学生的成绩、保存学生成绩到文件、从文件中读取学生成绩等功能。说明:(1)信息技术类专业的C语言课程设计一般是开设在大一第一个学期的最后两周,学生的专业知识非常有限,因此该课程设计的主要目的是锻炼学生的编程能力,而对学生所设计的系统不做专业性要求。(2)以2-3人为一组来完成课程设计,以锻炼学生的团队合作精神能力。

二、系统的框架设计

根据题目要求,可对系统的框架进行设计。限于篇幅,这里仅做简单的框架设计。系统的框架可分为输入、基本操作、输出三个模块,其中输入模块包括从键盘中输入学生成绩和从文件中读取已有的学生成绩两种方式,基本操作模块包括追加一个学生的成绩、删除一个学生的成绩、查询一个学生的成绩以及修改一个学生的成绩,输出模块包括将内存中的学生成绩输出至显示器和输出至文件。系统的功能模块图如图1所示。

完成了系统的框架设计后,学生就可以根据系统的功能模块图,编写各功能所对应的函数模块了。本阶段只需完成一个可运行的系统,实现主函数对各功能函数的调用。各函数的函数体无需实现,可以在函数体内编写一条输出语句,以便运行时可以确定各函数是否能够正确调用。

三、功能实现

在上一阶段的基础上,完成各个功能函数的编程实现。具体实现时,应注意如下几个方面。

1.在本阶段,应该注意各个功能函数的实现顺序。比如,应该先实现输入函数,再实现输出函数,以方便调试。

2.在选择存储各学生成绩的数据结构时,鼓励学生选用链表。对于对链表不熟悉的同学,可以考虑选择数组作为存储各学生成绩的数据结构。

3.本阶段涉及的知识难点较多,尤其是对链表和文件的各种操作。但链表和文件的各种基本操作的算法是固定的。因此,鼓励学生通过参考书本、有针对性地听该知识点的慕课等方式,先看懂听懂链表、文件操作的算法及代码,然后模仿着去实现本阶段的编程任务。

四、修改完善

上一阶段已完成了可正常运行的学生成绩管理系统的具体实现。本阶段对该系统进行修改完善,可从以下几个方面考虑。

1.更改编程实现的方法。比如,对于选用数组来存储各学生成绩的同学,鼓励他们用链表替代数组来实现各学生成绩的存储。

2.进一步完善已有功能。比如,完善查询功能,将仅按学号查询扩展成可按姓名或者班级等字段进行查询,也可实现某门课程某个分数段的人数查询等。

3.对系统的功能进行扩展。比如,对每门课程进行成绩分析,统计优秀、良好、中等、及格和不及格的人数及比例。

五、解决新问题

在完成本课程设计后,学生已具备一定的编程能力。一般来说,C语言课程设计是安排在教学周的最后两周,该课程结束后,经过一周的期末考试,就是寒假时间。为了更好地培养学生的计算思维能力,可以鼓励学生利用寒假期间,再设计、实现类似的小系统(难度上予以适当提高),比如学籍管理系统。在编程能力得到较好训练后,鼓励学生在教师的指导下组队申报各种学生类科技创新项目,项目内容的来源可以是教师的在研项目的子课题,也可以是学生根据自己的兴趣或者调研所拟定的题目。

六、结语

信息技术类专业的毕业生,无论是应聘像华为、腾讯、阿里巴巴等这样的大型IT公司,还是应聘小型的IT公司,都需要具备较强的实践能力。很多高校也比较重视这个问题,并为之做了许多工作。比如,作者所在单位的软件工程专业,在多年前就实施了校企合作、校外实训的进程。对一些高年级的实训课程,直接聘请IT企业的一线技术人员为学生授课;对于即将毕业的大四学生,安排他们去深圳、上海等实训公司进行学习,在学习期间,接触真实项目的开发,积累实践经验。校企合作、校外实训的教学模式,拉近了学生从校园到市场需求的距离,并且很大程度上弥补了学生重理论轻实践的缺点。本文以一个具体的课程设计的教学为例,讨论了其对学生计算思维能力的培养。计算思维能力的培养,不是一两门课就能完成的,它是一个长期的过程。

参考文献:

[1]Jeannette M. Wing. Computational thinking[J].Communications of the ACM,2006,49(3):33-35.

[2]冯博琴.对于计算思维能力培养“落地”问题的探讨[J].中国大学教学,2012,(09):6-9.

[3]邓辉文,熊海灵.计算机问题求解与计算思维能力培养[J].计算机教育,2014,(01):18-19,32.

[4]吴丽娟,申海,张浩华.C语言课程设计教学模式的探索与实践[J].沈阳师范大学学报(自然科学版),2012,30(01):122-125.