论文部分内容阅读
摘 要:《数据结构》课程是计算机专业的核心“饭碗”课程之一,然而在传统的教学中教师往往只教理论,没有实际的代码实现过程演示,讲解的例子缺乏应用性,学生学得枯燥无味。课题组经过教学改革,将ACM/ICPC问题驱动引入课堂教学,采用问题驱动的教学方法,并贯穿于整个理论教学、实验实训的过程,组织学生参加程序,以竞促学,以竞促教,提高学生的算法设计能力,取得了良好的教学效果。
关键词:数据结构 算法设计 ACM/ICPC 问题驱动
中图分类号:TP391 文献标识码:A 文章编号:1672-3791(2017)07(b)-0179-02
在高校计算机专业的课程中,《数据结构》一直处于核心地位,与程序设计课程是计算机专业的“饭碗”课程,传统的教学中一般是老师讲学生听,教学过程一直由老师主导,学生处在观众位置,教师只讲原理,从不展示实现过程,脱离实际应用,导致学生动手能力差,不能将理论应用于实践。怎么上好这门课程、如何进行教学改革一直是高校课程改革的重要课题。
1 背景及意义
《数据结构》是计算机相关专业的一门专业基础课程[1]。课程从ADT思想出发,主要有线型、树型和图型三大类数据结构、查找和排序两大类基本算法以及算法分析的基础[2]。培养学生设计算法、开发程序的能力,使学生能够根据实际问题的需要,选择适当的数据结构及设计出相应的算法;通过实验,进一步锻炼学生的动手能力,培养学生分析和解决实际问题的能力。为学生学习操作系统、编译原理和数据库等后续课程奠定基础。ACM/ICPC(ACM International Collegiate Programming Contest,国际大学生程序设计竞赛)是由美国计算机协会(ACM)主办的一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛,经过近40年的发展,已经成为全球最有影响力、参赛水平最高的大学生程序设计竞赛[4]。显然,前者在于传授知识,后者在于检验、使用知识,二者具有辩证统一的关系。在《数据结构》课程传统的教学模式中,通常把已有的经典算法通过代码直接给学生讲解,学生处于“要我学”的模式,实验教学中只是要求学生验证即可[3],学生主要是“听中学”,由于其学习难度大,即使部分学生可以听懂,但要编程实现时却无从下手。而ACM/ICPC题库中涵盖了线性结构、树型结构、图结构和集合的知识运用,并且题目具有趣味性,将ACM/ICPC的模式应于到《数据结构》课程的教学改革中,以ACM/ICPC问题驱动教学,以竞促学,以竞促教,变“听中学”为“做中学”,对于培养学生的自主探索能力和创新能力具有深远的意义。
2 基于ACM/ICPC问题驱动的《数据结构》课程教学改革
2.1 基于ACM/ICPC问题驱动的理论教学改革
ACM/ICPC中的题目不仅专业性强、覆盖面广(囊括了线性结构、树型结构、图型结构和集合的知识点),而且具有味性、实用性、创新性。在《数据结构》课程的教学中,传授理论知识前将ACM/ICPC问题先抛出来,促使学生寻求解题的方法及所需理论知识,将教学活动变成“困惑——探索——掌握”的问题解决过程,变传统的“听中学”为“做中学”。在理论教学中针对一个知识点结合一个ACM问题,如果问题太难可遵循ACM出题的原则设计问题。
2.2 基于ACM/ICPC问题驱动的实验教学改革
《数据结构》是一门实践性很强的课程,在实验教学中,将理论课上提出的ACM问题作为基本实验,及时运用所学知识解决实际问题。严格按照ACM/ICPC 竞赛的方式,将学生分成三人一个组,并要求每个小组的学生在POJ(PKU Online Jude,北京大学在线评测系统)中完成实验,把每次实验当成一次竞赛,根据学生完成的情况及排名评定实验成绩,这将使學生重视每次实验,对于提高学生团队协作能力有很大帮助,提高学生运用所学知识解决实际问题的能力。
2.3 “以竞促学、以竞促教”模式研究
对于新建的应用型本科院校,计算机专业的培养方案中明确要求学生四年内拥有“六个一”,其中一次竞赛获奖排在首位,这也符合学校培养应用型人才的方针。在教学中,可以鼓励、引导学生参加ACM/ICPC竞赛,可行参加省赛。因为ACM/ICPC的难度大,对教师也是考验,可每年先组织教师外出参加ACM/ICPC学习(如北京大学每年暑期均会开办ACM/ICPC竞赛训练班),参加学习的教师再指导几组学生,对学生集中培训,强化《数据结构》知识在ACM/ICPC竞赛中的应用,增强师生教学默契,教学相长,提高学生团队实战能力。
2.4 结合ACM/ICPC模式改进《数据结构》教学计划
合理调整《数据结构》课程教学中理论与实践学时的分配,注重实践环节,将ACM/ICPC题库中的经典题目作为理论课的问题驱动[5],要求学生学习理论知识后解决给出的实际问题,并將提出的问题作为实践教学环节的一部分内容,让学生在实验课程中编程解决实际问题。
2.5 结合ACM/ICPC模式改革实验考核方法
学生实验完全在POJ(PKU Online Jude,北京大学在线评测系统)中完成,要求3个同学一组,精诚合作,共同完成,培养学生的团队协作能力。成绩评定按照ACM/ICPC竞赛规则进行,即根据提交成功的题目数量、运行结果与排名评定实验成绩。
2.6 组织学生参加每年度的ACM/ICPC程序设计竞赛,提升知识运用能力
《数据结构》教学的重点应从“被动灌输知识”向“主动运用知识”转变,积极组织学生参加ACM/ICPC竞赛,可有效将所学知识运用于实践,由于部分地区对于ACM/ICPC的引入较晚,目前还没有ACM/ICPC赛区,可以组织学生参加其它地区的比赛,为营造ACM/ICPC氛围贡献力量。
3 结语
将ACM/ICPC问题驱动引入《数据结构》课堂教学,将竞赛试题在课前分配给学生,要求学习相关章节的知识后,用所学知识解决问题,并通过代码完成,采用竞赛规则评判学生的实验成绩,可有效将所学知识转化为解决问题的技能,从而提高了学生的算法设计能力和程序编写能力,为今后《数据结构》课程的教学改革提供参考,推动学校教学改革的进程。
参考文献
[1] 徐惠红.《数据结构》教学改革的探索[J].福建电脑,2005(11):162,146.
[2] 李红.谈高职数据结构课的教学[J].辽宁教育行政学院学院,2008(4):81-82.
[3] 詹嘉红,蓝宗辉,宋凤艳.探究式教学法在生物化学实验教学中的运用[J].实验室研究与探索,2008(9):91-93.
[4] 蔺永政,朱红岩.学科竞赛促进计算机类创新型人才培养和深化实践教学改革的探讨[J].大学教育,2013(13):114-115.
[5] 程林辉.《数据结构》课程教学改革探讨[J].软件导刊,2015(5):176-177.
关键词:数据结构 算法设计 ACM/ICPC 问题驱动
中图分类号:TP391 文献标识码:A 文章编号:1672-3791(2017)07(b)-0179-02
在高校计算机专业的课程中,《数据结构》一直处于核心地位,与程序设计课程是计算机专业的“饭碗”课程,传统的教学中一般是老师讲学生听,教学过程一直由老师主导,学生处在观众位置,教师只讲原理,从不展示实现过程,脱离实际应用,导致学生动手能力差,不能将理论应用于实践。怎么上好这门课程、如何进行教学改革一直是高校课程改革的重要课题。
1 背景及意义
《数据结构》是计算机相关专业的一门专业基础课程[1]。课程从ADT思想出发,主要有线型、树型和图型三大类数据结构、查找和排序两大类基本算法以及算法分析的基础[2]。培养学生设计算法、开发程序的能力,使学生能够根据实际问题的需要,选择适当的数据结构及设计出相应的算法;通过实验,进一步锻炼学生的动手能力,培养学生分析和解决实际问题的能力。为学生学习操作系统、编译原理和数据库等后续课程奠定基础。ACM/ICPC(ACM International Collegiate Programming Contest,国际大学生程序设计竞赛)是由美国计算机协会(ACM)主办的一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛,经过近40年的发展,已经成为全球最有影响力、参赛水平最高的大学生程序设计竞赛[4]。显然,前者在于传授知识,后者在于检验、使用知识,二者具有辩证统一的关系。在《数据结构》课程传统的教学模式中,通常把已有的经典算法通过代码直接给学生讲解,学生处于“要我学”的模式,实验教学中只是要求学生验证即可[3],学生主要是“听中学”,由于其学习难度大,即使部分学生可以听懂,但要编程实现时却无从下手。而ACM/ICPC题库中涵盖了线性结构、树型结构、图结构和集合的知识运用,并且题目具有趣味性,将ACM/ICPC的模式应于到《数据结构》课程的教学改革中,以ACM/ICPC问题驱动教学,以竞促学,以竞促教,变“听中学”为“做中学”,对于培养学生的自主探索能力和创新能力具有深远的意义。
2 基于ACM/ICPC问题驱动的《数据结构》课程教学改革
2.1 基于ACM/ICPC问题驱动的理论教学改革
ACM/ICPC中的题目不仅专业性强、覆盖面广(囊括了线性结构、树型结构、图型结构和集合的知识点),而且具有味性、实用性、创新性。在《数据结构》课程的教学中,传授理论知识前将ACM/ICPC问题先抛出来,促使学生寻求解题的方法及所需理论知识,将教学活动变成“困惑——探索——掌握”的问题解决过程,变传统的“听中学”为“做中学”。在理论教学中针对一个知识点结合一个ACM问题,如果问题太难可遵循ACM出题的原则设计问题。
2.2 基于ACM/ICPC问题驱动的实验教学改革
《数据结构》是一门实践性很强的课程,在实验教学中,将理论课上提出的ACM问题作为基本实验,及时运用所学知识解决实际问题。严格按照ACM/ICPC 竞赛的方式,将学生分成三人一个组,并要求每个小组的学生在POJ(PKU Online Jude,北京大学在线评测系统)中完成实验,把每次实验当成一次竞赛,根据学生完成的情况及排名评定实验成绩,这将使學生重视每次实验,对于提高学生团队协作能力有很大帮助,提高学生运用所学知识解决实际问题的能力。
2.3 “以竞促学、以竞促教”模式研究
对于新建的应用型本科院校,计算机专业的培养方案中明确要求学生四年内拥有“六个一”,其中一次竞赛获奖排在首位,这也符合学校培养应用型人才的方针。在教学中,可以鼓励、引导学生参加ACM/ICPC竞赛,可行参加省赛。因为ACM/ICPC的难度大,对教师也是考验,可每年先组织教师外出参加ACM/ICPC学习(如北京大学每年暑期均会开办ACM/ICPC竞赛训练班),参加学习的教师再指导几组学生,对学生集中培训,强化《数据结构》知识在ACM/ICPC竞赛中的应用,增强师生教学默契,教学相长,提高学生团队实战能力。
2.4 结合ACM/ICPC模式改进《数据结构》教学计划
合理调整《数据结构》课程教学中理论与实践学时的分配,注重实践环节,将ACM/ICPC题库中的经典题目作为理论课的问题驱动[5],要求学生学习理论知识后解决给出的实际问题,并將提出的问题作为实践教学环节的一部分内容,让学生在实验课程中编程解决实际问题。
2.5 结合ACM/ICPC模式改革实验考核方法
学生实验完全在POJ(PKU Online Jude,北京大学在线评测系统)中完成,要求3个同学一组,精诚合作,共同完成,培养学生的团队协作能力。成绩评定按照ACM/ICPC竞赛规则进行,即根据提交成功的题目数量、运行结果与排名评定实验成绩。
2.6 组织学生参加每年度的ACM/ICPC程序设计竞赛,提升知识运用能力
《数据结构》教学的重点应从“被动灌输知识”向“主动运用知识”转变,积极组织学生参加ACM/ICPC竞赛,可有效将所学知识运用于实践,由于部分地区对于ACM/ICPC的引入较晚,目前还没有ACM/ICPC赛区,可以组织学生参加其它地区的比赛,为营造ACM/ICPC氛围贡献力量。
3 结语
将ACM/ICPC问题驱动引入《数据结构》课堂教学,将竞赛试题在课前分配给学生,要求学习相关章节的知识后,用所学知识解决问题,并通过代码完成,采用竞赛规则评判学生的实验成绩,可有效将所学知识转化为解决问题的技能,从而提高了学生的算法设计能力和程序编写能力,为今后《数据结构》课程的教学改革提供参考,推动学校教学改革的进程。
参考文献
[1] 徐惠红.《数据结构》教学改革的探索[J].福建电脑,2005(11):162,146.
[2] 李红.谈高职数据结构课的教学[J].辽宁教育行政学院学院,2008(4):81-82.
[3] 詹嘉红,蓝宗辉,宋凤艳.探究式教学法在生物化学实验教学中的运用[J].实验室研究与探索,2008(9):91-93.
[4] 蔺永政,朱红岩.学科竞赛促进计算机类创新型人才培养和深化实践教学改革的探讨[J].大学教育,2013(13):114-115.
[5] 程林辉.《数据结构》课程教学改革探讨[J].软件导刊,2015(5):176-177.