APP下载

软件工程型人才培养体制下的《C++程序设计》课程“321”新模式

2018-02-09宋琦王冠宇张力生

现代计算机 2018年1期
关键词:程序设计知识点微课

宋琦,王冠宇,张力生

(1.重庆邮电大学软件工程学院,重庆 400065;2.重庆邮电大学光电工程学院,重庆 400065)

0 引言

软件工程专业作为一种应用型专业,要求学生在学习软件工程专业的理论知识基础上,能够熟练掌握软件开发方法,熟悉软件项目开发过程,具有较强的软件开发实践能力和较好的工程素养。《C++程序设计》课程不仅是软件工程专业的核心课程,也是引导学生学习程序设计的入门课程。只有掌握了C++语言,才能了解计算机操作系统的内核代码,理解计算机的运作原理,从而进一步深入学习数据结构、编译原理等专业课程。同时,作为软件工程专业的入门课程,《C++程序设计》课程在转换学生编程思维、培养学生专业兴趣、引导学生进行软件项目开发等方面都起着决定性的作用。然而,由于该课程自身的语法知识复杂、重点和难点较多、深入理解难度较大;且对于刚刚接触计算机语言的学生来讲,很难转换思维去理解计算机的语言。这就导致了《C++程序设计》课程开设普遍,却收效甚微。因此,在《C++程序设计》课程的教学过程中,改进教学方法、优化教学过程是十分必要的。本文介绍了采用“321”教学模式进行《C++程序设计》课程教学,经过实践,收到了良好的效果。

1 《C++程序设计》课程现阶段存在的问题

1.1 过多关注语言语法,从而降低了学生的学习兴趣

传统的《C++程序设计》教学,多停留在学习该语言语法知识的层面上,更多的关注了语言本身。而对《C++程序设计》的本质思想和语言在计算机内部的处理机制等更基础、更深入的理论考虑的不够多。这使得学生感觉课程枯燥、无聊,在一定程度上影响了学生的学习兴趣。

1.2 以教师为中心,从而减少了学生参与的主动性

传统的教学观念,是以教师为中心,以教师讲授为主,忽略了对学生的参与程度,同时学生也很少进行主动学习和动手实践,仅满足于教师在课堂上讲授的内容,这不利于学生学习兴趣的养成,不利于学生独立思考。

1.3 重理论轻实践,从而导致学生动手能力差

传统的计算机教育中,往往重理论轻实践,过分强调知识的理论深度和系统性,而忽略了各学科知识间的联系,特别是忽视了理论知识的应用。这使得毕业生抱怨在学校没有实践机会,学习空洞理论,求职无门而面临巨大的就业压力。软件工程专业程序设计课程的培养目标是让学生理解程序设计的基本原理、掌握程序的开发流程、具有独立开发的能力,最终培养能够编写高质量代码,并能调试代码缺陷和完成模块设计工作的工程型、应用型人才。然而,实际教学过程中,理论知识全部放在课堂上讲解,不加强上机操作,这导致学生只停留在课堂上所接收的理论知识上,缺乏实际编程经验,甚至课程结束后,很多学生不会编程、不会调试。

2 经过实践验证的新的有效教学模式

按照以工程教育为主导的应用型软件人才培养模式改革与创新的总体思路,根据CDIO(Conceive构思、Design设计、Implement实现、Operate运作)工程教育模式的教育理念[1-2],以培养软件工程专业应用型人才为目标,经过实践,本课程采用“321”教学模式,取得了良好的教学效果。

2.1 懂了才会有兴趣

教师怎样讲授程序的运行过程,才能达到使学生可以接受、可以理解计算机程序运行过程中,内存是如何变化的、函数是如何调用的、栈是如何管理的。我们通过单步调试方式来讲解程序的运行过程,同时配以对反汇编代码的讲解和演示来观察程序运行过程中内存的变化情况以及函数的调用过程。此外,还配合一定的数据结构和编译原理知识,使学生了解计算机内存的管理方法和机制。从而达到理论与实践相结合,加深学生对计算机程序设计的理解。

2.2 “321”教学模式

2008年美国新墨西哥州圣胡安学院的高级教学设计师David Penrose提出了微课程的概念,他认为“微课程是一个知识挖掘的框架,我们将告诉学者在哪里挖,需要挖些什么。我们将对这一过程进行监督。”[3]我国的一些专家认为,微课是指在注意力集中的有效时间,有着明确的教学目标,内容短小,能集中说明一个问题的“微型课程”。[4]微课通常是一段视频,只针对某个知识点或学习环节的重点、难点展开,并不是完整的课堂。

“321”教学模式是指:每节课2个知识点,每个知识点采用“微课”+“操作”+“反馈”的学习方式,其中“微课”3分钟,“操作”20分钟,“反馈”1分钟。充分体现由以教师为中心转向以学生为中心,以教师讲授为主转向以学生操作为主的教学新模式。

重庆邮电大学软件工程学院该课程使用的是《C++程序设计教程(修订版)——设计思想与实现》[5],该教材的特点是:从C++的特色写起,以类型定义、识别、匹配为中心,注重编程质量;从自身学习经历写起;从初学角度写起,点透要害,巧做取舍;打破文字描述的框框,追求通俗易懂。我们在深入研究教材的基础上,结合前几年的教学经验积累[6-7],创新性的把该课程全部设置在机房进行,每节课设置2个知识点,每个知识点采用3分钟左右的“微课”形式让学生快速掌握;接下来学生针对每个知识点进行20分钟左右的实际上机操作,通过编写、编译、运行和调试每个知识点对应的程序实例,加深对该知识点的理解和掌握。在学生练习过程中,教师进行观察和指导,对学生遇到的问题随时解答,快速帮助学生理解知识点。同时,教师也会汇总学生遇到的共通问题,在学生练习结束后,进行1分钟左右的重难点反馈。为了提高学生理解的效率,我们对学生进行了分组,练习过程中,组内成员以好带差、快带慢的方式跟教师一同指导本组成员,并进行组内讨论。这种方式不仅有效提高了学生对知识理解的效率,增强了实际问题解决的能力,同时还锻炼了学生的团队意识。

以while循环语句为例。我们从一个简单的问题入手:求1+2+3+…+10的累加和。针对这个问题,首先分析问题的解题思路,进而得出解决该问题的步骤。接下来将每一步对应到计算机程序中,并转换成C++语言所表示的语句,直至形成完整的程序。最后,根据形成的程序总结出while循环语句的语法结构。如图2所示。该过程以3分钟微课的形式进行,接下来给学生20分钟时间对该知识点上进行消化和吸收。学生首先自主上机调试微课例题的求和程序,从中理解while循环语句的使用方法和作用。同时,我们还对该知识点配备了2个练习题:“计算随机给定的15个数的平均数”和“百钱买百鸡问题”,两个练习题由浅入深、由简到难。学生可以根据自己的理解情况进行练习,保证了对知识点的理解和应用。此过程中,任课教师会进行巡视,随时指导学生操作,解答学生练习过程中所发现的问题。练习结束后,教师针对学生练习中出现较多的问题,用1分钟左右以简练的语言进行讲评和强调。

图1

图2

我们的C++程序设计课程设置学时为64学时,全部安排在机房进行授课。每个机房安排65人左右,人手一台机器,一名任课教师配备一名助理教师共同指导学生练习操作,使用“红蜘蛛软件”对学生用机进行统一管理和监控以辅助教学。每次课程安排连上四节课,每节课2个知识点,确保每次课学生都能得到充分的练习。因此,学生对知识掌握的很快,问题能得到及时的解答,保证了知识的充分接受、应用能力和动手能力大幅度提高。

“321”教学模式,合理并有效的分配了课堂时间。以往45分钟的课堂,学生能保持注意力集中的时间不足五分之一。一节课下来,即使教师在讲台上表演得再精彩,学生能掌握的知识仅仅5%。而我们的方式,能使学生始终专注于程序,不仅掌握了知识,且学会了应用。

2.3 强化实践教学

CDIO教育模式就是强调学生在实践,也就是“做”的过程中学习知识、掌握知识、运用知识。我们以课内实践和课外实践相结合的模式加强对学生实践能力的培养。针对不同的知识点,我们配以大量相应的题库,学生完全可以在题库上展开实践,充分的进行代码阅读、理解、调试和运行。在课外实践环节中,对学生进行分组项目训练,展开团队项目开发。项目开发过程中,需要按照项目开发的完整流程进行,熟悉项目开发流程中各个阶段的目的、任务和成果物,同时也体会团队合作的重要性。采用项目开发训练,可以变抽象为具体,变枯燥为有趣,让学生乐于去学习。项目开发结束后,也会根据实际情况,进行成果物的展示、评估和测试验收。

此外,我们通过竞赛机制来激发学生的学习兴趣,设置读程序、调试程序和编写程序比赛[8],如图3所示,以团队或个人方式参赛,从而引导学生自主学习。目前,该程序竞赛已成功举办四届,学生反响良好,有力地促进了课堂教学,增加了学生学习的主动性,很好地体现了我们所提出的“321”教学模式的有效性。

图3

3 结语

《C++程序设计》课程作为软件工程专业的入门课程,具有理论与实践并重的特点。对后续其他专业课程的学习,培养合格的软件工程型人才起着关键的作用。本文针对现阶段该门课程存在的教学问题,提出了“321”教学模式,该方法在我院实际教学过程中已经得到了验证,取得了良好的效果。

[1]查建中.论“做中学”战略下的CDIO模式[J].高等工程教育研究,2008(3):1-6.

[2]李竹林.基于CDIO教育理念的高校计算机专业课程教学改革探讨[J].教育与职业,2012(20):127-128.

[3]Shieh D.These Lectures are Gone in 60 Seconds[J].Chronicle of Higher Education,2009,55(26):A1-A13.

[4]黎加厚.微课的含义与发展[J].中小学信息技术,2013(4):10-12.

[5]钱能.C++程序设计教程(修订版)——设计思想与实现[M].北京:清华大学出版社,2009.7.

[6]张化川,杨林,黎在万.基于计算思维的计算机表达式教学方法实践[J].现代计算机,2017,(5):7-10.

[7]张化川,黎在万,张力生.深化考试改革推动编程类课程教学改革[J].现代计算机,2016,(7):16-19.

[8]软件工程学院2017年计算机程序阅读能力竞赛成功举行.http://xwzx.cqupt.edu.cn/cqupt_xwzx/news.jsp?id=37002.

猜你喜欢

程序设计知识点微课
一张图知识点
初中数学课堂教学中如何有效导入微课
一张图知识点
第四页 知识点 歼轰-7A
医学专业“Python程序设计”课程教学改革总结与思考
基于Visual Studio Code的C语言程序设计实践教学探索
微课在幼儿教育中的应用
微课在高中生物教学中的应用
微课在初中历史教学中的应用
从细节入手,谈PLC程序设计技巧