基于ACM模式的程序设计类课程实践教学探索
ACM竞赛驱动的程序设计类课程教学改革研究

科技资讯2017 NO.13SCIENCE & TECHNOLOGY INFORMATION科 技 教 育146科技资讯 SCIENCE & TECHNOLOGY INFORMATION程序设计类课程是计算机专业人才培养计划中一系列与程序设计相关的核心课程,主要有C语言程序设计、C++面向对象程序设计、Java程序设计、数据结构和算法设计与分析等,一般以专业基础课或专业课的形式开设。
程序设计类课程的教学效果,直接影响了人才培养目标的实现,在一定程度上决定了所培养的专业人才素质水平的高低,因此,各个学校普遍都很重视程序设计类课程的教学和教学建设。
然而,程序设计类课程由于理论性和实践性都比较强、学习难度大等特点,使得在教学过程中一直存在着较多的问题。
一方面,程序设计教材偏重于语法和小型例题讲解,使得学生在根据实际问题建立模型和设计算法方面的抽象思维训练不够,很多学生能掌握程序设计的基本方法,但程序设计的水平并不高。
另一方面,模块式实验项目的实践环节设置,使学生在综合运用知识解决实际问题方面的锻炼不足,加上实验课时的限制,因练习和投入时间的不够,也影响了学生程序设计能力的培养和提高。
在程序设计类课程教学中引入ACM竞赛模式,可以弥补传统教学方式的这些不足,促进学生程序设计能力和创新能力的提高。
ACM / ICPC (Association for Computing Machinery /International Collegiate Programming Contest)国际大学生程序设计竞赛,由计算机界具有悠久历史的权威性组织机构ACM学会主办,是世界上公认的规模最大、水平最高、参与人数最多的大学生程序设计类竞赛[1]。
1 以ACM 竞赛题目驱动理论教学首先,教师在课堂上将ACM赛事活动推介给学生。
通过对竞赛的了解、练习和参与,让学生体会到学习的成就感,激发学生对程序设计的学习兴趣和学习动机,并且更明确课程的学习目标,以高水平的程序设计能力标准要求自己。
基于ACM的《算法设计与分析》教学改革研究

合 能 力和教 学质 量 。
关 键 词 : 法 教 学模 式 算 中 图分 类 号 : G6
可 以 在 自主 探 索 的过 程 中掌 握 算 法 分 析方 法 和 常 见 的 算 法 设 计 策略 , 应 用 到 实 际 并 问 题 , 样 的 考 核 考 察学 生 的 实 践 能 力 , 这 大 部 分 学 生 注 重 学 习过 程 , 效 的 提 高 学 生 有 的创新能力和实践能 力。 ( ) 组 培 养 团 队 意识 和 协 作 能 力。 5分 为 了 培 养 学 生 的 团 队 意 识 和 协 作 能 力 , 每 个 竞 赛 单 元 前 后 , 照Ac 的 组 在 按 M 织方 式 , 据 相 互特 长 , 们 将 若干 名 学生 根 我 分 成 一 个 小 组 , 照 “ 脑 风 暴 ” 方 法 一 按 头 的 起 讨 论 问 题 和 交 流解 决 问 题 的 心 得 。 讨论 问题 的 同 时 , 生又 会 提 出新 的 问题 , 阅 学 查 相 关资 料 主 动 学 习 , 新 的 想 法 可 以 一 起 有 交 流 , 的 知 识 和 方 法 也 给 老 师 带 来 了新 新 的 教 学 内 容 和 视 野 。 样 协 作 学 习的 方 式 这 提 高 了学 习 的效 率 , 更提 高 了教 学 效 果 。 基于 Ac 的 教 学 改 革 , 效 的 提 高 了 M 有 学生 的综 合能 力 , 到 了学生 的认 可。 得 算 法近 2 通过率 l 0 , 生在 全 国赛 , 年 % 学 0 省 赛 中 多 次 获 奖 , 以 后 的 教 学 提 供 了 较 为
ACM在线评测系统在成人高等教育程序设计类课程中的应用初探

『1 1简友 光. 1 成人 高等教育计算机 实验教学研
究『. 续教 育研 究 ,0 94 1—4 J继 】 2 0 , : 1. 3 『] .C 2吴昊 A M程 序 设 计培 训 教程 , 国铁 道 出 中
版社. 0. 2 7 0
【 尤枫 , 辉 . C 3 】 史 A M在 线评 测在 编 译 原理 实 践 教 学 中 的 应 用 探 讨 【.实 践 教 学 , J 1
人 , 士研 究 生 , 硕 国家 注册 系统 分析 师 , 究 研
方 向为信 息安 全 , b数 据挖掘 。 We
基 金项 目: 浙江 省教 育考试 “ 一五 ” 十 科研 规划 项 目(0 6 J S 0 ) 2 0 Z K 0 7
中国新技术新产品
一 5— 4
恶补程序设计基本功 的专升本成人学生。 经 过 这样 的训练 , 即要 考虑 程 序运行 的 正确性 , 同时也 要 对 比程 序 运行 的性 能 ,对题 目的多 种 算法 实 现有 了独 特 的思考 与分 析 。 经 过 两届 学 生不 同专 业成 人学 生使 用来 看 , 补 考人 数 明显 减 少 , 不仅 而且后 继课 程 的 平 均成 绩 也有 大 幅提 高 , 效果 提高 显著 。 教学 通 过这 个 系统 ,学生 能更 好 地将 理论 与实践 紧密结合 , 动手能力 、 创造能力和协作能力得 到提 高 , 开拓视 野 , 创新 性人 才培养 。H 促进 4 结 束语 吸收 A M 在线 评测 系 统 中的诸多 优点 , C 注重成人学生的特点,在程序设计类课程中 有机结合 , 能有 效 促 进教 学 质 量 、 教学 水 平 、 教 学效 果 的 同步提 升 。如何 更好 地发 挥 A M C 在 线评 测 系统 的长处 , 其他 如数 据库 原理 、 让 操作系统 、 数据结构等课程通过扩展 A M在 C 线 评测 系统 的功 能实 现在 线 实验教 学及 无纸 化上机考试 , 为远程教育、 自学考试实践等不 同办学 类 型 的相 关课 程 的教 学 、考核方 法 改 革 应该 有 更深 刻 的思考 。
程序设计课程在线测评方法探究——以类ACM模式程序设计课程为例

程序设计课程在线测评方法探究——以类ACM模式程序设
计课程为例
刘凤连;汪日伟;苑静中
【期刊名称】《天津市教科院学报》
【年(卷),期】2014(000)002
【摘要】程序设计课程是对学生实践能力要求较高的技术应用型课程,教学目的是培养学生在程序设计过程中的分析问题与解决问题的能力.通过对程序设计课程现状进行分析,针对造成学生程序设计能力较低的原因,提出了以培养学生实践能力为终极目标的课程辅助系统建设方案,即在程序设计课程的作业、实验与考试环节中,引进类ACM模式的在线测评方法.
【总页数】3页(P32-34)
【作者】刘凤连;汪日伟;苑静中
【作者单位】天津理工大学计算机与通信工程学院,天津300384;天津理工大学计算机与通信工程学院,天津300384;天津理工大学计算机与通信工程学院,天津300384
【正文语种】中文
【中图分类】G642.3
【相关文献】
1.CDIO工程教育理念下的软件类课程教学模式初探——以java程序设计课程为例
2.基于ACM竞赛平台的程序设计课程教学模式改革的探索
3.岗位核心能力导
向下的专业课程考核方法探究\r——以Java面向对象程序设计课程为例4.混合教学模式下程序设计课程在线实践探索5.基于PBL的在线教学模式研究——以C语言程序设计课程的应用为例
因版权原因,仅展示原文概要,查看原文内容请购买。
基于ACM竞赛模式的C程序设计教学改革研究

基于ACM竞赛模式的C程序设计教学改革研究张沫,章彪(浙江邮电职业技术学院,浙江绍兴312366)摘要:对编程类课程而言,传统教学存在填鸭式理论教学、实践教学环节松软流于形式等不足,教学效果不理想。
该文针对程序设计类课程教学中存在的问题,给出了基于ACM竞赛模式、运用在线编程测试OJ平台来开展程序设计类课程教学,收到了较好的教学效果。
关键词:ACM竞赛;教学改革;C程序设计;OJ平台中图分类号:G642文献标识码:A文章编号:1009-3044(2021)07-0165-02开放科学(资源服务)标识码(OSID):Research on Teaching Reform of C Programming based on ACM Competition ModeZHANG Mo,ZHANG Biao(Management and Information Institute,Zhejiang Post and Telecommunication College,Zhejiang312366,China) Abstract:For programming courses,the traditional teaching method has some shortcomings,such as cramming theoretical teaching and practical teaching,which is not satisfactory.In view of the problems existing in the teaching of programming courses,this paper presents the teaching of programming courses based on ACM competition mode and online programming test OJ platform,which has achieved good teaching effect.Key words:ACM competition;teaching reform;C programming course;OJ platformC语言是计算机专业的通识基础课程,旨在培养学生的逻辑思维能力、创新实践能力和解决实际问题的能力,为后续专业课程的学习奠定良好的基础。
acm程序设计教材教学稿件

课程反馈与建议
优化课程结构
根据学生需求和反馈,调整课程结构,使其 更加合理和符合学生实际需要。
加强实践环节
增加实践项目和实验课程的比重,提高学生 的实践能力和动手能力。
引入更多案例教学
通过案例分析,帮助学生更好地理解算法和 数据结构在实际问题中的应用。
图论算法
如冒泡排序、快速排序、归并排序等,详 细解析其原理、时间复杂度和空间复杂度 ,以及在不同场景下的应用。
如深度优先搜索、广度优先搜索、Dijkstra 算法、Prim算法等,介绍其在最短路径、 最小生成树等问题中的应用。
动态规划算法
分治算法
如背包问题、最长公共子序列等,阐述动 态规划的基本思想及其在优化问题中的应 用。
加强教师队伍建设
提高教师的专业素养和教学水平,为学生提 供更好的指导和支持。
THANKS FOR WATCHING
感谢您的观看
数据结构分类
数据结构可以根据不同的分类标准进行分类,如线性结构、非线性 结构、静态结构、动态结构等。
数据结构设计
数据结构设计包括选择合适的数据结构类型、确定数据元素之间的 关系等步骤。
常见数据结构
线性表
线性表是最基本的数据结构之一,包括顺序表和链表两种实现方式。
栈和队列
栈是一种后进先出的数据结构,队列是一种先进先出的数据结构, 它们在实际应用中有着广泛的应用。
数据结构和算法选择
阐述如何根据问题的特点选择 合适的数据结构和算法,提高 解决问题的效率和质量。
测试与调试
介绍如何进行测试和调试,确 保程序的正确性和稳定性。
06 总结与展望
程序设计课程在线测评方法探究——以类ACM模式程序设计课程为例
第2期2014年4月天津市教科院学报Joum al of T i anj i n A c adem y of E duc撕onal Sci enceN o.2A pr.2014程序设计课程在线测评方法探究+——以类A C M模式程序设计课程为例刘凤连,汪日伟。
苑静中(天津理工大学计算机与通信工程学院,天津300384)[摘要]程序设计课程是对学生实践能力要求较高的技术应用型课程,教学目的是培养学生在程序设计过程中的分析问题与解决问题的能力。
通过对程序设计课程现状进行分析,针对造成学生程序设计能力较低的原因,提出了以培养学生实践能力为终极目标的课程辅助系统建设方案,即在程序设计课程的作业、实验与考试环节中,引进类A C M模式的在线测评方法。
[关键词】程序设计;A cM模式;在线测评;编程能力[中图分类号]G642.3[文献标识码]A[文章编号]1671—2277一(2014)02—0032-03程序设计课程作为计算机相关专业一门重要的学科基础课,主要以培养学生的知识、能力和素质为目标,突出教学内容的基础性和实践性。
在课程教学改革方面,应贯彻知识、能力、素质辩证统一的思想,结合学生特点,以学生为主体,不断充实、更新教学内容,提高学生对程序设计的理解和应用能力,培养学生良好的程序设计风格,培养和提高学生在编程与调试过程中独立分析问题与解决问题的能力,同时为后续核心课程的学习做好知识储备。
一、课程现状分析目前,程序设计课程作为专业课程的先导课程,大多数高校采用c语言作为授课环境,一般被安排在大学一年级开设,基本是按照教学大纲要求,围绕“首先教师讲解,然后学生上机实验”这一教学模式进行,此模式下存在的主要问题如下:1.教学方法过于套路化,教学效果和学习效果均不甚理想。
另外,由于教学活动过于单调而缺乏创新性,难以激发学生的学习兴趣和竞争意识,从而不能激发学生的主观能动性,容易导致学生产生厌学情绪。
2.学生上机实践环节不足,缺少综合性练习,而实验目的多是围绕消化课堂内容而设计,实验内容模仿性较强,实验难度较小,缺少计算机解题的逻辑思维训练,未能提供学生发挥创新思维的空间,不利于学生分析问题和解决问题能力的培养。
acm课程设计感悟
acm课程设计感悟一、教学目标本课程的教学目标是使学生掌握ACM课程的基本知识和技能,培养学生独立思考、解决问题的能力,并提高学生团队合作和沟通的能力。
具体目标如下:1.知识目标:学生能够掌握ACM课程的基本概念、原理和方法,了解相关领域的最新发展。
2.技能目标:学生能够熟练使用ACM课程相关软件和工具,具备编程和算法分析的能力。
3.情感态度价值观目标:学生能够认识到ACM课程在解决问题和创新中的重要性,培养对计算机科学的兴趣和热情。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个方面:1.ACM课程的基本概念和原理:数据结构、算法、编程语言等。
2.ACM课程的相关技术和工具:常用编程语言、开发环境和算法分析工具。
3.ACM课程的应用场景和实践:通过实际案例讲解ACM课程在各个领域的应用。
4.团队合作和沟通能力的培养:小组讨论、项目实践、交流分享等。
三、教学方法为了实现课程目标,本课程将采用多种教学方法,包括:1.讲授法:讲解ACM课程的基本概念、原理和方法。
2.案例分析法:通过实际案例讲解ACM课程在各个领域的应用。
3.实验法:让学生动手实践,熟练使用相关软件和工具。
4.讨论法:引导学生进行小组讨论,培养团队合作和沟通的能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习材料。
2.参考书:提供相关领域的经典著作和最新研究成果,拓宽学生的知识视野。
3.多媒体资料:制作精美的PPT、教学视频等,提高学生的学习兴趣。
4.实验设备:配备必要的实验设备,确保学生能够进行实践操作。
五、教学评估本课程的评估方式包括平时表现、作业和考试等。
评估方式应客观、公正,能够全面反映学生的学习成果。
具体评估方式如下:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。
2.作业:布置适量的作业,评估学生的理解和应用能力。
acm实践报告
acm实践报告ACM(Association for Computing Machinery)是计算机科学领域的国际学术组织,旨在促进计算机科学的发展和应用。
作为计算机领域的学生,我参加了ACM的实践活动,并进行了一次实践报告,分享我的经验和收获。
1. 活动背景和意义ACM每年都会举办各类实践活动,旨在帮助学生扩展计算机知识、提升解决问题的能力,并促进合作与团队精神的培养。
这些活动包括编程竞赛、算法训练和软件开发等。
参加ACM的实践活动,对于学生的成长和职业发展具有重要意义。
2. 我参加的ACM实践活动我参加了一次ACM的编程竞赛活动。
这个活动是一个团队赛,由三人组成一个小组。
每个小组在赛场上通过解决一系列算法和编程问题来获取高分。
除了测试解题能力外,比赛还考察团队合作、压力处理以及时间管理等方面的能力。
3. 准备工作在活动前,我们的团队进行了充分的准备工作。
首先,我们对过去的ACM比赛题目进行了研究,分析常见的算法问题和解题思路。
然后,我们每个成员都阅读了相关的计算机科学和算法导论书籍,提升自身的编程和算法基础。
此外,我们还进行了模拟训练,通过解决一些ACM比赛的往年题目来提高解题速度和准确度。
4. 比赛经历比赛当天,我们早早到达了比赛场地。
整个比赛过程紧张而充实,我们需要在短时间内解决尽可能多的问题。
在比赛中,我们遇到了一些难题,但我们保持冷静,团队合作默契,共同努力解决。
在解题过程中,我们发现团队的互补性很重要,每个人都能发挥出自己的优势,并通过交流和合作加深了解题的理解和思考。
5. 收获和反思参加ACM实践活动,我不仅提高了编程和算法能力,还培养了团队合作和解决问题的能力。
在比赛中,我们学会了分析问题、主动寻求帮助和灵活应对。
同时,我们也深刻认识到知识的广度和深度对于解决实际问题的重要性。
这次实践经历让我明白理论知识只是解决问题的基础,真正的能力在于将理论应用到实践中。
6. 未来的计划基于这次实践经验,我计划继续学习和参与ACM的实践活动。
从ACM-ICPC探索提升大学生程序设计能力的方法
从ACM/ICPC探索提升大学生程序设计能力的方法摘要 acm/icpc是世界各国大学生最具影响力的国际计算机类的赛事,是广大爱好计算机编程的大学生展示才华的舞台,是各个大学计算机教育成果的直接体现。
本文提出在指导学生参加acm/icpc 的日常的教学过程和集训过程中积累的一些提升大学生程序设计能力的教学经验和方法,和同行们探讨。
关键词 acm/ icpc;程序设计;课程设置;实战集训中图分类号tp39 文献标识码a 文章编号1674-6708(2010)26-0228-021 acm/icpc介绍acm/icpc (acm international collegiate programming contest,国际大学生程序设计竞赛)是由国际计算机界历史悠久、颇具权威性的组织acm(association for computing machinery,国际计算机协会)主办的。
是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛。
其目的旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。
竞赛从1970年至今已举办了34届,受到国际各知名大学的普遍重视,并受到全世界各著名计算机公司的高度关注。
acm/icpc已成为世界各国大学生最具影响力的国际计算机类的赛事,是广大爱好计算机编程的大学生展示才华的舞台,是各个大学计算机教育成果的直接体现。
该项竞赛分为区域预赛和国际决赛两个阶段进行,各预赛区第一名自动获得参加世界决赛的资格,世界决赛安排在每年的3月~4月举行,而区域预赛安排在上一年的9月~12月在各大洲举行。
竞赛中每队3人仅拥有一台计算机,要求选手在全封闭的环境内(可以携带包括词典在内的任何纸质的资料,但不得有电子资料)连续五个小时进行解答,而且对程序的时间复杂度和空间复杂度有一定的要求。
竞赛用英文命题,题目数量在6~10题之间,试题没有规定范围,涉及知识面非常广。
这就要求参赛学生不仅具有扎实的程序设计能力、良好的数学功底和数学建模能力,还要有较强的团队协作能力和压力下程序设计能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于ACM模式的程序设计类课程实践教学探索
摘要:针对程序设计类课程实践教学存在的问题以及问题产生的原因,在分析
ACM竞赛模式特点的基础上,探讨结合ACM模式的实践教学方法,提出几条具体
措施,在实际应用中取得了一定成效。
关键词:ACM;实践教学;程序设计
众所周知,程序设计类课程实践性非常强,尤其针对计算机专业的学生,程序
设计能力的强弱是检验毕业生是否合格的重要标准。然而,传统的以设计语言语
法描述为主线的教学方式、模式化的实验内容,使教师在教学过程中自觉或不自
觉的将重点偏向理论,降低了对学生实践能力的有效监管和考核,无法充分锻炼和
提高学生程序设计能力。
ACM国际大学生程序设计竞赛(简称ACM)是世界上公认的规模最大、水平
最高的程序设计竞赛,提供了学习和使用程序设计语言和算法的完整实践模式。
因此,探讨如何基于ACM开展有效的程序设计实践教学十分有意义,下文就这方
面进行讨论。
1传统实践教学中的问题
尽管近年来程序设计类课程实践教学得到重视,并与以前相比有很大的改善,
但仍存在很多不足,主要表现在以下几个方面。
1) 实践教学仍被视为理论教学的附属,未得到独立开展。
目前,大部分院校的程序设计类课程大多分为理论和实验两个环节,针对计算
机专业可能会再添加课程设计环节。无论是教学计划的制定者、课程的任课老师
还是学习该课程的学生,实验环节都被看作理论教学的辅助手段,是继理论传授之
后的以验证和加深理解为目的的实践过程,这点从教学学时分配、课程开展的先
后次序、最终的考核制度中均可体现。这种“实验从属于理论”的思想使得学生对
实验环节得不到充分重视,程序实现和调试能力很差,违背了程序设计类课程的学
习宗旨。
2) 实验内容过于模块化、忽略学生的综合设计能力。
首先,传统实验教学中,实验内容大多以章节为单位,以算法为主线,学生通常
只把注意力集中在每一个单独算法掌握中,从而忽略了对概念的整体性把握和解
决较大规模问题时对算法的综合应用能力[1]。其次,实验内容多以验证性实验为
主,很难涉及到计算机软件开发中的需求分析、系统设计、算法设计、编程实现、
调试修改、功能测试等环节,学生的综合设计能力得不到训练。
3) 实验检查机制弊端明显,束缚学生的创新能力。
学生实验课内容完成情况的检查一般分为两块:一是看程序运行是否正确,目
前的实验内容缺少严格的数据测试,教师限于课堂时间限制,来不及对每个学生的
程序做全面测试,只需程序运行通过即可,往往忽略了程序中的异常情况,而这些
情况通常都是学生未掌握的知识点。二是检查实验报告中的程序编写情况。试想
每个教师带50个学生,一个实验题就有50个程序,阅读这么多程序的过程中,稍有
不慎就有可能将本来正确甚至有些创新的算法判错,严重打击了学生的积极性,长
此以往,学生交上来的都变成了“标准格式”。这种检查机制一定程度上抑制了学
生的个性发展,不利于对学生创新能力的培养,阻碍他们独立思考的兴趣和努力钻
研知识的热情[2]。
4) 课程设计得不到重视,学生缺乏团队合作的锻炼。
程序设计类课程针对计算机专业一般增设课程设计环节,由教师给出设计内
容,学生自组团队,在相应的学时内完成实验。该环节旨在锻炼学生综合运用所学
知识分析问题、解决问题,以及培养他们的团队意识和协作学习的能力。但在具
体操作过程中,选题与实际的脱离、考核方式的不合理、学生水平参差不齐、团
队合作分工不明确等诸多因素,常导致学生对课程设计缺乏兴趣,敷衍了事,实践
环节收效甚微。
2ACM模式特点分析
ACM由国际计算机界权威组织美国计算机协会主办,旨在使大学生运用计
算机程序设计理论来充分展示自己分析问题和解决问题的能力。其竞赛模式新颖,
对培养学生的编程实践能力、团队合作精神和软件开发中的创新意识起了积极地
促进作用。ACM模式特点如下:
1) 题目。ACM题目涉及知识面比较广,融入了程序设计、数据结构、算法
分析与设计、人工智能、离散数学等多学科领域的理论和方法。参赛选手为了攻
克大赛题目,在赛前准备中要掌握大量学科理论基础,将学习与做题自主的结合起
来,让学生对原本枯燥的理论知识学得有动力,充分调动他们的自主学习性。
2) 选手。每个参赛队伍由3人组成,比赛时每个队只分配一台电脑。小组成
员需要明确知道自己和队友的专业特长,才能对问题合理分工,提高解题效率。除
此之外对算法思路的良好描述、同一问题不同解决方案的合理论证等都极大地考
验选手的团队协作精神。
3) 过程。ACM采用5小时全封闭竞赛,以各队所解出问题的多少和总用时
的长短排名。
4) 考核。采用在线测评系统进行评判, 体现了比赛的公正公平;对提交程序
的要求不仅包括正确性,还包括对运行时间、占用内存和输入输出格式的限制,考
查选手对算法的灵活运用[3]。
3结合ACM模式探索程序设计类课程实践教学
ACM模式开阔了学生的视野,对学生实践能力、创新意识、团队合作能力均
起到了积极地促进作用。将ACM模式运用在程序设计类课程的实践教学中,改革
传统的实践教学模式是非常必要的。在具体运用中采取了以下几条措施:
1) 实验内容分级化。传统的实验课内容是给出固定题目让学生完成,千篇一
律的题目对基础知识掌握较好的学生起不到提高作用,同时又打击了基础较薄弱
者。结合ACM模式,任课教师可以将实验内容分级化,如分成知识型(单一算法)、
应用型(算法和实际问题结合)和综合型(若干小算法的综合,解决一个较大规模的
问题)。不同级别的题型权值不同,每一级别中又包含若干个相同权值的题目,学生
可以根据自身情况选择不同级别的题型和题目数量,只要总权值达到相应的要求
即可。这样既考虑到了不同层次学生的练习需求,又达到了统一的实验要求。
2) 实验题目趣味化。目前的实验题目普遍较枯燥,以单一的语法要求描述为
主,难以调动学生的学习兴趣和设计欲望。参考ACM习题,任课教师可以将实验
题目设计得“生活化”和“趣味化”,使学生自主选择合理的数据结构和算法解题。如
分支结构实验可以让学生根据目前的扣税标准计算纳税人工资,结构体数组实验
可以让学生设计一个小型学生信息管理系统等,这样可以充分激发学生的学习主
动性和积极性,将被动学习化为主动学习,更好地达到实践教学目的。
3) 考核方式严谨化。ACM模式的重要特色之一即是完善严谨的考核机制。
目前大多数院校程序设计类课程实践环节的考核还是以教师阅读学生程序给出
评分为主,可以想象评阅不同编程风格、不同解题思路的程序对教师而言,工作量
繁重,更糟糕的是,有可能对原本有创新的解题做出错误的评价。采用ACM模式
的黑箱测试,对教师而言,最大化降低了实验课程的检查工作量,可将更多的精力
放在对学生程序编写、调试的指导上;对学生而言,做到了客观、公正,更好的发掘
了创新能力,提高其对知识点的掌握程度。
4) 实验时间分散化。 程序设计类课程教师、学生普遍感觉到的问题是实验
课学时过少,理论学了一大堆,却缺乏实际上机锻炼,违背了该类课程的学习宗旨。
参照ACM竞赛平台,任课教师可以构建校园网程序设计自动评测系统,功能包括
用户管理、题库管理、在线提交、在线排名、及在线讨论等。学生注册之后,可
以在任何时间登陆该系统,在线练习并提交相关练习的程序代码,系统自动从程序
的正确性、运行总时间、内存占用情况、返回结果等各方面评测程序代码,并精
确返回评测结果。由于该系统还包括学生做题量的在线排名,更可激发学生的编
程热情,将有限的课内练习时间延续到课外进行。