摘"要:为在面向对象程序设计课程中贯彻落实工程教育认证的核心理念,围绕课程目标在课程内容、学生实践和教学方式三个方面展开课程建设,提出以项目案例为主线的课程内容重组,采用课内实验、线上课外作业促进学生的动手实践,以课堂翻转、小组讨论、课程思政等教学方式引导学生积极参与课堂教学。最后,结合期末考试和过程性考核综合评价学生的课程目标达成情况,教学实施结果验证课程建设的有效性,提升学生解决复杂工程问题的能力。
关键词:工程教育认证;面向对象程序设计;案例教学;线上课外作业;课堂翻转
中图分类号:G642"""文献标志码:A"""""文章编号:2096-000X(2025)02-0083-04
Abstract:ForthesakeoftheimplementationofthecoreconceptofengineeringeducationcertificationonthecourseofObject-orientedProgramDesign,thecourseconstructioniscarriedoutonthecoursecontent,thepracticeofstudentsandtheapproachtoteachingrevolvingaroundthecoursetarget.Therecombinationofcontentbasedontheprojectcaseasthemainlineisproposed.Thein-classexperimentsandtheonlineextracurricularhomeworkareemployedtoforcestudentstodopractice.Thestudentsareguidedtotaketheinitiativeinjoininginthelessonsinthemannerofflippedteaching,discussionswithinthegroupandcurriculumideologyandpolitics.Eventually,theachievementofthecoursetargetisevaluatedforthestudentsthroughthecombinationoffinalexaminationandtheassessmentoftheprocedure.Theeffectivenessofthecourseconstructionisdemonstratedbytheresultsoftheteaching.Theabilityofstudentstosolvethecomplexengineeringproblemisenhanced.
Keywords:engineeringeducationcertification;object-orientedprogramdesign;caseteaching;onlineextracurricularhomework;flippedteaching
2016年我国成为《华盛顿协议》的正式成员,工程教育专业认证“以学生为中心、产出导向、持续改进”的核心理念逐渐被国内高校所接受,其也深刻地改变了人才培养中课程目标的定位。而人才培养目标的达成依赖于课程目标的落实,这要求围绕学生解决复杂工程问题能力的培养来建设课程,在课程内容、学生实践和教学方式等诸多教学环节进行改革。
面向对象程序设计课程是计算机科学与技术专业的专业基础课,为学生后续学习Web开发技术、移动应用开发等课程提供程序设计能力基础,同时在面向过程的结构化程序设计语言类前置课程与后续软件设计类课程之间起着桥梁的作用。因此,如何将工程教育认证所倡导的理念落实到面向对象程序设计课程建设中,这影响着工程教育认证背景下整个计算机课程体系的构建[1-4]。为此,文立玉等[5]重点讨论了课程内容对课程目标的支撑方法,以面向对象程序设计课程实施情况分析工程教育认证对课程教学的影响。孙宁等[6]阐述了产出导向(OBE)教育理念在面向对象程序设计课程中的实施情况,提高了学生在课程教学中的参与度。本文结合常州工学院计算机科学与技术专业的教学情况探索工程教育认证背景下面向对象程序设计课程建设,使得课程教学能够注重学生在教学过程中的中心地位,满足学生软件开发及软件工程应用能力培养的需求[7]。
一"课程实施现状
传统的面向对象程序设计课程目标偏向于专业知识的传授,课程的内容组织往往围绕知识点展开,对于学生工程能力的培养意识较为薄弱,在工程专业教育认证背景下其对毕业要求的支撑作用并不显著,学生能力的培养呈现出碎片化特征。
教学过程以教师课堂知识讲授为主,学生被动接收课程知识内容,学生的学习目标不明确,课堂参与性不够,学习兴趣和热情下降。在知识层面,学生对于程序设计的认识停留在前置课程C语言程序设计上,面向对象程序设计思维方式的转变较为困难,所获得的知识无法有效地向工程能力进行转化。
考核方式较为单一,课程成绩主要通过考试结果的评价来完成,过程性考核不足,部分学生出现“重知识记忆,轻动手实践”的学习倾向。常规的纸面作业考核形式无法让学生经受完整的编程训练过程,投入课外作业的时间也有限,缺乏足够的动手实践机会。
二"课程建设
(一)"课程目标
结合OBE理念,在课程目标的设置上,主要根据课程对毕业要求的支撑作用展开。为此针对毕业要求将课程目标具体化,从而形成对相关毕业要求指标点的支撑,课程目标与毕业要求指标点的对应关系见表1。
根据表1,设置的课程目标更多强调学生使用面向对象概念对问题进行抽象、建模,在此基础上给出软件方案来解决问题,进一步利用面向对象程序设计语言完成编码,以此期望该课程能够系统性地培养学生针对复杂工程问题建立模型、编制软件的能力。
立足工程教育认证背景下所制定的课程目标,秉承“以学生为中心、产出导向”的理念,充分利用已有教学资源组织课程内容,改进教学方式,培养学生自主学习能力,提高学生工程实践能力。如图1所示,本课程建设主要在课程学习内容、学生实践和教学方式三个方面展开。
(二)"课程教学内容
在编程语言选择上,Java语言具备完善的面向对象特性,另外考虑到Java在软件开发技术领域的主流地位以及其对后续软件类课程学习的作用,本课程最终选用Java作为编程语言载体来介绍面向对象程序设计内容。一方面,学生通过Java语言的编程实践可以直观地理解面向对象概念,另一方面,Java语言为常规计算机程序应用提供了文件处理、多线程编程和数据库访问等各方面基础库的支持。
在课程内容的教学上,引入“学生成绩管理系统的设计与实现”作为课程项目案例来讲解知识点。为此,教学内容所涉及的知识点不再仅仅按难易程度依次介绍,同时也将围绕课程项目案例对知识点进行重组。在课程项目案例的选择上,考虑到了案例要贴近学生的学习生活,项目软件的实现覆盖了面向对象程序设计的大部分知识点,能够作为主线将各知识点串接起来。对于案例的教学不只是停留在程序分析、讲解层面,需要学生一起参与到项目的设计和实现中。最后课程项目案例以完成一个简易的学生成绩管理软件系统作为课程教学内容的输出成果。
考虑到学生尚不具备软件工程基础知识,前期由任课教师负责将学生成绩管理系统分解成用户注册登录模块、学生信息记录操作模块、图形界面模块和学生信息记录存储模块。每一个软件模块都会涉及若干个面向对象程序设计的知识点,软件模块与知识点相关性如图2所示。
根据图2中各软件模块与知识点的关系,模块的实现是多个面向对象知识点综合运用的结果。用户注册登录模块需要通过用户名、密码等字符串的比较进行验证,其使用字符串类、字符串异常处理、数据库操作类访问用户信息。学生信息记录操作模块需要建立学生类、课程类以及这些类派生出的子类等,并使用数据集合中列表、字典等数据结构存储学生信息。图形界面模块部分通过图形控件搭建界面用于用户登录、学生成绩记录的浏览、添加、删除和修改等操作,遇到界面非法操作时需要进行异常处理。学生信息记录存储模块借助于序列化与反序列化接口完成学生信息在文件中的读写,并进一步运用数据库来存储数据。
(三)"教学方式
在课程讲授的方式上主要采用了案例教学法,前期对知识点进行总览性的概述,为此讲解时省略了部分Java语法细节,让学生快速建立起面向对象知识框架。知识点教学的中后期,在已有框架性认识的基础上将学生成绩管理系统的设计与实现课程项目案例作为主线贯穿于教学过程,软件系统以迭代的方式让学生参与设计和开发,学生需要不断利用已有的面向对象概念和Java语法知识重构、改进软件系统,在此过程中进一步掌握Java语法知识的细节以及使用方法。
案例项目的设计以课堂小组讨论的方式开展,软件方案由学生小组经过讨论后给出,任课教师在课堂即时对所给出方案的可行性和优缺点进行点评,并及时引入面向对象概念引导学生尽可能以面向对象的思维方式设计软件。这种小组讨论的方式一方面使得学生能够在设计过程中切实比较面向过程的程序设计方法和面向对象的程序设计方法差别,促使学生转向面向对象程序设计思维方式,另一方面加强了学生之间的团队协作、沟通能力。
为了进一步激发学生学习程序设计的热情,在课时上分配了2个学时用于课堂翻转。在该环节的课堂任务设置上,要求学生分组,各组在前期利用课外时间制作一个Java程序小作品,并在课堂上进行演示和讲解。学生在课前需要通过文献资料的查阅、项目视频学习、开源网站浏览等方式收集或自行制作一款Java程序作品,课堂上随机选择若干小组面向全班学生演示程序功能、讲解程序结构。在每组学生的作品展示结束后,及时点评程序案例,总结程序设计方法,触发学生对程序设计方法的思考。
课程思政与专业课程教学是相辅相成的,课程思政可以坚定学生的拥党爱国政治立场、塑造学生的工匠精神以及培养学生的团队协作意识。通过课程思政元素在专业知识教学中的融入,让学生能够明确学习目标、摆正学习态度、激发学习热情。
(四)"实践教学
面向对象程序设计是一门动手实践能力要求较高的专业课程,为此设置了课内实验和课外实训作业教学环节,要求每名学生独立展开程序设计和编程实操,以此培养学生动手实践能力。
表2为本课程的课内实验安排,除了实验一“开发环境的配置”的目的在于帮助学生搭建Java开发环境、熟悉开发工具,其余4个实验都以一个小项目的形式布置给学生,让每一位学生使用Java亲自完成编程、调试操作。
在课外实训作业教学环节,本课程使用了头歌教学实践平台,该平台提供了实训题目集用于学生的日常练习,这些题目涵盖了课程要求学生所掌握的Java语法知识点,并且侧重于学生运用Java编程的训练。学生随时可以通过头歌平台嵌入浏览器的Java代码编辑器编写、提交程序,平台的测试数据对学生的答题情况给与即时反馈。头歌平台的实训作业让学生能够在课外拥有用户友好的线上编程学习平台,其满足了学生课堂知识巩固、课外知识延拓的需求。
三"课程考核及课程实施效果
课程考核是度量课程目标实现程度的主要手段,能够较为真实地反映学生程序设计和编程能力的培养效果,其也是课程教学持续改进的重要依据。本课程将期末考试考核与过程性考核相结合,具体考核比例的设置为:期末考试成绩在总成绩中占比为50%;平时成绩占比30%,其包括了出勤、实训作业和课堂翻转,这些环节分别占比10%;课内实验占比20%。在课程目标支撑方面,期末考试对3个课程目标都形成支撑,课内实验对课程目标3形成支撑,平时成绩对目标1、2形成支撑。该课程的教学在常州工学院计算机科学与技术专业21计一班(总计学生数40人)实施,课程达成情况见表3。
根据表3的21计一班课程达成情况,学生在课程目标1、3上达成情况较好,显示出学生对于面向对象概念的运用以及开发工具的使用较为熟练,这得益于大量的程序设计和编程练习。而在课程目标2上,学生的达成度较低,这主要由于21计一班处于大二第一学期,操作系统、计算机网络和数据库原理等专业必修课对该班尚未开设,学生对于多线程、网络编程和数据库操作只停留在工具的使用上,缺乏原理认识,无法把握相关编程内容。
四"结束语
在工程认证背景下,围绕培养学生解决复杂工程问题的能力来探索面向对象程序设计课程的建设。为此,本课程将知识点按项目案例重组,教学方式上则通过案例教学、小组讨论和课堂翻转等方式落实学生为中心的理念,实践内容包括课内实验、课外作业侧重于编程练习,让学生有更多的动手实践机会。课程考核融合了期末考试、课内实验、线上作业和课堂翻转等成绩,因此能够以一种更为多元的评价方式来考查课程目标的达成情况。在后期的课程建设上将进一步总结课程目标对学生能力的反映程度,并以此作为课程各教学环节持续改进的依据,提升学生能力的产出,为地方产业培养出高质量的计算机专业人才。
参考文献:
[1]万烂军,彭召意,文志强,等.面向工程教育的计算机类课程实践教学改革[J].计算机教育,2021(10):113-116,121.
[2]刘黎志,章瑾,张水平.面向工程教育认证的计算机专业课程体系建设[J].福建电脑,2022,38(3):41-44.
[3]蒋社想,陈辉,刘惠临.工程认证背景下高级语言程序设计教学改革[J].软件导刊,2022,21(2):235-238.
[4]郭东恩,刘黎明.基于达成度评价的软件类课程考核评价方式研究与实践[J].计算机教育,2020(2):133-136.
[5]文立玉,铁菊红,郭本俊.工程教育认证背景下的“面向对象程序设计(Java)”课程建设及实施路径研究[J].无线互联科技,2021,18(14):129-130.
[6]孙宁,曲海成.工程教育专业认证背景下面向对象程序设计课程改革与实践[J].大学教育,2022(6):56-59.
[7]赵小芳,吴甜甜.基于专业认证的Java课程建设[J].计算机教育,2020(2):80-82.
基金项目:国家自然科学基金“基于长短时样本记忆的视觉跟踪方法研究”(61602063);常州工学院“课程思政”教学改革专项研究项目“思政元素在面向对象程序设计课程中的构建与融入”(30120300100-22-jgkt06)
第一作者简介:钱诚(1981-),男,汉族,江苏常州人,博士,副教授,硕士研究生导师。研究方向为智能信息处理。