“高级语言程序设计”课程教学现状与探索

2022-06-07 07:42马小蕾
数字通信世界 2022年5期
关键词:课程目标程序设计案例

马小蕾

(内蒙古民族大学计算机科学与技术学院,内蒙古 通辽 028000)

1 教学中存在的问题

在教学方式上存在的问题由来已久,工程教育理念滞后[1]。在C++语言的教学中,理论学时偏多,实验学时较少。从内蒙古民族大学计算机科学与技术专业近两年年的达成度报告上来看,“高级语言程序设计”的课程目标分为以下三类。

课程目标1:掌握计算机中数据的表示形式、数据类型与运算符的基本概念;掌握函数、数组、指针的基本概念;掌握结构体类型、类和对象、继承和派生的基本概念。能够对实际问题进行抽象描述,将实际问题抽象转化为计算机可处理的问题并对其建模求解。

课程目标2:掌握程序的三种基本控制结构;掌握面向过程和面向对象程序设计的基本思想,能对具体问题进行算法表述,并能结合相关科学原理和数学模型正确表达计算机领域复杂工程问题。

课程目标3:掌握面向过程和面向对象程序设计的方法和技巧,并能熟练进行程序设计;具有对计算机系统自底向上和自顶向下的设计开发能力。

对学生本门课程的评价和评分采取下述方法。

1.1 课程评价方法

对课程目标的达成情况采用定性与定量相结合的评价方式。

(1)定性评价。学院评价小组及“高级语言程序设计”课程组对课程目标及课程目标分解能否有效支撑毕业要求相关指标点,课程内容、教学方法能否有效支持课程目标实现,课程考核方式、主要评价依据是否合理进行了多次讨论和修订,在课程期末考试阶段,采用机考组卷方式,对机考题目类型进行确认,对是否覆盖指标点及课程目标,是否侧重非标试题注重能力考核等内容进行分析。

(2)定量评价。定量评价通过计算课程目标达成度完成。

1.2 课程评价依据

(1)课堂表现成绩:主要考核课上回答问题、做练习和小组讨论的参与情况,主要评价依据是课堂提问、课堂练习和小组讨论等。

(2)在线测试成绩:主要考核对每堂课知识点的预习以及课后的复习情况,主要评价依据是网上测试。

(3)作业成绩:主要考核学生对课堂知识点的复习、理解和掌握程度,主要评价依据是网上提交作业。

(4)期末考试成绩:主要考核学生对面向过程程序设计的基础知识、类与对象的基本概念和程序设计方法的掌握程度,主要评价依据是机考形式考试,主要题型为单项选择题、判断题、程序填空题、程序改错题和程序设计题。

1.3 课程评分标准

在课程教学大纲中按优秀、良好、合格、不合格四个档次给出了成绩构成项的详细评分标准,依据学生对各课程目标相关知识点的掌握、运用、动手操作程度以及课堂整体表现情况、在线测试结果、作业评判结果、期末考试成绩等进行量化打分,最终计算出单个课程目标达成度评价值,具体每个成绩构成项的量化评分标准细则见课程的教学大纲。

针对课程目标以及评价标准,分析学生成绩,总结近两年的本院学生在本门课程上存在的问题。由于基础学时过长,对学生的能力培养泛化,面向过程和面向对象两阶段的教学设置,使得学生产生基础遗忘等问题。在教学中,将程序设计基础和面向对象课程进行合并,设置为高级语言课程;将教学内容分为两大板块,面向过程部分及面向对象部分。课程采用2019版培养方案和2019版教学大纲指导教学,设置明确的课程目标,将教学内容与学生能力培养相对应;在大纲中设置多样化的过程性考核方式,全面评价学生的学习情况;制作课程目标达成情况分析报告,对课程的教与学进行定性定量评价。

以2020-2021第一学期为例,课程目标1、2、3中均有未达到预定期望值的学生(见图1图2),并随着课程目标难度的增加,未达预期学生人数显著升高。这表明学生在学习过程中,对实际问题的数据抽象能力不足,不能很好地进行思维转换。其中课程目标1未达到预期人数为31人,占比41.3%。末考的平均分相对不高,对应的试题类型为程序改错1题,表明部分学生基本理论知识尚不扎实,没有很好地进行预习和复习。课程目标2未达到预期人数为38人,占比50.6%,表明有一半以上的同学对算法和编程理念掌握不扎实,对算法类编程知识掌握不是很好。课程目标3未达预期人数为38人,占比50.6%,表明有一半以上同学对类和对象的概念掌握不牢固,类的设计不能很好地完成。

图1 课程目标1达成情况

图2 课程目标2达成情况

个体分析:综合学生成绩分析,在对不及格试卷和未达到预定期望同学试卷进行分析发现,学生对于程序设计问题不具备良好的数据抽象能力,不能很好地建立数据模型;并且对于循环语句、函数问题、类和对象等基础知识掌握不牢固。在课程目标3未达到预期的38人当中,绝大部分对类的程序设计题目不能作答,仅能进行数据类型的定义,算法设计部分基本为空白。在对不及格学生的统计过程中发现,基本知识的掌握、数据类型的定义都不是很好掌握,特别是程序设计题目并未作答,反映出部分学生学习兴趣度不高,缺乏独立学习问题的能力。

在课堂上,教师以讲练结合的方式为主,但理论讲解时间偏长,对于刚入学初次接触编程语言的大一学生而言,晦涩难懂。由于并未积极的采取科学的教学方式,缺乏新意,导致课堂授课效果不佳,部分学生对学习失去了兴趣,对自身产生了怀疑。这与创新能力培养人才培养目标的理念不符。

部分学生学习主动性和自觉性差。在教学中虽然采取讲练结合,辅以实验,但由于C++语言理论枯燥,难度大,学生只是初步掌握了C++语法知识和调试技巧,缺乏主动学习和构建知识的动力,不能独立地对问题进行抽象并运用知识加以解决,有惰性,学习氛围和学习风气不浓。

我院现有专业课教师虽然具有深厚的理论功底,但是缺乏大型工程实践经验,在实际教学过程中会出现重理论轻实践的问题。同时由于师资不足,专业课老师授课学时较多,缺少进修和提高自身教学水平的机会,很大程度上影响了教学质量。

2 C++ 语言教学改良措施

在今后的教学中需要增加基本理论知识的测试,以示例形式引导学生学习,培养兴趣;进一步增加类和对象的教学内容,多展示实例,以小组讨论形式调动学生积极性并进行分析解答,实时评价,及时发现问题并解决问题,提高教学质量。

根据以往教学情况,加强课前和课后自测,增加案例、图例,开拓学生视野,调动学生积极性,让学生主动积极参与进来。

从多视角来看,大部分同学达到了学习预期目标。对于初次接受这种未知领域的编程技术,学生的接受能力符合预期,可以在课程末期进行工程性实践,让学生理解这门课程的实际应用。具体措施如下。

2.1 激发学习动机

对于初入大学的第一门专业课,学生的兴趣程度,从某种意义上讲,取决于任课老师,只要学生产生兴趣,就会主动地学习这门课程,也会为后续的专业学习打下良好的基础。因此任课教师的第一堂课要精心准备、精心讲授,以激发学生正确的学习动机。随着“十三五”规划的完成与“十四五”的开始,IT行业是发展的重要行业,IT人员的薪资持续增高。无论是就业、考研、自主创业,C++语言和面向对象编程都是计算机专业毕业生的基本要求。第一堂课可以展示我院优秀学员创业情况,就业情况,同时展示一些小游戏,图像的处理具体说明为什么要学习C++语言,它的应用场景有哪些,激发学生的学习动力。

2.2 案例教学的实施

培养学生的编程思想是C++语言程序设计教学的重要目标,掌握C++语言相关技术,具备编程思想,可以将理论知识转化为实际运用,从而提高分析问题、解决实际开发问题的能力。

从历届的教学评价和学生反馈的情况来看,学生从离开高中那种题海模式到大一学习这门需要理论和实际相结合的课程,这种跨度对学生们来说较大,因此需要教师们在引导教学上多下功夫。案例教学在学校其他工科课程中已经起到了良好的效果,但不同的学科和不同层次的学生应采取相应的教学方式,所以如何运用案例教学是至关重要的。好的案例和授课方式能激发学生的求知欲,有助于学生理解C++语言枯燥的语法知识,同时也能提高分析问题解决问题的能力。因此采取案例教学,对于学院的学生来说,首要是具有趣味性,激发学生的学习兴趣,增强课堂教学教学效果;其次案例的选择要符合教材的特点,具有针对性,由浅入深。

首先,在第一堂课的讲解中,可以展示采用C++语言编写的游戏,例如,人机大战。让学生们讨论,这个游戏存在的缺陷。从而引出这个游戏所用到的C++语言的知识有哪些,也是这本书所学习的内容,当本学期课程结束时,同学们会独立开发出类似人机大战的游戏。而在每堂课的讲解时,需要根据教学大纲、教学内容,实时配套相应的案例。例如,在讲解“子函数”时,可以以学生们感兴趣的基因编辑为例,引入动态规划算法中的编辑距离,结合课件具体讲解子函数的用途、定义的格式等,抓住学生的注意力,提高教学效率。

其次,教学过程应该是多样化的、灵活的、因人而异,不能局限于教师讲解,要以多种形式辅助。例如,在冒泡排序的学习中,由于排序过程比较抽象,可以用视频的形式展现,网上有许多关于冒泡排序的舞蹈视频,生动形象,比教师直接讲解对学生的触动和理解影响更大一些。

再次,案例教学也不应局限现场教学,在学生课上对案例深入了解并掌握教师所传授的理论知识后,教师可以适当布置程序设计任务、线上作业,PTA平台练习等。学生模仿课上的教学案例,完成本次布置任务的程序设计之作。可以根据案例的难度,动态地让学生选择自主设计或者是小组合作设计,开展探究性的高级语言程序设计实践活动,教师适当辅以指导,让学生也能够掌握C++语言程序设计的方法和要领。

最后,在学生完成小组讨论和程序设计以及线上作业后,教师应对本次运用案例情况做出科学总结,说明学生设计存在的问题和优点,对存在的问题给出应对解决措施,同时要鼓励学生,并对优秀的作品进行展示,提高学生的积极性。

3 结束语

本文简单分析了内蒙古民族大学计算机专业学生学习“高级语言程序设计”课程的现状;为培养适合当前社会需要的人才,提升本院学生的竞争力,提出了符合本院学生特点的案例教学法,以调动学生的积极性,激发学生学习的主动性,打好编程语言的基础。■

猜你喜欢
课程目标程序设计案例
《计算方法》课程的“面向产出”评价改革实践
课程目标来源理论的批判与重建:从“小三源”论走向“大四源”论
基于工程教育专业认证的课程目标达成度定量评价研究
——以信号与系统课程为例
医学专业“Python程序设计”课程教学改革总结与思考
案例4 奔跑吧,少年!
TWO VILLAS IN ONE CEDIA 2020案例大赛获奖案例
Bespoke Art Deco Media Room CEDIA 2020案例大赛获奖案例
基于Visual Studio Code的C语言程序设计实践教学探索
一种将课程目标关联到毕业要求的评估方法
从细节入手,谈PLC程序设计技巧