彭秀芬 陆克中
摘要:以“新工科”人才培养目标为导向,分析当前教学中存在的问题,以及面向对象程序设计课程的特点。从理论教学、实践教学以及考核机制等方面,探讨如何优化课程知识体系和教学内容,如何利用线上线下资源提高面向对象程序设计的教学质量,如何拓展实践教学方式,以及如何制定考核机制,以提高学生的自主学习意识、综合实践能力和持续竞争力。
关键词:新工科;面向对象程序设计;理论教学;实践教学;教学改革
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)21-0186-03
Abstract:Guided by the target of talent-cultivating in Emerging Engineering Education, the paper analyzes the problems existing in current teaching and the characteristics of the object-oriented programming course. And then, from the aspects of theory teaching, practice teaching and assessment mechanism, this paper discusses how to optimize the curriculum knowledge system and teaching content,how use online and offline resources to improve the teaching quality of object-oriented programming, how to expand the practice teaching method, and how to make the assessment mechanism, in order to improve students' awareness of autonomous learning, comprehensive practical ability and sustainable competitive power.
Key words:Emerging Engineering Education; Object-Oriented Programming; Theory Teaching; Practice Teaching; Reform in Teaching
以新技术、新业态、新模式、新产业为代表的新经济的蓬勃发展,对工程科技人才提出了更高要求。教育部组织高校进行深入研讨,并发布了《教育部高等教育司关于开展“新工科”研究与实践的通知》,要求围绕工程教育,以新理念、新模式培养具有可持续竞争力的创新型卓越工程人才[1]。
为适应产业与社会形态的迅猛变化,高校“计算机+”专业开始加入“新工科”建设。面对新的形势,解决地方性高校“计算机+”专业在实施能力培养教育方面的问题和困惑,不仅仅是体现在课程体系的改革上,更重要的是课程教学内容和教学方式的改革。面向对象程序设计(Object Oriented Programming,OOP)课程是“计算机+”專业的必修课,其工程实践性很强,具有综合能力培养方面的教学优势,对学生能力素质的培养具有一定的可见性。在“新工科”背景下进行课程教学改革探讨,可以为地方性应用型高校进行“新工科”研究与实践提供有益的参考。
1 当前教学存在的问题
1.1课程认识问题
面向对象程序设计课程是计算机相关专业的一门重要的专业基础课,在由基础训练到专业课教学阶段过渡过程中起到承上启下的作用。它不仅为今后学习专业课打下坚实的理论基础和技术基础,而且为软件开发、程序设计提供必要的理论、方法和工具。但面向对象程序设计课程教学理念与当前的变化和未来需求不适应。例如,课程的教学目标单一,过多集中于单一的专业能力培养,忽略了沟通能力、团队协作能力,创新意识等方面的培养。以学生为中心的教育理念贯彻落实不到位。例如,课程知识体系设置没有兼顾学生个体差异,难以满足学生的不同需要。这些现象与“以立德树人为引领,以应对变化、塑造未来为建设理念,以继承与创新、交叉与融合、协调与共享为主要途径,培养未来多元化、创新型卓越工程人才。” [2]的“新工科”建设内涵不相符。
面向对象程序设计是典型的工程设计类课程,其工程实践性强,需要更多的学时实践能力。在传统课程教学安排中往往“重理论,轻实践”。例如,我校面向对象程序设计共64学时,其中理论48学时,而实践只有16学时,课上没有足够的时间进行实践训练。课程学完后,学生能读懂程序,但不会设计程序。
1.2理论教学问题
目前,理论教学主要存在的问题有:1)教学模式单一。面向对象程序设计课程的教学还是以传统的教学方式为主。由于内容多课时少,教师往往容易从自身角度出发,专注于讲解知识点,急于在有限的课时内完成课程的教学任务,忽略了学生个体感受。往往教师讲得热情洋溢,学生却一脸茫然。这种以“讲”为主,学生跟着老师讲解的“知识点”转的方式,无法培养学生的创新性思维。另外,单一的教学方式,也使得较大教学容量与有限课时冲突更明显。2)教学内容与后续课程脱节。面向对象程序设计是一门专业基础课,是为后续很多课程的基础。例如数据结构、Web开发、操作系统、数据库应用,企业应用开发等都与这门课有着千丝万缕的联系。仅以掌握知识点和程序设计方法作为本课程的教学核心,不利于培养学生的前瞻意识和可持续发展的竞争力。
1.3实践教学问题
面向对象程序设计是一门工程实践性较强的课程,其学习效果可以通过程序设计实践进行检验。但目前实验教学存在着一些问题,主要有:
1)实验内容简单枯燥。由于实验课时有限,实验内容主要以验证性为主,内容缺乏吸引力,不能充分激发学生的创新意识。即使有一些设计类的实验项目,内容也很陈旧,只是一些求解简单数学问题的程序设计。课程结束后,学生往往只会阅读分析程序,不会利用面向对象的程序设计思想解决新问题。内容单一的验证实验,不利于培养学生的创造性思维和创新能力。
2)实验项目独立设计,没有贯穿整个教学过程,缺乏工程实践的系统性,不能有效地培养学生的持续学习和改进能力。
3)实验项目要求简单,各个学生能独立完成,不需要团队合作。这种实验项目虽然培养了学生的独立能力,但不能有效地培养学生的项目组织和团队协作等方面能力。
2 教学改革探讨
2.1课程知识体系和教学内容优化
面向新兴产业与引领性行业的需求,从面向对象程序设计课程地位出发,确定课程教学目标,优化课程知识体系,重构教学内容。
2.1.1 课程地位和性质
面向对象程序设计课程是“计算机+”专业的专业基础课,也是核心课程。面向对象程序设计具有抽象性、封装性、继承性和多态性等特点,对象与对象之间有弱耦合的关系[3]。OOP的思想是以具体的事物(对象)为单位,关注事物的整体:特征(属性)和行为(方法)。设计和开发出来的程序更加模块化,数据抽象程度高,模块具有低耦合性、高内聚、信息隐蔽、可复用、易修改、易扩充等特性。该课程中所涉及的程序设计思想、方法和素质是后续软件开发类课程的基础,更是软件开发人员必须具备的一种基本素质与能力。
2.1.2 课程改革目标
为服务国家战略发展新需求和构建国际竞争新优势,“新工科”培养的“计算机+”专业人才不仅要具有“IT工程师职业道德、行业公约、业务素质、职业实践国际标准、诚信、沟通与合作、工程项目管理等” 职业素养,还需具有“前瞻意识和创造性思维、沟通协调、领导力、国际视野、团队协同、历史和社会责任感等”精英素质。对就面向对象的课程教学而言,以“新工科”建设为导向的教学改革目标重在培养学生的综合能力,包括:理论分析与抽象、问题理解与求解、系统分析与设计、系统开发与实现、系统应用与管理、实践经验与动手、持续学习与改进等专业能力;还要提高学生的交流沟通、项目组织与团队协作、经营管理、创新意识与能力及國际竞争等能力[4]。通过理论联系实际,加强实践环节的教学,通过多种教学方法,将具体能力培养细化到教学的各个过程和环节中。
2.1.3教学内容设计
在高校“计算机+”专业的培养计划中,通常在面向对象程序设计课程之前安排C语言程序设计课程。面向对象程序设计教学都选择C++或Java语言,而这两种语言的基本语法与C语言大同小异。因此,在教学内容安排上(如表3-1)将弱化基本语法的讲解,重点通过类、对象、继承、抽象、接口等面向对象知识的讲解与实践,培养学生的面向对象编程思想,使学生掌握如何应用面向对象编程语言设计和实现基于面向对象的软件系统,为后续软件开发课程打下坚实的基础。设计综合实践项目,将项目内容模块化,根据各个模块涉及的知识点,将项目贯穿到各部分教学内容中。
2.2理论教学改革
在教学方式上,考虑到课堂教学的局限性,可以在原有课堂教学的基础上,利用在线平台拓展课堂。利用网络开放教学与课堂教学相结合的信息化教学新模式,缓解有限的课时与丰富的教学内容之间的矛盾。
采用混合式教学的目的就是综合传统教学和网络化教学的优点,既能发挥教师在教学过程中的导向和管理作用,又能促进学生在学习过程中的积极性和主动性。对于“计算机+”专业的学生,更能提高他们对专业课的学习兴趣。另外教学方式的创新,在一定程度也能激发学生的创新意识。
1)线上教学准备和安排
在运用混合新模式教学时,需要提前做好充分的准备。首先,教师根据制定好的教学内容安排,设计每次教学过程。根据本节教学内容、教学目标、重难点及知识点的相关性,制作教学课件、安排习题、讨论问题、相应知识点的贯穿实践项目模块、在线测试试题等。然后,在上课前将相应的学习任务发布到学校网络教学平台,组织学生提前预习相关课程内容。同时借助网络教学平台的课程答疑讨论区、QQ群等线上交互工具进行课前课后辅助教学。课后,通过网络教学平台的“在线测试”,检测学生对本节课程的学习效果。通过“课程问卷”收集学生对本课程的学习心得和教学建议,为后续教学提供借鉴。
2)线下教学设计
在课堂教学过程中,教学安排主要分为以下几个方面:(1)根据线上讨论情况和教学平台的“课程学习统计”,对普遍存在的问题、和难度大,晦涩难懂的知识点进行面对面分析解答。(2)根据知识点安排贯穿项目模块,并组织课堂讨论和练习。(3)根据学生的线上线下学习情况,布置课后练习,调整线上测试试题。通过有针对性的训练,进一步提高学生对教学内容重难点的掌握和运用能力。
2.3实践教学改革
根据课程性质,制定实践教案。优化实验项目内容,创建实践项目库。通过项目式教学、课程设计、学科竞赛、校企合作平台等方式强化实践教学。
2.3.1实践教学内容
根据教学大纲和理论教学计划,选取和设计实践项目,创建实践项目库。在选取实践项目时要考虑是否能贯穿整个教学过程,完成项目后能形成一个完整的系统,使学生有获得感和成就感。另外,还需考虑实践项目的难度,要根据学生的知识水平和能力,选取难度适中的项目,避免使学生在实践过程中产生畏难情绪。
实践项目主要来源:1)教材配套的实践教程;2)协同育人单位实训案例;3)网络上一些开源项目;4)学科竞赛项目等。在确定实践项目后,根据课程教学目标适当调整项目的需求,再根据实践项目的难易度进行分级,便于在不同的教学阶段进行布置。
2.3.2 实践教学形式
实践教学形式分为:课堂实践、课程设计及学科竞赛。实践项目以团队的形式完成,每个学生发挥自己的特长。其中,课堂实践项目和课程设计最后以答辩的形式展示自己的项目。在实施实践教学前,先根据学生在理论教学中的表现以及对知识点的掌握情况对学生进行分组。每组3~5人,按能力高、中、低进行搭配合作,并推选出组长,负责改组实践任务的分配和管理。
1)在课堂实践教学中,使用贯穿项目进行实践。在课前,教师先准备好实践指导,通过网络教学平台发布给学生,让学生预习实践内容,各组组长提前分配组内各成员的实践任务。课上,教师先讲解本次实践的目的、重点和难点,并随堂解答学生在实践过程中遇到的问题。
2)课程设计集中安排1~2周的时间进行集中实践。实践项目可以是实践项目库中的项目,也可以直接引入协同育人企业的实训案例。由协同育人企业1~2名讲师全权负责课程设计内容,校内教师辅助教学。
3)动员学生积极报名参加各类程序设计大赛,并利用线上教学平台和周末对学生进行竞赛辅导。
2.4考核机制改革
课程考核不再以简单的笔试成绩为主要依據。以理论水平+实践中学生分析和解决问题的能力、团队协作能力、创新能力等各方面表现为依据,制定新的评价体系,鼓励学生参与实践,创造性地完成实验。具体考核参考如下:1)出勤及课堂表现:20%;2)课外编程作业:20%;3)实验完成情况及实验报告:30%;4)期末测试:30%。
3 总结
面向对象程序设计主要研究如何从对象的角度出发,构建程序单元以及程序开发机制,是一门理论与实践并重的程序设计课程。在“新工科”背景下,改课程教学改革的重点在于如何将实践贯穿到理论教学中,以及使学生在实践过程中更深层次的理解和掌握面向对象程序设计的思想,并通过实践,提高学生的实践经验和动手能力,培养学生的项目管理能力和团队协作能力,使之逐渐成长为具有“可持续竞争力”的人才。
参考文献:
[1] 教育部. 教育部高等教育司关于开展新工科研究与实践的通知[EB/OL].[2017-02-20]. http://www.moe.gov.cn/s78/A08/A08_gggs/A08_sjhj/201702/t20170223_297158.html2017.
[2] 钟登华. 新工科建设的内涵与行动[J].高等工程教育研究,2017(3):1-6.
[3] 郎波.Java语言程序设计[M].清华大学出版社,2015:19-28.
[4] 徐晓飞. 新工科背景下软件工程人才培养与教育改革[EB/OL].[2017-10-14]. https://wenku.baidu.com/view/7f3541982dc58bd63186bceb19e8b8f67c1cefeb.html.
【通联编辑:王力】