“对分课堂”引领下的面向对象程序设计课程改革实践探究

2023-11-06 09:38林宏王东左欣何依蕾
电脑知识与技术 2023年25期
关键词:对分课堂讲授代码

林宏,王东,左欣,何依蕾

(1.贵州师范学院教育信息网络中心,贵州贵阳 550018;2.贵州师范学院数学与大数据学院,贵州贵阳 550018)

0 引言

面向对象程序设计是计算机类本科专业的核心基础课程[1],兼具理论与实践的双重要求[2]。课程多以Java语言为基础,旨在培养本科生使用“面向对象”思维和相关编程语言解决实际问题的能力,为学生后续的课程学习、课程设计、毕业设计及从事编程开发工作等奠定技术基础,属于“饭碗”类课程。长期以来,该课程在作者学校仍沿袭以“教师为中心”的传统教学模式,教师“满堂灌”、学生“被动学”、课堂互动少、学生的学习积极性和主动性不高、学生编程能力普遍较弱等问题较为突出,课程改革已迫在眉睫。

“对分课堂”是复旦大学张学新教授提出的新型教学模式,是一线教师在多年教学改革与探索过程中的优秀选择。该教学模式的核心是将课堂时间一分为二,在教师精讲的基础上留一半时间给学生讨论,并在两者间引入心理学的内化吸收环节,让学生主动、有准备地参加课堂讨论[3]。“对分课堂”模式充分把学生的积极性和主动性调动起来,充分将学生的潜力挖掘出来,对提升教育教学质量有重要的推进作用。近10年来,有大量教育工作者采用“对分课堂”教学模式融合其他教学方法和各类信息化教学平台进行混合课程改革,取得了丰硕成果。但在“对分课堂”应用于实践性较强的编程类课程时,在有效结合编程课堂特点进行精讲、拓展传统课堂讨论形式、规避课堂讨论“冷场”、与各类信息化教学平台有机融合等方面,尚有较大的探究空间。

2019年起,作者所在高校的计算机科学与技术本科专业对面向对象程序设计课程实施了以“对分课堂”为引领的混合教学模式改革,从理论讲授、实践教学、课程评价三个方面进行了全面重构与优化。在理论讲授部分,有机整合传统课堂和讨论课堂的优势,将另一半时间交给学生,让学生在主动探究和参与课堂讨论的过程中唤醒成就感,有效解决了“教师不好教、学生不好学”的矛盾[4];在实践教学方面,基于“对分课堂”理念进行实践内容的精讲并组织学生讨论,实现了实验报告的无纸化管理和实验代码的机器自动评分和查重,录制了软件项目开发微课(如图1),指导学生进行课程设计,实践教学效果提升明显;在理论课程评价方面,使用了“码学堂”智慧教学平台,实现了理论知识及Java编程题的在线测试与自动评分,形成“课前小测+课后测试+期末测试”的立体评价体系,评价方式更注重过程性评价,更科学高效;本次课程改革还高度关注学生的课堂表现,引入了“课堂活跃度”与“课堂表现”两个评价指数,开发了学生课堂表现量化管理微信小程序(如图2),将学生的平时表现量化为平时成绩,在切实激励学生积极探索和主动学习方面做了有益的探索。对比发现,课程改革后计算机科学与技术专业的三个年级学生在学习积极性、总体成绩、课程设计作品质量等方面有较大提高,学生的编程能力普遍提升。

图1 软件项目开发微课

图2 “对分课堂”中学生平时表现量化评价微信小程序

1 “对分课堂”在理论课教学中的应用

根据面向对象程序设计教学大纲安排,课程理论讲授为48学时,每次课2节连上。在实施对分课堂策略前,先将授课内容按2 节/次进行详细拆分,并根据难易程度及内容特点灵活选用“对分”模式。学生在前续课程中已学过C语言程序设计课程,故在Java语言概述、数据类型、输入输出、运算符、表达式、控制语句等偏重“面向过程”的内容中,采用旨在“趁热打铁”的“当堂对分”模式[5];在讲授面向对象编程(类的特性及应用)、数组与字符串、图形编程、异常处理、多线程、网络编程、JDBC等内容时,则以“隔堂对分”为主。除新内容的首次课以教师讲授为主外,其余每次第1节课则组织学生进行课堂讨论,第2节则精讲和布置下次讨论准备任务,给学生预留足够消化吸收知识的时间和空间,详细安排如表1。在实际教学活动中,“当堂”与“隔堂”也不是绝对划分的,可根据实际的教学进展进行微调,只需牢牢把握“尊重和保障学生参与权,预留一半时间让学生积极主动学习和讨论”的基本原则即可。

表1 面向对象程序设计“对分课堂”详细安排表

表2 对分课堂讨论任务卡片

“对分课堂”强调教师课堂讲授要“精讲留白”[6]。根据课程特点,本课的理论讲授以Java 编程为抓手,以编程案例驱动的方式进行精讲。教师在备课阶段将教材中较为细碎的实例进行重构,精心设计出融合多个Java语言特征点,贴近实际项目的编程案例。在案例讲授时,教师主要采用了即兴编写代码的方式“边打边讲”,让学生在问题逐步求解的渐进过程中学会编程,一改传统的直接呈现完整代码再逐行讲解的模式,效果更佳。在实际教学中,即兴打代码的方式也会带来讲授时间上的延长,与精讲要求相悖,故精讲案例的设计须遵循“力求精炼、切中要点、预留任务”的原则进行,确保精讲的同时又不占用学生的讨论时间。在讲授难度大、行数多的编程案例时,采用了程序填空、关键代码现场即兴补全的方式进行讲解;讲授中的“留白”则要求教师无需做到面面俱到、满堂包办,而是要点到为止、留有余地,要根据对分模式和内容特点灵活安排学生的自主学习任务。如:在课程前期以“当堂对分”为主,Java语言特性的内容大部分与C 语言接近,可从Java 与C 语言异同比较的角度引导学生进行对比式学习,提出问题清单,当堂进行分组讨论;在讲授较复杂的知识点时,则采用“隔堂对分”方式,预留足够的时间给学生在课下内化吸收或自主拓展。“隔堂对分”需给学生指定明确的准备任务并引入适度的督促考核机制。课下任务可以是上次课刻意留下的待探究内容,也可是预习任务、课下作业等。实际教学中,线上编程作业定时提交、课堂讨论的效果评价、随机点名发言、随机抽取学生反串教师讲解知识点或进行代码演示等都是有效督促学生主动、按时完成课下任务的较好方式。如:在讲授Java中“包”的概念后,安排“隔堂对分”讨论准备任务如下:

在激励学生积极准备和参与课堂讨论、防止现场讨论“冷场”方面,改革中做了大量尝试与努力。除了采用传统的小组讨论与发言(5人1组)、全班讨论与发言、QQ群讨论与答疑等讨论形式外,还根据编程课程实践性强的特点,加入了学生反串教师角色讲解演示本人代码、群内晒代码截图、组内成员“传、帮、带”互助等方式,进一步拓展了课堂讨论的内涵,形成编程课堂大讨论模式。为有效评价学生课堂讨论的表现,提出了“课堂活跃度指数”和“课堂表现指数”的量化方法。学生在参与学习讨论活动时的原始次数,由小组长做好记录,形成各自的“课堂活跃度指数”;另外,讨论课堂要求学生至少参与3次侧重个人展示性质的讨论活动,如:反串教师讲题、总结发言、课堂亮出代码、编程知识拓展内容分享等,并使用“课堂表现指数”进行量化评价。两个指数均可折算成平时成绩,最终按比例计入期末成绩。

2 实践教学改革措施

本次课程改革将实践内容拆分为“实验”及“课程设计”两门独立的考查课程,有专门的学分及学时要求。根据实验大纲安排,将实验任务重构为多个小案例,任务难度及广度较理论课堂讲授的案例有所提高,实验要求也更贴近实际软件项目中的模块编程需求。如:在数组与集合对象实验中编写计算“平均学分绩点(GPA)”的程序、在网络编程实验中编写爬虫程序抽取学校新闻网的文章内容等。每次实验课,教师会就本次实验的要求、关键技术、注意事项等进行精讲,更多时间留给学生讨论及实验,遇到实验难点问题时,则组织进行讨论与总结。实验涉及的代码,需经“码学堂”智慧教学平台提交、编译、验证和查重,实验报告也需限期上传至平台中,方便教师在线批阅和集中管理。

课程设计在课程结束前几周同步进行,旨在考查学生综合运用面向对象编程技术解决实际问题的能力。课程设计的任务为:自选主题,使用Java 语言开发一个完整的软件项目。课程设计涉及Java Swing GUI 编程、数据库、SQL 及JDBC、MVC 等较多内容,教师以一个具体软件项目的实现为例,提前录制了微课开放给学生,帮助学生厘清难点,举一反三,快速完成从平时单一编程练习到完整项目开发的过渡。此举有效解决了教师在有限学时中无法兼顾基本内容讲授与项目实战辅导的矛盾,为学生高质量如期完成课程设计奠定了基础。

3 教学评价体系改革

面向对象程序设计理论课程采用了“平时成绩平均分(含课前小测成绩、平时作业成绩)×0.4+课堂活跃度评价×0.1+课堂表现评价×0.1+期末考试成绩×0.4”的综合评价模式。其中课前小测、平时作业、期末考试由“码学堂”智慧教学平台自动评分;“对分课堂活跃度指数”对学生积极准备并主动参与课堂活动的次数进行量化,计算公式为:本人活跃度指数=本人参与活动次数/本班单人活动次数最大值×100;“对分课堂表现指数”对学生讨论课堂上的个人展示进行量化评价,由全班同学现场互评后再求平均分。为支撑上述两个课堂表现指数的计算和生成,课题组教师专门开发了学生课堂表现量化微信小程序,让小组长和学生在课堂上借助手机即可完成参与活动的记录或课堂表现互评打分(打分表原型如表3、表4)。相较于之前“平时作业+期末考试”的简单评价方式,整个评价体系弱化了终结性考试和大作业的决定性作用,强调平时主动学习的重要性,对学生的主动学习进行反哺与回报,体现了过程性评价的特点[7]。

表3 对分课堂讨论活动原始记录表(小组长用表)

表4 学生课堂表现评分表(学生互评)

教学评价全面使用“码学堂”智慧教学平台,支持选择题、判断题、填空题、程序填空题、Java 编程题等题型的在线测试。平台的智能组卷、自动评分、代码查重、进程监管、监考与防作弊、成绩管理等功能,可支撑平时编程作业、开放式作业、期末正式考试等多种测试场景。课题组在该平台上陆续构建了约5000道相关试题,为课程进行各类在线测试提供了有力保障。

实验评价方面,舍弃了传统的纸质实验报告,基于“码学堂”平台完成实验报告的在线提交、代码自动评分与查重、主观内容在线批阅等,实现了无纸化实验教学管理。实验成绩评定,需结合实验代码的机改评分、代码重复率、实验报告内容填写情况等进行综合评定,减少了教师打分的主观随意性。

课程设计是课程的综合实践内容,选题参照毕业设计的要求,更加贴近软件项目开发的实战需求,是对学生综合实践能力的全面检验。学生需独立完成一个完整软件项目的开发,并在班级进行作品公开展示与答辩,由班级代表及授课教师共同在答辩现场完成作品打分。作品评价围绕“作品原创性、作品完整性、作品实用性、作品技术创新性、演示与答辩能力、学习与进步历程分享”等6项指标进行,在评价学生课程设计作品质量的同时,还关注学生在课程设计中主动探索与进步的过程。

4 结论

“对分课堂”教学模式充分尊重学生的主观能动性,使师生角色发生了质的改变。学生变为课堂主角,教师则成为课堂引导者,教学活动体现了“以学生为中心”的教育理念[8]。面向对象程序设计课程在实施“对分课堂+智慧教学平台+微课辅助项目实战”的混合改革后,学生的学习积极性和主动性、课堂活跃度、课程平均分、课程及格率、课程优良率、课程设计作品质量,较课程改革前均有明显提高。后续将在对分课堂策略灵活运用、更充分调动学生学习主动性、建立更有效的学生激励机制、探索更科学的过程性评价体系等方面持续探究,不断推进人才培养质量的提升。

猜你喜欢
对分课堂讲授代码
创世代码
创世代码
创世代码
创世代码
思政课教学中如何做到讲授“活”?
注重有效讲授 打造高效课堂
浅谈数学课堂讲授的时机选择