“程序设计(上机)”实践教学研究
2019-10-11梁雅丽
梁雅丽
摘 要:“高级语言程序设计”是高校大多数专业的基础必修课程,“程序设计(上机)”是南京邮电大学通达学院相应开设的实践课程,主要以C语言作为程序设计语言。文章从课程安排、实践指导、资料提交、课程考核等方面着手,分析在实践环节中遇到的问题,提出合理实用的解决方法。实践证明,该方法有效提高了学生自主实践创新能力,取得了良好的集中实践教学效果。
关键词:程序设计;课程安排;实践指导;课程考核
1 “程序设计(上机)”相关介绍
“程序设计(上机)”是南京邮电大学通达学院开设的专业通识基础课,属于集中实践环节,是数据结构、操作系统、数学建模等课程的先修课程,是一门必不可少的上机实践课程。本课程有助于学生巩固并掌握上学期所学“高级语言程序设计”课程的综合程序设计技术,以培养学生的实践动手能力,为后续各门计算机课程的学习打下坚实基础[1]。
2 课程任务
本课程为时两周,共计48课时,任务是通过集中时间上機实验,使学生充分发挥已有的编程能力,熟悉编译环境,选择若干课题,进行审题、分析、设计和调试,并根据要求写出实验报告。
3 实践课程问题探讨
3.1 课程安排
(1)选题:在第一节课,学生进行自主选题。上机实践题目从内容上分为算法实现、文本字符串处理、常用程序设计3类,从难易程度上又分为难(H)、中(M)、易(E)3类,要求学生每人选2题,内容来自两类,至少有1题为“M”。学生根据自己的兴趣、爱好,选择自己想做的题目,所选题目难度越高,完成情况越好,所得分值越高。一旦确定以后,交与班长登记,选定题目后不得更改。
(2)编程准备:为了巩固C语言基础知识,为后续编程做准备,之后8个课时内要求学生完成一套基础练习题,包括改错题、填程题和简单编程题。
(3)程序设计:接下来25~29课时,要求学生根据自选课题,进行编程实践,并撰写实验报告。要求程序完成基本功能,结果正确,程序健壮,代码可读性强,界面友好,操作简单。要求实验报告格式规范,内容合理,逻辑清晰,包含问题描述、课题分析、算法描述、源程序、实验结果分析及讨论。
(4)交流汇报:余下时间,程序验收和答辩。要求学生陈述课题成果和心得,解答老师和其他同学的疑问[2]。
由于是自主选题,大部分学生选择2个“M”,少部分选择1个“M”和1个“E”,极少选择“H”,而且选题重复率比较高,常见经典题目被选择的可能性更大,设计的程序重复率高,很难激发学生自主创新思维,无法取得良好的实践效果。另外,程序设计时间较长,大部分学生通过自主思考、查找资料等方式提前完成编程和实验报告,或是抱有时间还早的拖延思想,学生觉得无聊,看手机、玩游戏现象时有发生。因此,合理选题和进度安排非常重要。
3.2 实践指导
本课程大部分时间是学生自主学习、查找资料、编程、调试、撰写报告,老师主要负责讲解课程任务和要求、答疑、程序验收和成绩评定。但是由于学生的程序设计水平参差不齐,对于基础知识的掌握程度不一致,如果只是将题目给学生,让其自己去查找资料,很容易导致部分基础较差的学生只是上网找答案或是复制其他同学的代码等情况出现,而不是再利用集中实践环节提高自身的编程能力。因此,老师需要合理安排实践指导,回顾和巩固编程知识,带动学生学习氛围,带给学生编程的成就感[3]。
3.3 资料提交
课程结束后,每人需要提交的资料包括:程序设计报告纸质版、所选题目源程序、程序设计报告电子版。源程序和程序设计报告电子版放在一个文件夹,文件名为自己的学号+姓名,统一提交给班长,班长建立班级文件夹,文件名为班号,打包发给老师。纸质版和电子版资料均需要老师一一核查评定,避免缺漏,并给出最终考核成绩。
3.4 课程考核
本课程考核由平时考核、程序验收、程序设计报告3部分组成。其中,平时考核占总成绩的10%,包括到课率、课堂表现等;程序验收占总成绩的40%,包括讲解、答辩等;程序设计报告占总成绩的50%,包括报告格式、内容等。老师一一对所有学生的程序进行验收,要求学生讲解程序并回答相关问题,查看设计报告,对程序和报告提出改进意见,要求学生进行完善。但是平时考核所占比例过少,容易使学生产生“上不上课无所谓”的错觉,导致学生不重视实践课堂纪律。因此,老师需要合理安排课程考核和成绩评定标准。
4 实践问题解决方法
4.1 限时课堂测试
经调查研究,部分学生觉得上机实践时间较长,完成所选课题后便无所事事;还有部分学生基础掌握不扎实,已经遗忘基本的程序设计方法,拿到题目后首先百度搜索,而不是思考解题方法等,上述情况导致本课程没有取得理想的教学效果。为了回顾和巩固基础编程知识,本课程的第一阶段任务改为课堂测试,第二阶段再进行选题。课堂测试内容包括基本的顺序结构、选择、循环、数组、字符串、指针、文件等相关经典算法,由浅入深、一步步完善知识体系。每次测试都是限时编程,要求学生在规定时间内将正确的程序和运行结果提交给老师,测试期间不允许百度或抄袭。老师根据提交情况,了解学生的基础知识掌握程度,并从中选择优秀的程序进行演示,指定该学生分享自己的设计思想,鼓励学生展现自己,促进学生共同学习。每次课堂测试后,都会留时间进行巩固复习,规定时间内无法完成程序设计的学生可以继续编程,已完成的学生可以进行基础练习题的设计[4]。
4.2 合理选题
为了提高学生的学习兴趣、实践能力以及获得感,本课程上机实践题目经过改编,将历年来全国计算机等级考试二级C语言的程序设计题目融入其中,整体难度中等,个别题目较难,且网上无法直接查找到答案,促使学生自主思考,切实增强实践能力。为了避免热门题目重复率高、冷门题目无人问津的情况再次发生,老师编写简单的随机分题程序,将题目随机分配给各位学生,每个班的学生题目不重复。由于难度相仿,虽然各个学生基础有差异,但在课堂测试后,学生的实践动手能力已经有所提升,对于选题也没有太大争议。
4.3 程序驗收
为了避免资料缺漏,老师在程序验收时除了要求学生讲解和答辩外,还要查看学生的电子版资料是否齐全,包括课堂测试、基础练习题、源程序和报告电子版,提出相应的意见并记录验收成绩。
4.4 成绩评定
课程考核中平时考核虽然占比不高,但是非常重要,因此,规定旷课3次以上的学生没有答辩资格,不予通过考核。对于优秀等级的成绩评定,除了要求程序验收和程序设计报告均为优秀以外,还要求学生完成优秀认定,即有意向获得优秀的学生,在最后一节课统一进行限时编程,任课老师出题,不得查找资料,规定时间内完成即为优秀候选人。结合优秀认定,最终评定优秀等级。
5 结语
“程序设计(上机)”是一门非常重要的基础必修课程,是一门集中性实践课程。本文从课程安排、实践指导、资料提交、课程考核等方面着手,分析在实践环节中遇到的问题,提出合理实用的解决方法,有效提高了学生自主实践创新能力,取得了良好的集中实践教学效果,为其他类似实践课程提供借鉴。
[参考文献]
[1]耿海.《高级语言程序设计》实验课程探讨[J].电脑知识与技术,2017(27):6-7.
[2]颜丽君.应用型本科院校“高级语言程序设计”实践教学改革措施[J].楚雄师范学院学报,2015(3):61-63.
[3]申珅,党向盈.非计算机专业高级语言程序设计类课程实践教学改革探索[J].科技信息,2014(11):19.
[4]于延,周国辉,李红宇,等.CDIO模式下C语言程序设计实践教学改革[J].计算机教育,2016(2):122-126.
Research on practical teaching of “Programming(Computer)”
Liang Yali
(Institute of Computer Engineering, Tongda College of Nanjing University of Posts & Telecommunications, Yangzhou 225127, China)
Abstract:“Advanced Language Programming” is the basic compulsory course for most of the major majors in the university, and the “Programming(Computer)” is the corresponding practice course of the Tongda College of Nanjing University of Posts & Telecommunications, and mainly uses C language as the programming language. This paper, from the aspects of the course arrangement, the practice guidance, the information submission, the course examination and so on, analyzes the problems encountered in the practice, and puts forward a reasonable and practical solution. The practice has proved that the method effectively improves the students independent practice innovation ability, and has obtained the good teaching effect of centralized practice.
Key words:program design; curriculum arrangement; practical guidance; curriculum assessment