当前位置:半城文秘网 >范文大全 > 公文范文 > 高校程序设计课程的分层教学研究与实践

高校程序设计课程的分层教学研究与实践

时间:2022-10-26 19:24:02 来源:网友投稿


打开文本图片集

摘 要: 在充分调研目前计算机专业程序设计课程中诸多教与学的不足的基础上,提出了一种基于实际教学的分层教学模式,即启蒙-进阶-提高衔接-拔优四个层次,同时评价其效果。分层教学模式有效地激发了学生的专业学习兴趣,增强了专业课程间的连贯性,发挥了程序设计在各课程间的聚核作用。程序设计能力训练的自动评测系统最大程度地解放了老师的机械批改工作。有效的分层教学模式体现了以学生为中心的教学理念,提高了学生整体的程序设计能力和社会竞争力。

关键词: 分层教学; 自动评测系统; 程序设计; 以学生为中心

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2015)11-90-03

Abstract: On the basis of full investigation of many of the lack in current teaching and learning of computer programming course, a hierarchical teaching mode is proposed based on the teaching practice, namely the enlightening, advancing, improving and excellence selecting four levels, and its effect is evaluated. The hierarchical teaching mode can effectively stimulate students" professional learning interest, enhance the coherence between the professional courses, make computer programming course to play an aggregation role in between the various courses. The automatic evaluation system of programming ability training maximizes the liberation of the teacher"s workload of mechanical correction. The hierarchical teaching mode reflects the student-centered teaching idea, improves the students" programming ability and social competitiveness.

Key words: hierarchical teaching mode; automatic evaluation system; programming language; student-centered

0 引言

信息社会的高速发展,软硬件产品及服务的朝夕瞬变,使高素质程序设计人才需求与日剧增,高校的计算机专业人才培养也时刻面临更新更高的要求。在计算机学科知识体系中,计算机程序设计类课程具有启蒙、衔接和聚核的作用。对计算机专业的学生来说,在程序设计过程中贯穿阅读判断、分析思考、抽象表达、综合创造等多项技能[1]。因此,如何提高大学生程序设计能力一直是计算机专业教师研究和考虑的问题。

1 现状分析

基于多年的程序设计课程教授经历,我们归纳总结了大学生程序设计能力培养和训练方面存在的一些问题或不足。

⑴ 实践环节时间太少。

⑵ 传统教学手段不适合程序设计课程,学生处于被动学习状态。

⑶ 教师人工判题评阅课后作业、上机实验报告以及试卷的负担沉重,而且对学生来说时效性差,学习效果受到影响。

⑷ 相关课程多但课程之间联系少。

⑸ 目前的学生课程评价体系不够完善。

2 具体改革内容

著名的教育学家Gagné R.M说过:“教育的中心目标就是教会人们思考,运用他们的理性,成为更好的问题解决者[2]。”针对以上的不足点,结合目前我校计算机专业的教学规划和学生不同阶段程序设计能力特点,我们设计了如下层次教育模式,并初见成效。

2.1 层次化教育模式

启蒙层次(第一学期):目标是使一年级的学生具备基本的程序设计能力,掌握一些基础算法,知晓如何编写程序解决一些生活和科学的问题。

进阶层次(第二学期,第三学期,第四学期):目标是通过与数据结构课程的衔接和渗透,让学生理解数据结构的本质。强化学生的计算思维,引导解决综合型系统级别的应用型问题。

衔接层次(第五学期,小学期实践):目标通过与软件工程课程的衔接和渗透,培养学生的综合程序设计能力,让学生具有利用程序解决综合性问题的能力。

拔优层次(二年级,三年级):目标是培养学生创新能力。从对程序设计感兴趣的学生中选拔出一批算法运用设计能力较强的学生,进行ACM竞赛训练,以及更高级算法的学习和训练,培养出一批具有榜样作用的创新人才。

2.2 程序在线评测激励系统及其模式的建立

培养程序设计能力的关键是动手编程实践,一般程序设计类课程实验课与理论课的比例是1:1,从教学安排上,实践类课时已经很多了,但是仅靠课时要真正掌握好一门程序设计类课程是远远不够的。虽然绝大部分学生都较重视理论课的学习,但课内实验就不那么理想了。

根据实际教学的情况,我们设计了程序在线评测激励系统化训练平台。根据不同层次需求,配置了不同内容的题库和具体机制。我们将其用于实际教学中发现,这个作为学生练习程序编制的平台,在提高学生编程水平的同时,大大减少了教师的工作量;而且较之人工,机器自动评测更具严格性和客观性。同时加入了激励策略,轻松激发了学生的学习兴趣。如:提交解答后系统会对提交的代码自动进行评判,并同时给出时间占用和内存占用等相关信息,如果排名在前三,就给予首页彩带滚屏奖励,提升学生的自我荣誉感。又或给予学绩考核的额外加分等。

在线评测系统的工作流程如图1所示。学生提交一个程序源代码后,评测程序就对代码进行编译,然后执行,将执行结果和评测系统后台正确的测试数据进行比较,如果答案和后台数据完全相同则AC(Accept),说明你的程序是正确的;否则返回错误信息,对不同的错误类型给出不同的提示。同时源代码的评测结果保存到系统数据库中。教师如需要结果列表,也可一次性导出。

目前程序设计的教学过程中很需要这样的自动评测平台。它既减轻了教师繁重的程序代码批改工作量,也可更客观和高效地给出评判结果。国际最重要的程序设计大赛ACM-ICPC[4]使用的就是这样的模块来测评结果。在实际教学中我们也真实地感受到了这个系统带给我们教师的便捷,学生也体会到了实时高效评测的兴奋和成就感。

2.3 构建软件设计课程群[3]

程序类课程教学中重视语法结构和案例,很少能从程序设计的基本方法和思想进行引导,使学生停留在照样画瓢的程度,缺少抽象思维、逻辑思维能力,难以编程解决实际问题。我们希望在学生掌握程序设计过程中激发起学生的软件工程兴趣。因此,在本学年新一阶段的程序设计课程中,安排软件工程的原理讨论。讨论的目的当然不是代替独立的软件工程课程,而是将基本的软件工程原理引入早期的学习中,让学生能更好地为以后正式参与项目开发做好准备;同时起到一个承上启下的衔接作用。如果一开始就将逻辑简单清晰、易读易懂作为程序编写的一个重要标准,学生就不会在以后被强迫忘却坏习惯和重新学习。他们能在以后的课程中更好地理解软件的涵义,了解软件开发的过程。

以下是主要的实施环节。

⑴ 按照上面构建的程序设计能力层次化教育模式的框架,制定出每个层面的教学目标、教学大纲,汇聚有层次差别的各种教学资源。

⑵ 在线训练激励系统与学生实践评价体系相配合。及时激励先进,树立榜样。

⑶ 配置有层次化的学习辅导及习题集资料。丰富目前BlackBoard网络教学平台上内容的质与量。

⑷ 软件工程环境映衬整个程序设计课程的教学环节。

3 结束语

本文研究了分层化教学改革,我们的总体目标是针对程序设计能力培养的启蒙入门、发展提高和开发应用三个阶段,研究和设计软件程序设计课程体系的分阶段学习模式,建立以任务驱动的课外程序设计激励机制,实现大学四年平均每位学生累计达到1万行程序编写量,并能独立完成千行以上的较大规模的程序设计。

我院从2009年开始就在探索学生程序层次化教育的培养模式,就前面讲到的第四层次的学生群的实践来看,已经积累了一定的经验。在这些比较出色的程序设计的爱好者中,我们挑选了部分学生每年参加ACM-ICPC国际大学生程序设计竞赛[4-5]。其作为世界最高水平的竞赛,有独特的氛围和形式,吸引了无数爱好者,也锻炼了一大批具有超强问题求解能力的人才。其中在2014年9-11月的比赛中,我院的队伍获得了亚洲赛区的5个铜奖。由于在ACM比赛中近几年的良好赛绩以及学生高涨的ACM热情,我院还在2015年3月承办了首届全国中医院校程序设计竞赛,采用的就是ACM-ICPC的竞赛规则与形式。接继这样的成果,我们接下来准备将层次细化到其他相关专业课程,希望通过这样的实施过程,能达到预期的最大化目标。

参考文献(References):

[1] 韩建民,王丽侠,贾泂.大学生程序设计能力的层次化培养模

式[J].计算机教育,2012.3:15-18,22

[2] Jonassen, D.H. Toward a Design Theory of Problem

Solving[J]. Educational Technology: Research & Development,2000.48(4):63-85

[3] 傅川,沈鑫,蒋巍巍.软件工程环境下的C程序设计课程教学[J].

计算机教育,2011.13:96-99

[4] Wikipedia. ACM International Collegiate Programming

Contest[EB/OL]. https://en.wikipedia.org/wiki/ACM_

International_Collegiate_Programming_Contest.2015

[5] The ACM-ICPC International Collegiate Programming

Contest [EB/OL].http://icpc.baylor.edu/,2015.

推荐访问: 教学研究 分层 程序设计 实践 高校