论文部分内容阅读
【摘要】针对传统应用型本科C++程序设计课程存在的问题,进行一系列的教学改革。强调程序设计方法的学习、掌握,同时引入“程序设计在线评测系统”加强学生的实践环节,并引入案例教学,以培养学生综合运用所学知识进行软件开发。实践证明,以上措施有利于提高学生的学习兴趣,为后续专业课程的学习打下良好的基础。
【关键词】应用型本科 程序设计课程 教学改革
【基金项目】2014年度广东省高等教育教学改革资助项目(GDJG20142517)。
【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2016)05-0230-02
1.前言
毋庸置疑,学会编程、掌握编程对计算机专业的学生来讲非常重要。掌握一门程序设计语言,就等于掌握了跟计算机交流的工具。对于很多计算机专业的同学来讲,C++是他们的第一门程序设计课程。学好C++,不仅掌握了跟计算机交流的工具,也为后续专业课程的学习打下良好的基础,同时有助于建立自信心。
2.当前存在的问题
目前的C++程序设计课程的教学主要存在以下几个问题:
(1)教学内容过分关注程序设计语言的语法和语义细节,整个课程是以程序设计语言为纲来组织教学内容。由于程序设计语言具有大量繁杂语法知识点,使得老师往往采用灌输式教学模式,花费大量课时资源用于讲授琐碎的语法知识,而不是花在程序设计思想和方法的传授上。
(2)教学方法采用语言工具书的阐述方式,一般是先介绍一种语法结构的形式和意义,然后给出简单示例或示例程序,这些示例和示例程序的主要作用只是用于对语法结构使用方法的说明,学生并不能通过这些示例体会问题分析、程序思维和构造的方法。整个课程也很少引入综合性的教学案例,没有让学生体会到:针对要解决的问题,如何进行分析并逐渐将其精确化;如何针对问题的计算需求,设计解决问题的过程;如何将问题解决过程精确化,选择适当的程序结构实现它。
(3)学生上机实践的时间较少,不能透过大量编程实践掌握程序设计的相关理论、方法。学生上机写程序,往往限于自身的水平,对测试数据考虑不全面,从而导致程序写完之后随便找几个测试数据测一测,如果没有问题,就算程序是正确的。实际上,对于初学程序设计的学生来说,如何设计更加全面的测试数据确实是一个不小的挑战。所以往往出现这样的情况,学生的程序实际上是错的,但由于学生使用的测试数据比较片面,从而误以为程序是正确的。对于课程书面作业,学生交上来的程序不少时候连编译都通不过。
3.教学改革
针对应用型本科C++程序设计课程的教学需要,在教学中突出计算思维的培养,将其贯穿于整个课程的教学和实践。通过培养学生掌握常见的程序设计方法,进而提高程序设计水平,为后续专业课程的学习打下牢固的基础。同时引入案例教学,培养学生开发小软件的能力,增强学生的学习兴趣。
3.1重视程序设计方法
传统的C++程序设计课程过于强调语法,课堂所介绍的例子很多是为了验证C++的语法知识。这往往导致学生缺乏程序设计方法的培养,结果是拿到一个问题不知道该如何去考虑,无从下手。
我们在实际教学中,侧重于将教学重心放到培养学生程序设计方法上。特别注重穷举、递推、递归、回溯等常见程序设计方法的介绍、训练。进而培养学生的计算思维。实践证明,学生通过掌握这些常见的程序设计方法,分析问题、解决问题的能力得到了很大的提高。而不是像以往一样,一个问题来了以后,不知道如何去分析、解决问题。从而打下了良好的编程基础,建立了专业自信心。
3.2加强实践环节
针对传统教学中,学生往往实践环节比较欠缺的问题。我们在教学中引入了“程序设计在线评测系统”。该系统拥有一个经过精心设计的题库,同时它具有以下功能:
(1)实时判题。学生可以在任何地方、在任何时间做题,然后提交自己的源代码。系统会实时地对学生的代码进行评测,并给出相应的评测结果。主要有以下几种情况:编译错、答案错、格式错、运行时出错、超时和接受。如果学生提交的代码不被系统接受,学生可以对代码进行修改,然后再次提交。
(2)布置作业。老师可以根据实际教学的需要在系统里面布置作业,限定本班的同学才能参与。系统会对学生提交的代码进行实时的评判,并对学生的做题情况进行排名,不需要人工干预。同时老师可以设定作业的截止提交时间,超过截止时间系统将拒收作业。老师可以登陆系统一目了然地知道学生的做题情况。
(3)组织比赛。老师可以根据教学的需要适当的组织一些比赛,以此调动学生的学习积极性。系统会自动评测学生提交的代码,并对学生进行实时的排名,比赛一结束,比赛结果同时就出炉。
(4)用户管理。系统记录各用户的做题信息,并保存用户提交的源代码。
(5)排名机制。系统提供排名机制。学生既可以查询自己在所有用户中的排名,也可以查询自己在年级、班级的排名。
(6)论坛。学生可以在论坛上讨论相关的题目,互相学习。
由于“程序设计在线评测系统”提供了强有力的支持,能够实时判题,并且提供了排名,这大大提高了学生编程的热情。不少学生甚至通宵达旦地编程以解决题库中的问题。这种编程的热情在引入该系统之前是不可想象的。
3.3引入案例教学
“程序设计在线评测系统”有力地锻炼了学生了编程能力,提高了学生的学习热情。但毕竟没有做出看得见、摸得着的软件。为了弥补这个缺陷,我们在教学中引入了案例教学。通过案例教学,引导学生开发一些小软件,从而进一步提高学生的学习兴趣,培养学生综合运用所学知识开发软件的能力。
我们在教学中通过精心设计,引入了5个案例,分阶段实施案例教学。通过在不同章节引入相应的案例来教授学生灵活运用所学知识解决实际问题的能力,提高学生的编程技能、学习兴趣。各案例介绍如下:
(1)万年历:功能为显示某年某月的月历(阳历信息)。这个案例分为4个版本。分别用于控制语句、函数、数组和面向对象中类的教学过程。
(2)猜数字游戏:既有传统的机器随机生成一个4位数,然后玩家来猜。又可以玩家随机出一个数,机器来猜。用于函数、数组的教学。
(3)打字游戏:屏幕随机在一个位置掉下一个字符,让玩家输入该字符,直到正确或触底为止。用于数组的教学。
(4)井字游戏:在3*3格子上进行的连珠游戏。机器和玩家轮流在格子留下O和X标记,由最先在任意一条直线上成功连接三个标记的一方获胜。用于指针和引用的教学。
(5)二十一点:玩家的目标是使自己手中的牌的点数总和不超过21且尽量大。用于继承和多态的教学。
以上5个案例,既有实用性,又有趣味性。后面的4个案例虽然也是游戏,但均不涉及图形接口,并不会增加学生的负担。这5个案例贯穿整个课程的教学,分阶段地实施,能够将学生在整个课程的学习中随时调动起来。通过教会学生开发出一个个实用的、有趣的小软件,大大提高他们学习的兴趣。
4.结束语
针对应用型本科C++程序设计课程的教学需要,突出强调程序设计方法的培养,利用“程序设计在线评测系统”强化学生的编程实践,同时引入案例教学,进一步培养学生综合运用所学知识的能力。实践证明,通过以上的改革措施,学生的编程兴趣、编程能力得到了很大的提高。
参考文献:
[1]吴舜歆,梁宝兰.C++程序设计课程案例教学探索[J].高教学刊,2016(8):108-109,111.
[2]吴舜歆,梁宝兰.Online Judge在C++程序设计课程实践教学中的应用[J].高教学刊,2016(9):164,167.
[3]李文新.加强基础,提供平台,营造氛围,全方位培养创新能力——北京大学计算机学科教学体系改革[J].计算机教育,2008(1):20-22
作者简介:
吴舜歆(1978-),男,汉族,广东潮州人,讲师,硕士,研究方向为机器学习、推荐系统。
【关键词】应用型本科 程序设计课程 教学改革
【基金项目】2014年度广东省高等教育教学改革资助项目(GDJG20142517)。
【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2016)05-0230-02
1.前言
毋庸置疑,学会编程、掌握编程对计算机专业的学生来讲非常重要。掌握一门程序设计语言,就等于掌握了跟计算机交流的工具。对于很多计算机专业的同学来讲,C++是他们的第一门程序设计课程。学好C++,不仅掌握了跟计算机交流的工具,也为后续专业课程的学习打下良好的基础,同时有助于建立自信心。
2.当前存在的问题
目前的C++程序设计课程的教学主要存在以下几个问题:
(1)教学内容过分关注程序设计语言的语法和语义细节,整个课程是以程序设计语言为纲来组织教学内容。由于程序设计语言具有大量繁杂语法知识点,使得老师往往采用灌输式教学模式,花费大量课时资源用于讲授琐碎的语法知识,而不是花在程序设计思想和方法的传授上。
(2)教学方法采用语言工具书的阐述方式,一般是先介绍一种语法结构的形式和意义,然后给出简单示例或示例程序,这些示例和示例程序的主要作用只是用于对语法结构使用方法的说明,学生并不能通过这些示例体会问题分析、程序思维和构造的方法。整个课程也很少引入综合性的教学案例,没有让学生体会到:针对要解决的问题,如何进行分析并逐渐将其精确化;如何针对问题的计算需求,设计解决问题的过程;如何将问题解决过程精确化,选择适当的程序结构实现它。
(3)学生上机实践的时间较少,不能透过大量编程实践掌握程序设计的相关理论、方法。学生上机写程序,往往限于自身的水平,对测试数据考虑不全面,从而导致程序写完之后随便找几个测试数据测一测,如果没有问题,就算程序是正确的。实际上,对于初学程序设计的学生来说,如何设计更加全面的测试数据确实是一个不小的挑战。所以往往出现这样的情况,学生的程序实际上是错的,但由于学生使用的测试数据比较片面,从而误以为程序是正确的。对于课程书面作业,学生交上来的程序不少时候连编译都通不过。
3.教学改革
针对应用型本科C++程序设计课程的教学需要,在教学中突出计算思维的培养,将其贯穿于整个课程的教学和实践。通过培养学生掌握常见的程序设计方法,进而提高程序设计水平,为后续专业课程的学习打下牢固的基础。同时引入案例教学,培养学生开发小软件的能力,增强学生的学习兴趣。
3.1重视程序设计方法
传统的C++程序设计课程过于强调语法,课堂所介绍的例子很多是为了验证C++的语法知识。这往往导致学生缺乏程序设计方法的培养,结果是拿到一个问题不知道该如何去考虑,无从下手。
我们在实际教学中,侧重于将教学重心放到培养学生程序设计方法上。特别注重穷举、递推、递归、回溯等常见程序设计方法的介绍、训练。进而培养学生的计算思维。实践证明,学生通过掌握这些常见的程序设计方法,分析问题、解决问题的能力得到了很大的提高。而不是像以往一样,一个问题来了以后,不知道如何去分析、解决问题。从而打下了良好的编程基础,建立了专业自信心。
3.2加强实践环节
针对传统教学中,学生往往实践环节比较欠缺的问题。我们在教学中引入了“程序设计在线评测系统”。该系统拥有一个经过精心设计的题库,同时它具有以下功能:
(1)实时判题。学生可以在任何地方、在任何时间做题,然后提交自己的源代码。系统会实时地对学生的代码进行评测,并给出相应的评测结果。主要有以下几种情况:编译错、答案错、格式错、运行时出错、超时和接受。如果学生提交的代码不被系统接受,学生可以对代码进行修改,然后再次提交。
(2)布置作业。老师可以根据实际教学的需要在系统里面布置作业,限定本班的同学才能参与。系统会对学生提交的代码进行实时的评判,并对学生的做题情况进行排名,不需要人工干预。同时老师可以设定作业的截止提交时间,超过截止时间系统将拒收作业。老师可以登陆系统一目了然地知道学生的做题情况。
(3)组织比赛。老师可以根据教学的需要适当的组织一些比赛,以此调动学生的学习积极性。系统会自动评测学生提交的代码,并对学生进行实时的排名,比赛一结束,比赛结果同时就出炉。
(4)用户管理。系统记录各用户的做题信息,并保存用户提交的源代码。
(5)排名机制。系统提供排名机制。学生既可以查询自己在所有用户中的排名,也可以查询自己在年级、班级的排名。
(6)论坛。学生可以在论坛上讨论相关的题目,互相学习。
由于“程序设计在线评测系统”提供了强有力的支持,能够实时判题,并且提供了排名,这大大提高了学生编程的热情。不少学生甚至通宵达旦地编程以解决题库中的问题。这种编程的热情在引入该系统之前是不可想象的。
3.3引入案例教学
“程序设计在线评测系统”有力地锻炼了学生了编程能力,提高了学生的学习热情。但毕竟没有做出看得见、摸得着的软件。为了弥补这个缺陷,我们在教学中引入了案例教学。通过案例教学,引导学生开发一些小软件,从而进一步提高学生的学习兴趣,培养学生综合运用所学知识开发软件的能力。
我们在教学中通过精心设计,引入了5个案例,分阶段实施案例教学。通过在不同章节引入相应的案例来教授学生灵活运用所学知识解决实际问题的能力,提高学生的编程技能、学习兴趣。各案例介绍如下:
(1)万年历:功能为显示某年某月的月历(阳历信息)。这个案例分为4个版本。分别用于控制语句、函数、数组和面向对象中类的教学过程。
(2)猜数字游戏:既有传统的机器随机生成一个4位数,然后玩家来猜。又可以玩家随机出一个数,机器来猜。用于函数、数组的教学。
(3)打字游戏:屏幕随机在一个位置掉下一个字符,让玩家输入该字符,直到正确或触底为止。用于数组的教学。
(4)井字游戏:在3*3格子上进行的连珠游戏。机器和玩家轮流在格子留下O和X标记,由最先在任意一条直线上成功连接三个标记的一方获胜。用于指针和引用的教学。
(5)二十一点:玩家的目标是使自己手中的牌的点数总和不超过21且尽量大。用于继承和多态的教学。
以上5个案例,既有实用性,又有趣味性。后面的4个案例虽然也是游戏,但均不涉及图形接口,并不会增加学生的负担。这5个案例贯穿整个课程的教学,分阶段地实施,能够将学生在整个课程的学习中随时调动起来。通过教会学生开发出一个个实用的、有趣的小软件,大大提高他们学习的兴趣。
4.结束语
针对应用型本科C++程序设计课程的教学需要,突出强调程序设计方法的培养,利用“程序设计在线评测系统”强化学生的编程实践,同时引入案例教学,进一步培养学生综合运用所学知识的能力。实践证明,通过以上的改革措施,学生的编程兴趣、编程能力得到了很大的提高。
参考文献:
[1]吴舜歆,梁宝兰.C++程序设计课程案例教学探索[J].高教学刊,2016(8):108-109,111.
[2]吴舜歆,梁宝兰.Online Judge在C++程序设计课程实践教学中的应用[J].高教学刊,2016(9):164,167.
[3]李文新.加强基础,提供平台,营造氛围,全方位培养创新能力——北京大学计算机学科教学体系改革[J].计算机教育,2008(1):20-22
作者简介:
吴舜歆(1978-),男,汉族,广东潮州人,讲师,硕士,研究方向为机器学习、推荐系统。