工程教育认证背景下面向对象程序设计课程建设探索

作者: 钱诚 徐则中 游庆祥 张献忠

工程教育认证背景下面向对象程序设计课程建设探索0

摘  要:为在面向对象程序设计课程中贯彻落实工程教育认证的核心理念,围绕课程目标在课程内容、学生实践和教学方式三个方面展开课程建设,提出以项目案例为主线的课程内容重组,采用课内实验、线上课外作业促进学生的动手实践,以课堂翻转、小组讨论、课程思政等教学方式引导学生积极参与课堂教学。最后,结合期末考试和过程性考核综合评价学生的课程目标达成情况,教学实施结果验证课程建设的有效性,提升学生解决复杂工程问题的能力。

关键词:工程教育认证;面向对象程序设计;案例教学;线上课外作业;课堂翻转

中图分类号:G642      文献标志码:A          文章编号:2096-000X(2025)02-0083-04

Abstract: For the sake of the implementation of the core concept of engineering education certification on the course of Object-oriented Program Design, the course construction is carried out on the course content, the practice of students and the approach to teaching revolving around the course target. The recombination of content based on the project case as the mainline is proposed. The in-class experiments and the online extracurricular homework are employed to force students to do practice. The students are guided to take the initiative in joining in the lessons in the manner of flipped teaching, discussions within the group and curriculum ideology and politics. Eventually, the achievement of the course target is evaluated for the students through the combination of final examination and the assessment of the procedure. The effectiveness of the course construction is demonstrated by the results of the teaching. The ability of students to solve the complex engineering problem is enhanced.

Keywords: engineering education certification; object-oriented program design; case teaching; online extracurricular homework; flipped teaching

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代码编辑器编写、提交程序,平台的测试数据对学生的答题情况给与即时反馈。头歌平台的实训作业让学生能够在课外拥有用户友好的线上编程学习平台,其满足了学生课堂知识巩固、课外知识延拓的需求。

经典小说推荐

杂志订阅