刘昌余,鲁斌
(1.华南农业大学数学与信息学院,广州 510642;2.五邑大学计算机学院,江门 529020)
探究非计算机专业C++面向对象程序设计课程教学改革
刘昌余1,鲁斌2
(1.华南农业大学数学与信息学院,广州510642;2.五邑大学计算机学院,江门529020)
随着信息技术的高速发展,社会对复合型人才的需求日趋旺盛。如何在结合专业特色的同时,培养以社会需求为中心的高质量复合型人才,已成为高等教育兴衰成败的关键。作为一门交叉性和实践性都很强的应用型专业,工业工程见证着我国制造业智能化发展过程。目前,关于国内高等院校工业工程专业人才培养模式的划分主要有四种[1],分别是:管理学学位、机电电气类工学和管理学双学位、机械类工学学位,以及其他类工学学位。同时,关于工业工程专业课程体系的划分主要有三种[2],分别是:分析与决策类课程、设计与改善类课程,以及控制类课程。在这个课程体系中,计算机编程语言类课程,例如:C语言课程、C++语言课程、或Java语言课程,是相关后续课程的基础。
目前,在工业工程专业计算机编程语言类课程设置方面,华南农业大学数学与信息学院信息工程系开设了C++面向对象程序设计课程。C++语言,作为C语言的升级版,不仅保留了其面向过程的所有优点,而且新增了一些诸如封装、继承和多态等面向对象的处理机制,同时较Java语言有更好的运行效率。对于非计算机专业的工业工程学生来说,由于专业所涵盖的课程类型差别较大,采用传统针对计算机专业C++面向对象程序设计课程的教学方法已不能取得较好教学效果。同时,为了更好地备战即将开展的教育部普通高等学校本科教学评估工作,有必要也迫切需要对非计算机专业C++面向对象程序设计课程的教学改革进行探究。
1.1课程基本情况分析
针对计算机专业和非计算机专业的不同需求,华南农业大学数学与信息学院每学年都开设了一系列C++/OOP(Object-Oriented Programming,面向对象程序设计)课程。表1给出了2015-2016学年C++/OOP课程开设情况。
其中,C++面向对象程序设计课程,作为工业工程专业的一门任选课,完整地且系统地介绍了面向对象程序设计基本思想和编程原理。该课程的基本情况如表2所示。通过此门课程的学习,需要使学生掌握面向对象程序设计基本语法概念,熟练运用C++语言进行基本的面向对象程序设计,具备用C++语言描述和解决现实世界中简单问题能力,并为后续课程的学习,如算法分析与设计课程,及今后的软件开发奠定良好的编程基础。在选修该课程之前,要求已学习并掌握计算机应用基础和计算机导论等相关课程。课程教学的重点在于:三大基本语句、函数定义调用及参数传递、全局及局部变量、数组定义使用、数组与指针、指针与函数、类与对象、运算符重载、友元函数和模板定义使用等。课程教学的难点在于:多维数组与指针、浅拷贝与深拷贝、内联函数、函数重载、虚函数、纯虚函数、继承与派生、和标准模板库等。
表1 2015-2016学年华南农业大学数学与信息学院C++/OOP课程开设情况
表2 C++面向对象程序设计课程基本情况
1.2教学存在问题分析
通过在华南农业大学数学与信息学院的教学实践发现,在面向工业工程专业的C++程序设计课程教学中主要存在以下一些问题:
(1)非计算机专业的学生缺乏该课程必要的一些先期基础积累,导致某些章节的讲解比较困难,学生要学的新知识点比较多,导致花在学习语法上的时间要远多于实践上的时间,同时学习兴趣也会有所降低;
(2)用于巩固提升所学C++知识的后续相关进阶课程或实践较少。除了少量涉及用C++做毕业设计论文的之外,很多学生都会感觉到,在通过该课程的考核之后,再也不会用上这些已学的知识。因此,从一开始,大部分学生的学习目的不是很明确,都觉得没有义务一定要学好该课程。
(3)从表1可以看出,目前在所列出的课程中,该课程无论是在实践学时方面还是在总体学时方面,都是最少的,导致学完该课程之后,不少学生不能较好地实现一些简单实用的程序,也不能很好地运用所学知识解决实际问题;
(4)面向计算机专业的C++考核机制不能很好地适应非计算机专业的实际情况,导致考核方式不能有效激发学生学习动力,以及考核结果不能全面体现学生学习情况和解决实际问题能力。
(5)目前的教学方式主要采用讲授教学法,没有充分发挥学生学习主观能动性,不能很好地调动学生的学习兴趣。同时,相对而言,与验证型实验次数相比,综合型设计实验次数相对较少,不利于培养学生对知识的系统把控力以及综合素质能力。
为有效地解决上述存在的一些教学问题,该课程教学迫切需要与时俱进的改革措施。为此,本文对基于能力矩阵的C++课程教学改革进行了探究。
该课程总体能力目标定位为:理论学习方面,学生需要掌握面向对象程序设计的基本概念和思想,以及C++应用开发相关的基础知识;实践学习方面,学生需要熟练采用一种C++工具,实现验证型实验和综合型设计实验所要求的知识点,同时具备数据库及网络等实战应用类型程序开发能力。相应地,本文提出了一种用于实现上述总体能力目标的非计算机专业C++面向对象程序设计课程能力实现矩阵,如表3所示。
3.1教学方式改革探究
(1)理论教学改革探究
在非计算机专业的编程课程教学中,首要的任务是培养学生学习兴趣。从上述构建的能力矩阵中可以看出,提倡以能力为导向的C++教学其实并没有缩减所必须掌握的知识点,而是在传统的基础上添加并优化了面向能力培养的知识点。为在有限的学时条件下,能有效提升学习兴趣且实现总体能力目标,需要在理论授课的过程中采用案例式教学法和主题式教学法。
案例式教学法方面,需要针对能力矩阵授课进程安排,来精心准备一些学生感兴趣且可以参与其中的验证型和综合型案例。案例式教学的主要作用在于,首先可以贯穿和融合原本分散的能力知识点,其次可以分层进阶的方式突破教学重难点,同时可以以生动的方式展现编程课程魅力并提升学生学习的热情。
表3 非计算机专业C++面向对象程序设计课程能力实现矩阵
主题式教学法方面,每隔一定数量的学时发布一些面向能力培养的兼具理论性和实践性的主题,由学生自发分组合作收集相关资料,结合课下编程实践形成汇报内容,然后通过小组代表课堂研讨或提交作品来检查和展示所学成果。主题式教学可以有效更新和补充工业工程专业背景下的程序设计课程特有的知识点,例如基于面向对象程序的智能制造。
(2)实践教学改革探究
能力与实践总是分不开的,在程序设计课程学习中也是如此。由于能力的实现是一个渐进的过程,因此需要渐进的实践。
首先,需要实施验证型实践,来检验已学的知识。针对理论教学中的一些关键知识点,设计验证型程序设计作业,或者在已配备的八学时实践课上,当堂使学生对刚学的知识进行补缺查漏。
其次,需要综合型实践,来贯穿并系统化已学的知识。在理论课的一开始发布综合型程序设计的要求和时间点,让学生自发分组。在理论课快结束的时候,采用现场分组答辩或者线下作品打分等方式,检验所学知识是否已完整化和系统化。
最后,需要项目驱动型实践。根据华南农业大学历年发布的大学生创新创业项目名单,工业工程专业学生基本每年都能有省级或以上级别项目被立项。不过其中很少会有编程类型的项目。这也说明了项目驱动型实践教学还有很大的发展空间。未来需要在考虑能力培养的基础上,从指导教师和学生两个角度来综合拟定参评项目。
3.2考核方式改革探究
以能力培养为导向的C++面向对象程序设计课程教学,不仅需要在理论教学和实践方面进行教学改革,还需要在考核方式方面进行教学改革。传统的大部分课程都是采用了平时成绩和期末成绩进行加权的方式进行课程考核。这种方式无法避免有些学生临时抱佛脚的心态,也较难适应新时代综合型人才培养的需求。为此,从能力培养的角度上变更了该课程考核方式,使得最终的成绩由平时成绩、期末成绩和实践成绩三部分构成。其中,平时成绩主要由课堂考勤、随堂测验、和课后作业三块构成;期末成绩主要由选择题和判断题,以及填空题和编程题等构成;实践成绩主要由平时验证型上机实践和期末综合型课程设计构成。未来需要在实践成绩中纳入大创等类型已立项相关项目加分项,以及课堂讨论及研讨加分项。除了教学方式和考核方式外,还需要对之前实施的教学大纲进行改革。围绕课程能力实现矩阵,调整C++面向对象程序设计课程大纲各个子模块内容。例如,在教学难点小节中,需要引入进阶式的实践性难点。进而从教学源头来顶层设计能力培养大框架。
本文结合笔者在华南农业大学数学与信息学院的任教经历,提出了基于能力矩阵的C++面向对象程序设计课程教学改革方案,主要内容包括构建课程能力矩阵和探究基于能力矩阵的课程教学改革措施。未来的工作,需要在调研工业工程专业的核心能力指标体系基础上,细化目前的课程能力实现矩阵,并加权其中的核心能力的授课安排。
[1]陈友玲,张浩,王成明.21世纪工业工程专业建设及人才培养[J].重庆大学学报(社会科学版),2003,9(6):141-142.
[2]刘利军.高校工业工程专业建设探讨[J].中国现代教育装备,2007,10:85-86.
[3]郑莉,董渊,何江舟.C++语言程序设计(第4版)[M].北京:清华大学出版社,2010.
Non-Computer Majors;Object-Oriented Programming in C++;Teaching Reform;Ability Cultivation
Research on the Teaching Reformation of C++Object-Oriented Programming for Non-Computer Majors
LIU Chang-yu1,LU Bin2
(1.College of Mathematics and Informatics,South China Agricultural University,Guangzhou 510642;2.School of Computer Science,Wuyi University,Jiangmen 529020)
1007-1423(2016)24-0050-04DOI:10.3969/j.issn.1007-1423.2016.24.013
刘昌余(1984-),男,工学博士,讲师,研究方向为事件检测、计算机应用,Email:yezhich@gmail.com
2016-08-10
2016-08-18
针对非计算机专业C++面向对象程序设计课程教学中普遍存在的问题,提出以能力培养为导向的教学改革方案。该方案,首先选取所任教的华南农业大学工业工程专业开设的C++课程作为教学改革对象,并分析目前该课程的基本情况和教学中存在的一些主要问题。其次,从能力指标分解和授课进程安排两方面,构建非计算机专业C++课程能力实现矩阵。最后,从教学方式和考试方式两方面,探究面向能力导向的C++教学改革措施。
非计算机专业;C++面向对象程序设计;教学改革;能力培养
广东省科技计划项目(No.2016A020210103)、五邑大学博士启动金项目(No.2014BS07)
鲁斌,男,讲师,研究方向为复杂网络、计算机应用
To solve prevalent teaching problems in C++Object-Oriented Programming course for non-computer majors,proposes an ability cultivation oriented teaching reform solution.Firstly,chooses the C++course of the industrial engineering major in South China Agricultural U-niversity as the teaching reform target,and analyzes current situation as well as main issues in the teaching of the course in the solution. Secondly,constructs an ability realization matrix of C++course for non-computer majors based on ability index decomposition and teaching process arrangement in the solution.Finally,explores ability cultivation oriented teaching reform measures of C++object-oriented programming from aspects of teaching approaches and examination approaches in the solution.