以“数据结构”课程为导向的“C语言程序设计”课程的教学研究与实施
2022-05-30叶倩王旭东
叶倩 王旭东
关键词:C语言程序设计;数据结构;应用型本科;教学实施
中图法分类号:TP392 文献标识码:A
由于“C语言程序设计”与“数据结构”存在关联知识点,因此总结两门课程的知识点内容,提出知识重难点与训练拓展的方向,可以对学习“数据结构”打下坚实的基础。
1研究意义
“数据结构”是计算机专业重要的专业基础课程,“C语言程序设计”则是一门重要的大类基础课程,也是“数据结构”等专业基础课程的前导课程。因此,“C语言程序设计”的教学对于计算机专业尤为重要。此外,由于学生对知识点掌握的深度不够、畏惧难题心理等问题,结合本校应用型本科的教学特点,本文对“C语言程序设计”和“数据结构”的教学内容、教学方法、考核方式进行了改革研究。
“C语言程序设计”是学习计算机相关学科的工具,数据结构则是带“结构”的数据元素集合,描述数据元素的存在关系,包括逻辑结构和存储结构十分重要。
2课程内在联系分析
按照数据的逻辑结构可以将数据结构分为线性结构和非线性结构,而数据存储结构的基本形式分为有顺序存储结构和链式存储结构。
学生对“C语言程序设计”的熟悉掌握程度直接关系到“数据结构”的教学效果。C语言的难点是指针、函数、数组作为函数参数,以及结构体类型等,而在“数据结构”的教学过程中,主要运用这些知识点来分析、解决问题。对很多学生来说,对于C语言的运用能力不强,如果直接进入“数据结构”课程的学习,会有畏惧心理。我们采用三课时的时间复习C语言的知识点,并将这些内容加入到教学大纲及教学进度表中。虽然三课时未必能让所有学生灵活应用C语言去学习“数据结构”,但是在课后,学生能够明确如何复习并进一步学习“数据结构”相关课程。
3 教学改革研究
3.1问题分析
从教学过程及评价结果进行分析,主要有以下几个问题。
课程教学内容过于简单,知识点多且散。对于很多知识点的细节方面,学生无法完全掌握。单纯依靠课堂教学及练习不能满足应用型本科学生对“数据结构”等后续课程的学习需要,且不能全面考核编程能力、程序调试能力,未发挥出大类基础课程的实际作用。
缺乏改革大类基础课程的想法及推动力。第一,在“C语言程序设计”课程教学方面,教师普遍采用固定的教学模式、教学内容、教学进度,虽然学生对这种传统的教学方式及内容感到轻松,但课程的教学效果并不好;第二,新教师主要将精力放在教学内容上,未思考教学改革等问题;第三,教学改革缺乏思路,没有想到好的改革的方法。
3.2解决办法
3.2.1精准定位教学目标
学生希望在获取本科学位的同时掌握一项或多项专业技能,所以课程的教学既有理论目标也有技能目标。对于“C语言程序设计”课程而言,需要建立结构化程序设计思想,养成正确的程序设计风格和严肃认真的工作作风,在掌握基本语法规则和结构化程序设计方法的同时,逐步积累常用算法和程序设计的技巧,能初步解决常见的简单应用问题,最终为后续的“数据结构”等课程打下良好的基础。
3.2.2加强计算机基础课程教学改革的意识
学校推进教学项目改革,教师树立教学改革意识。在计算机基础课程中,教师应分析并发现问题,及时寻找解决问题的方法。教师通过对教学过程的观察及总结、参加培训、教学听课活动、教学讲座等各种方式,多方面接触教学改革思路、方法,做到在思想上积极参与教学改革。再结合目前所教授的课程进行分析,从教学目标、教学内容、教学方法等多方面进行改革。
3.2.3“以赛促学”
一般而言,“C语言程序设计”课程会开设在大一上学期。此时,新生刚刚踏入大学校园,对大学校园既感到新鲜又存有敬畏心理———从高中过渡到大学,学习方法、学习科目内容以及对教学方式都不适应。但新生的可塑性和学习动力极强,对于各类竞赛都跃跃欲试,这时需要鼓励,引导其参加各类竞赛,从各类竞赛中找到学习目标、方法以及兴趣。
4课程教学改革
4.1精选教学内容、教学内容融合、教学目标对应
现针对“数据结构”的课程内容,可对“C语言程序设计”课程的相关知识点做拓展。
4.1.1数组
“数据结构”课程中的顺序存储结构采用数组解决问题,而数组的特点是:所有元素杯顺序存储在一块连续的存储区域中。在进行数组的应用案例讲授时,教师可以将数据结构的例题作为应用案例,寓教于乐。
4.1.2其他数据类型
在结构体类型、共用体类型、枚举类型和typedef自定义类型等知识点中,数据元素需要指定数据类型,抽象数据元素也如此,采用typedef自定义已存在或已构造的数据类型为数据元素类型。
4.1.3函数
在“C语言程序设计”课程中,使用编译预处理指令插入库文件。而在“数据结构”课程中,用得更多的是自己编写的头文件———可以对数据进行组织处理,对数据的操作集合采用函数进行处理。在“C语言程序设计”课程中,可以将操作实现作为应用案例加入函数教学内容中。
4.1.4指针
指针内容包括指针型数据、指针运算、指针数组。
函数和指针的内容比较难理解,数据结构中运用得最多的就是函数和指针,而“数据结构”将用实际案例讲解指针的作用,深入浅出。
4.1.5内存的使用
在“数据结构”中,链式存储结构需要动态申请内存空间的函数,链式存储结构中的每个节点在需要时向系统申请,不再需要时由申请者释放。我们可以将“数据结构”课程中链式存储结构作为应用案例,学习“C语言程序设计”课程中的内存的使用。
4.2结合学生情况,采用“以赛促学”的教学方法与手段
结合OBE教育理念——成果导向教育、能力导向教育、目标导向教育、需求导向教育,以成果为目标导向,以学生为本,实施以教学成果为导向,创设多维灵活的学习评价方式。将竞赛评分机制引入课程内容作为评价标准,增强过程性考核标准。
4.3建立学习环境,开拓学习范围
在教学时使用学习通等平台,让学生自主学习基础理论知识,并定期开放计算机专业实验室。一方面为学生提供良好的训练平台,在开放的过程中由学生管理为主,教学平台管理为辅;另一方面,教师利用参与引导的方式,通过实验室交流学习,为不同年级的同学之间取长补短,对与学科相关的比赛类型和比赛内容进行交流分析,吸引更多的同学参与,激发学生的学习兴趣。
5结语
当进入“数据结构”课程的学习时,我们会发现很多“C语言程序设计”课程中的内容需要深入学习。并且在应用的过程中,总结经验以及进行案例分析,对计算机专业的学生学好“C语言程序设计”课程只是入门的第一步。结合多种教学方式、教學手段,秉承“以赛促学”的理念让学生进行实战,可以为后续计算机专业课程的学习打下坚实的基础。
作者简介:
叶倩(1989—),硕士,讲师,研究方向:嵌入式系统、机器学习。