1. 引言
由于面向对象技术的突出优势,让它成为开发大型软件所采用的主要方法。本课程以Java语言为工具,主要讲授Java语言基础;面向对象程序设计技术(抽象、封装与类、继承与多态);图形用户界面程序设计;异常处理和输入输出等内容。着重培养学生用面向对象程序设计思想和“计算机思维”方式进行计算机编程,尤其强调对学生“计算机思维”方式的训练,使学生能够运用Java语言作为一种思维工具解决处理现实问题。学生需要通过大量的上机实习培养学生的动手能力及综合应用能力,为后续学习、从事软件开发和应用设计打下坚实的基础。
2. 教学中的痛点
2.1. 轻实践,重理论
《面向对象程序设计》的特点是理论知识较多,语法复杂,内容量大,教学中通常采用传统“讲授式”教学方法,教师着重讲授面向对象的语法规则、实验也多为验证性为主,学生长期处于被动接受过程,缺乏主动参与的积极性。
2.2. 实验内容孤立,无法建立知识间的联系
《面向对象程序设计》是一门实践性课程,需要通过大量的上机实践巩固知识的学习。教材中例题与课后习题均是围绕某一个或几个知识点设计,相对孤立,学生学完后无法对知识建立联系,缺乏统一认识,无法完成综合项目的开发,更无法建立与后续课程之间的联系。
2.3. 教学方法单一,无法调动学生积极性
《面向对象程序设计》一般由理论和实践两部分。理论课一般安排在教室中,实践课安排在机房中。理论课堂中,老师“讲讲讲”,存在就理论而理论,从书本到书本,主要以灌输为主,很少让学生参与到课堂教学中来,教学手段和教学方法单一,忽视学生的主体性,缺乏交互性、探究性和实践性,从而削弱了学习的积极性。而实践课上通常是教师布置作业,学生自己练习,理论部分需要自己重新复习,浪费了大量时间,效果也很难保证。同时,教师也经常忽略不同学生的基础知识、学习目标、学习能力的个体差异,没有设置低阶、中阶和高阶题目,无法适应不同学生的需求。
2.4. 考核方式重成绩,综合素质难体现
传统教学过程中,一般采用期中、期末“一考定乾坤”的评价机制,这不但忽略学生学习能力的培养,还导致很多学生忽视学业,出现“及格万岁”、“得过且过”的思想,严重背离大学教育的宗旨,不利于主动学习和对学习过程的积极参与,难于体现创新精神和综合素质。
2.5. 思政内容融入教学需持续探索
自2016年12月份教育部首次提出关于课程思政的指导性意见开始,大家就如何实现课程与思政课协同配合、同向同行,共同落实好立德树人根本任务展开探索。《面向对象程序设计》是培养合格的IT类工程应用型人才的一个重要环节,如何培养学生的自我学习与创新精神,需要教师不断摸索。
3. 教学创新改革实践
3.1. 围绕“三级一中心”,创新教学内容
我们知道,学习一门手艺,一定要循序渐进,把手艺分解成几个简单的动作,反复练习直到熟练,然后再把基本动作组合起来练习直到熟练。遵照这一认知规律,构建“基础练习–专题练习–综合实验”循序渐进的三级实践方案 [1] 。
Level 1:基础练习,课上针对每个知识点设计一个小练习,通过PPT下发,边听边练。每个练习3到5分钟,随时掌握学生学习状况,以便合理控制教学进度。
Level 2:专题练习,每个教学模块是一个整体,它由若干个知识点构成,结束时以作业形式下发练习,一方面巩固知识点,另一方面深入理解各知识点之间的联系。
Level 3:综合实验,课程以Java语言为工具,主要讲授Java语言基础;面向对象程序设计技术(抽象、封装与类、继承与多态);图形用户界面程序设计;异常处理和输入输出四部分内容。

Figure 1. Diagram of comprehensive experimental teaching design
图1. 综合实验“工程项目管理系统”教学设计图
综合实验内容设计结合学校特色,围绕如何使用不同的方法实现“工程项目管理系统”问题进行设计。相同的实验内容,不同的实现形式,课堂紧紧围绕这一中心问题,从低阶到高阶,逐步深入,构建知识图谱,加深学生对相关知识的理解,达成教学目标(见图1)。
3.2. “以学为中心”、采用BOPPPS线上线下混合式教学模式,创新课堂教学
3.2.1. “以学为中心”梳理教学内容,设计教学网站
OBE (Outcomes Based on Education)即以产出为导向的教学理念,是工程教育专业认证的核心思想。课程探索从“以教为中心”向“以学为中心”的教学模式转变,重新梳理教学内容,设计超星学习通教学网站。网站根据FD-QM在线课程质量标准中8个大类标准33项指标进行设计,体现了“以学为中心”的教育教学理念,学习目标与课程内容、学业测评、课程教材、学习活动和课程技术及采用的学习资源和技术有助于课程目标的达成,符合“对准一致”原则。课程提供了教学视频、章节自测、线上讨论、定时签到、选人、问卷等学习活动,同时采用作业、PBL小组活动、期中考试、期末闭卷考试等形式多样的学习测评活动,有利于学生学习目标达成(见表1)。

Table 1. The overall design of teaching based on “Learning Centered”
表1. 基于“以学为中心”的课程整体设计
3.2.2. BOPPPS混合式教学设计
课程打破传统“满堂灌”的教学形式,将课堂全部移到机房。针对典型知识点采用BOPPPS模式组织课堂,设计适宜的教学目标,通过前测、参与式学习、后测三个主体部分设计教学环节,通过“做中学”促进学生探究式学习和创新能力,实现布鲁姆认知体系的最高阶学习目标“创造”。
针对整体教学设计,主要采用线上线下混合式教学模式 [2] [3] [4] 。教学过程由教师主导活动和学生主体参与活动的混合,也是学生自主学习和协作的混合,它主要包含三个部分:线上学习、课堂学习、参与式活动。线上学习,基于MOOC + 超星学习通;课堂学习:教师提问——学生互动——教师重难点问题讲解——总结——布置作业;参与式活动:复习巩固——线上学习检测——完成作业——作业(作品)展示(见图2)。

Figure 2. Diagram of comprehensive experimental teaching design
图2. 基于超星学习通的线上线下混合教学模式
3.2.3. 多种形式的课堂活动,促成目标达成
为促使教学目标达成,课程主要开展三类教学活动:
1) 以任务为导向,分组完成3次专题汇报。讨论题目为综合性,需要自己综述观点。学期初自愿组队,固定分组,每组不超过6人,课下讨论、课上PPT汇报,同时提交课下讨论的视频等活动记录。通过此活动培养学生团队协作能力、归纳整理能力、表达能力,同时也拓展学习深度。
2) 以作业互评为抓手,通过评价,学习别人之长,发现自身的不足,对程序设计精益求精。
3) 以学习通为工具,合理利用签到、抢答、选人、随堂测、问卷、计时器等功能,活跃课堂、增加学生参与度。
3.3. 形成性评价与总结性评价相结合,创新考核方式
课程采用形成性与总结性相结合评价机制,各占50%。教学过程中根据学生需求随时调整教学内容,不仅关注学生学习的结果,同样关注学生的学习过程,及时评价,“教–学–教”相互影响、相互促进。
形成性评价主要依据课堂互动、作业、讨论、随堂测、访问量、分组汇报、实验等进行过程评价,表2给出某学期平时成绩评价细则,教师通过形成性评价及时调整教学进度、改进教学方法、同时对学生进行督学。总结性评价采用机考方式。

Table 2. Detailed grading rules on usual performance in a semester
表2. 某学期平时成绩评分细则
3.4. “工匠精神”引领,立德树人、积极开展课程思政研究
马克思说“人创造环境,环境也创造人”。课程思政具有良好的教育和导向作用,通过在传授计算机相关知识的过程中,注入理想信念教育内容,能起到潜移默化的作用。将工匠精神融入到教学的出发点是从外部的技术细节入手,深刻思考科学精神和人文精神与学生自我个人发展关系,以此为契合点培养学生“持之以恒、精益求精、开拓创新”的工匠精神,这将成为学生学业、就业、创业的支柱和灵魂 [3] 。
1) 课程德育元素与融入设计思路
按照“知识传授与价值引领、项目实践与能力提升”两条主线将德育元素融入的课程教学。在知识传授过程中,选取“中国芯”、“熊猫烧香”黑客攻击事件、管仲与鲍叔牙的故事等,引导学生树立正确的人生观、价值观;在项目实践中构建“认识——实践——总结”即从理论到实践,再从实践深化理论认识这一过程,梳理教学知识点,选取几个典型案例,通过“大家来找茬”游戏,引导学生反复修改程序,精益求精,从而让程序逐步达到“完美”。
2) 采用讲授、研讨与实践相结合教学方法
第一,课外视频学习与专题讨论相结合。
学习《大国工匠》记录片,了解工匠精神的本质,收集行业精英案例,理解工匠精神在他们身上的诠释,专题讨论要成为一个合格IT人,在编程的过程中怎样寻求精益求精?
第二,知识传授与价值引领相结合。
将爱国教育、法律法规、哲学观点融入到知识讲解中,通过具体案例,强调知识要点。选取“中国芯”、“熊猫烧香”黑客攻击事件、管仲与鲍叔牙的故事等,引导学生树立正确的人生观、价值观;通过介绍我国在量子通讯、互联网、人工智能、大数据等高科技领域取得世界领先地位,“新四大发明” 树立学生民族自豪感,激发文化自信。
第三,项目实践与职业素养培养相结合。
程序设计是一门精细化的课程,要求学习者思维缜密,对算法融会贯通,在程序的编写过程中对变量的使用及算法的实施极为细致,将精益求精的工匠精神渗透到编程实践中,引导学生在程序设计中力求完美、减少程序BUG,努力让每一段程序代码都达到99.99%的品质 [5] 。例如在信息管理系统中,对于人员的年龄属性,必须添加数据过滤(如下代码段所示),让学生体会程序精益求精的编程态度。
代码示例:
public void setAge(int a) {
if(a>0&&a<140)age=a; //数据过滤
else age=0;
}
4. 教学创新的成效
4.1. 考试成绩分析
针对班级整体和部分高/低分学生成绩的对照分析,将采用传统教学模式的授课班级信151、信161与采用线上线下混合式教学模式的授课班级信171、信181的期末卷面成绩作对比(见图3)。经统计分析,信171班、信181班成绩有了大幅提升,卷面不及格率由信151班的53.57%降到3.33%;而前十名信171、信181平均分明显高于其它两个班级(见表3),且期末成绩在显著性水平α = 0.05下,教学模式不同对于低分同学有显著差异,从而表明混合式教学更好的调动了大多数同学学习积极性。

Figure 3. Diagram of comprehensive experimental teaching design
图3. 学生期末成绩对比图

Table 3. Comparative analysis table of some high/low student grades
表3. 部分高/低分学生成绩的对照分析表
4.2. 将主动学习转化为学生求知的内驱动力
信计专业建立了建立以5大核心课程群为支撑的课程教学体系——基础数学课程群、专业核心算法课程群、计算机技术课程群、信息技术课程群和特色课程群(见图4)。通过《面向对象程序设计》这门基础课程的教学改革,学生将主动学习内化于心,在后续数学算法课程、信息技术课程和特色课程学习中,主动探索未知世界。比如,信计专业在2019级之前培养方案中没用开设《Python程序设计》课程,2020-2021-1学期《数值分析课程设计》有约一半的同学通过自学,使用Python或Python + Matlab较好的完成项目。

Figure 4. Core curriculum group of information and computing science
图4. 信息与计算科学专业核心课程群
4.3. 踊跃参加学科竞赛,助力人才培养质量提升
信息与计算科学专业人才培养强调“以信息领域为背景,数学与信息,计算机相融合”。在计算机类课程中,一方面培养学生用程序设计思想和“计算机思维”方式进行计算机编程,尤其强调对学生“计算机思维”方式的训练,使学生能够运用计算机语言作为一种思维工具解决处理现实问题。另一方面,将数学与计算机融合,计算机与信息技术融合,让学生明白“如何把实际问题用数学建模,并用计算机实现”。
为了更好的提升人才培养,以蓝桥杯全国软件与信息技术专业人才大赛、全国大学生数学建模竞赛、美国大学生数学建模大赛为抓手,建立“竞赛课程–校内竞赛–国家竞赛–国际竞赛”四层次培养体系(见图5),学生热情高涨,几乎全员参与,每年获奖率为30%。近五年,学生共获得国际级3项、国家级5项、省部级53项。

Figure 5. Competition system of information and computing science
图5. 信息与计算科学专业竞赛体系
5. 结束语
《面向对象程序设计》创新教学改革实践从教学模式、教学内容等方面均取得了一些成效,多形式的混合式教学不但活跃了课堂教学气氛,充分发挥教师的主导地位和学生的主体地位,激发学生的学习兴趣,同时学生在线学习行为还大大促进知识掌握程度,更好地保障教学效果。程序设计是一门精细化的课程,要求学习者思维缜密,对算法融会贯通,在程序的编写过程中对变量的使用及算法的实施极为细致,课程中引入“工匠精神”的相关理念,在程序设计中力求完美、减少程序BUG,对学生影响深远。
基金项目
北京建筑大学课程建设重点培育项目:面向对象程序设计(ZDHH202007);
北京建筑大学教育科学研究项目:基于OBE理念优化教学资源培养“创新型”人才(Y2144);
北京高等教育“本科教学改革创新项目”:新工科背景下,数学类基础课程教学改革研究(201910016004)。