SCI论文(www.lunwensci.com):
摘 要:现阶段计算机专业程序设计类课程教学效果不佳,课程资源无法充分支撑学生实践能力的培养。针对这个问题,以面向对象 Java 程序设计课程群为入手点,明确从易到难,从分散到综合的、多层次的、以案例为驱动的教学资源建设理念,探讨如何结合实际应用通过建设完善、层次丰富的课程资料来辅助整个程序设计类群教学, 制定持续改进方案,不断完善建设内容来支撑学生开放、深度学习,提高学生知识掌握能力、复杂问题解决能力、行业级案例开发能力,提升专业人才培养质量。
关键词:程序设计课程;实验教学资源建设;持续改进
本文引用格式: 刘佳良,于广娟,王彤 . 基于持续改进的程序设计类课程实验教学资源构建 [J]. 教育现代化 ,2021,8(40):82-86.
Construction of Experimental Teaching resources of Programming Courses Based on Continuous Improvement
LIU Jialiang, YU Guangjuan, WANG Tong
(National Demonstration Center for Experimental Computer Education, Northeastern University, Shenyang Liaoning)
Absrtact: At present, the teaching effect of computer professional programming courses is not good, curriculum resources can not fully support the cultivation of students’ practical ability. In response to this problem, Based on the object-oriented Java programming course group, Definitely from easy to difficult, from decentralized to integrated multi-level case-driven teaching resources construction, this paper probes into how to assist the teaching of the whole class of programming design by constructing and perfecting the rich course materials in practical application, Establish continuous improvement program to improve the construction content to support students’ open, in-depth learning, improve students’ knowledge mastery ability, complex problem-solving ability, industry-level case development ability, improve the quality of professional personnel training.
Keywords: programming course; experimental teaching resource construction; continuous improvement
一 引言
在高校计算机专业人才培养和教学体系中,计算机程序设计动手能力是计算机专业学生必须具备的最基本的能力,也是计算机专业能力培养的基础, 很大程度上影响了学生未来专业的发展 [1-2]。
传统的教学程序设计课程以理论教学为主,实验教学为辅,以教材和实验指导书为主要教学资源, 程序设计课程知识往往比较抽象,学生难以理解, 在学习过程中学生比较容易产生畏难情绪,课时有限,无法充分让学生深入学习程序设计语言知识和应用案例 [3-6],课后学生自主实践学习无从下手,导致高校培养的计算机专业人才很难满足行业实际需求。本文以面向对象程序设计课程(Java)为例,针对人才培养和教学体系存在问题,改进现有教学模式,研究以案例和实际应用为驱动的设计课程实验教学资源建设体系,为教学和学生自主学习提供优质资源,提升计算机专业人才培养和教学质量 [7-8]。
二 计算机专业程序设计类课程实验教学现状分析
(一) 实验教学环节
目前国内各高校的程序设计类包括 C 语言、Java、C++、Paython 等, 这类课程往往在教学中以课程群的形式存在,且存在先后关系,以东北大学计算机科学与技术专业面向对象程序设计(Java)为例,课程群实验环节主要涵盖程序设计课实验、课程设计、生产实习、毕业设计等 [9-10],该课程群的课时情况及关系见图 1。
(1)程序设计课实验安排在第 4 学期,内容包括 Java 语法、数据类型、面向对象基本概念、Java 程序设计基础。
(2)课程设计安排在第 5 学期,目前主要以web 开发、Android 程序开发为主,对学生进行分组合作开发,以学生自学和自主实验为主,教师指导为辅,教师按组进行项目验收评分。
(3)生产实习安排在第 7 学期前暑假期间,从2015 年起引入企业讲师,以实际应用案例为教学模板进行讲解,带领学生学习实际项目开发过程,分组选题后进行合作项目实践,教师按组进行项目验收评分。
(4)毕业设计安排在第 8 学期,实行校企双导师制,选择对应方向的题目后,由学生进行需求调研、系统设计、开发和测试、教师组织验收和评价。
以上四个环节构成了完整的面向对象程序设计教学体系,教学完成后要求学生具备并掌握程序设计语言基础知识、系统分析和开发能力、协同合作精神、自主学习能力、问题分析与问题解决能力。
(二) 目前存在的主要问题
通过多年的教学和反馈,我们在程序设计类课程的培养过程中发现了以下 5 个关键性问题。
(1)课程设计语言的基础知识学习和实践不充分,理论课程上的讲解偏重理论和概念,实验课程内容不全面且严重脱离实际应用,各关键知识点缺少能够真正帮助学生理解知识问题的实验案例,学生畏难情绪和抵触情绪较为严重 [11]。
(2)课后自主学习无从下手,很多学生想提高个人动手实践能力,但是网络和图书资料浩如烟海, 合适的学习资源没有来源,难度过大的很难入手, 难度过小的没有实际意义,导致自主学习无法开展, 学习深度和广度受到很大限制 [12]。
(3)各门程序设计类课程实验内容较为接近, 很少分析不同程序语言及其运行机制的异同之处, 没有针对不同课程和程序设计语言的特点和特性设计实验项目,无法让学生充分理解课程知识和语言的使用方法。实验内容以分散知识点来设计,无法锻炼学生的工程思维和综合设计能力。
(4)课程设计、生产实习、毕业设计环节的内容较为单一,缺少企业级的工程案例教学,学生很难了解企业级开发实际场景和规范,无法充分锻炼复杂工程开发和实现能力,学生实际能力和行业要求严重脱节 [13]。
(5)学生遇到常见问题和典型性问题时无法获得快速的解答,每届学生遇到同样的问题,能力积累效应不明显,学习效率较低。整个学习环节缺少层次体系和递进联系,实验案例、教学案例的选取随意,无法引导学生由浅入深地学习。
三 程序设计类课程实验教学资源建设体系
本文以面向对象编程程序设计类课程群为例, 按照课程和学习层次,为各教学环节建设相应的资源,使用梯度式体系改善以往的教学和能力培养现状,支持学生自主、开放、深度的学习 Java 的知识体系和工程项项目的设计与实现,提升面向对象编程课程群理论教学和实验教学水平,注重培养学生复杂工程和实践项目开发能力。鉴于程序设计类课程的共同性,可以将课程群资料建设和教学改革思路推广到其他同类型课程中广泛进行应用,同时可以通过网络平台将教学资源和改革思路共享到其他相关院校。
Java 作为目前软件开发行业排名第一的程序设计语言,在安卓应用程序开发,WEB 应用程序开发, 大数据、云计算、物联网、人工智能等等方面得到广泛应用 [14],因此我们选择面向对象编程(Java) 课程为例探讨以案例和实际应用为驱动的程序设计类课程实验教学资源建设,主要思路见图 2。

课程资源中主要建设内容包括以案例为驱动的实验课程包(16 学时,支持实验教学),以问题为引导的知识点自学课程包(自学学时超过 300 学时, 弥补理论教学, 支持学生深度学习), 企业级工程案例教学资源包(安卓、WEB 应用、云计算等多方向的实际开发教学项目,支持课程设计、生产实习、毕业设计),习题及常见问题资料库(支持知识和实践能力检验,常见开发和应用问题解答)。通过建设一套完整课程资源支持教学过程的开展和学生自主深度学习,改进现存的诸多问题,提升计算机专业人才培养质量和教学水平。
(一) 以案例为驱动的实验课程包建设
程序设计语言的学习兴趣主要来源于课程实验, 编写程序获得成就感往往大于考试获得高分, 因此实验课程内容的建设关键在于引导学习兴趣和让学生了解程序设计的思维和特点 [15]。
通过建设以案例为驱动的实验课程包来替换原有的实验教学指导材料。课程包建设的核心概念是以案例为驱动,为整个实验课程设计一个能够包括所有知识点的实践案例,将案例拆解为各知识点分开讲解,注意同一个知识点的多种案例演示,在实验室过程中将后续案例在前序案例基础上的迭代。主要讲解的知识点有 Java 数据类型、基础语法、API 使用、面向对象程序设计和实现、IO 操作、数据库操作、图形界面处理等,注意厘清 C 语言和Java 语言的异同(C 语言为前序课程),注意数据结构在 Java 中的封装和使用。实验课程包分为 4 次课,为每一次课设计课后综合实验,涵盖课上所有知识点,为整个实验课程设计综合题目,要求学生运用所掌握的知识和技术来实现,通个案例循序渐进的引导和反复的综合练习,解决以往单个知识点理解不透,实现从简单到复杂、知识点到综合案例的整合,巩固知识和编程方法的理解,带领学生认识工程开发的过程,激发学生的学习积极性,引导学生深入学习,解决程序设计课程实践入门难的问题,通过实验过程使得学生掌握基础代码、语言特性和初步的工程开发能力。实验课程包具体建设内容见表 1。
(二) 以问题为引导的知识点自学实践课程包建设
目前程序设计类课程普遍学时有限,而学生掌握真正工程开发能力,要求其对课程知识点有较深的理解、对经典应用方式有丰富的实践经验。因此我们需要为学生提供能引导其学习和实践的关键知识自学实践资源,让其能够在充分提升知识和应用能力、开展自主学习时有系统合理的规划 [16]。
建设以问题为引导的知识点自学实践课程包, 支持学生自主深度学习来解决课时有限、内容讲解不全面的问题。建设的核心理念是梳理关键性知识点和常用 API 应用案例,为各知识点设计若干个案例, 分析知识点相关问题,通过问题和案例讲解充分体现知识点的变化和应用方式,注意 Java 特性知识点的实现方式和应用情景(例如:Java 特性修饰词、继承、多态、重载等),注意常用 API 的使用方式(例如 Scanner、StringBuffer、Vector、Math、 正则表达式等),注意 Java 和其他工具的结合(文件、数据库、Web 页面、JS 等),对知识点进行优先级划分和设置 flag,预计提供约 200 学时的自学课程资源,通过线下和信息化平台等多种途径为学生提供自主深度学习资源,解决计划内课时有限、知识点学习不全面、自学案例难以获取的问题,让学生充分了解 Java 的各类知识的用法,通过优先级划分和 flag 引导学生规划学习路线。自学实践课程包具体内容见表 2。
(三) 企业级工程案例教学实验课程资源包建设
在高校目前的课程体系中,重理论轻实践、实验案例不真实的问题依旧很严重,在课程设计、生产实习、毕业设计过程中所做的开发项目往往都是模拟的或者简化的,这很大程度影响了实践效果, 培养出的学生实际工程能力无法满足行业要求。
将企业级工程案例引入到教学在课设、实习和毕设期间为学生提供充分丰富的案例学习资源。工程案例教学资源建设的主要手段是通过教育部产学协同育人项目和校外实习基地建设项目,与国内领先的软件行业企业合作,引进企业级实际开发项目案例。针对安卓应用开发、WEB 应用开发、云计算、大数据等方向案例的需求分析、详细设计、系统实现、软件测试等部分进行介绍和案例分析,注意软件工程流程、工程设计思维、开发框架调用、特殊类库引用、测试方法、页面设计、软件可用性、代码规范等方面的内容的示范和引导。让学生真正在课程设计、生产实习、毕业设计过程中以这些案例学习企业级项目开发的设计、实现流程,学习行业常用的开发框架和开发模式,按照企业开发标准在教学过程中实际动手开发一个企业级项目,填补教学环节中复杂工程教学的空白,初步解决学生毕业后无法直接对接开发项目的问题。工程案例教学资源包资源情况见表 3。
(四) 习题和常见问题资料库建设
通过多年的教学反馈,学生在程序设计类课程学习和实践过程中遇到问题无法解决,关键性知识和问题理解不到位是非常普遍的现象。因此对常见问题和关键知识做总结辅助教学是十分必要的。
习题和常见问题资料库的建设主要在于挖掘关键性知识习题和常见问题。关键性知识习题主要帮助学生检验自己的学习成果,弥补学习过程中的疏漏,提升学生对关键性知识的理解,同时加入经典问题和代码规范问题,帮助学生在应聘和以后的实际工作中提升竞争力;常见问题资料库包括环境配置、特殊应用场景,常见编程问题,疑难问题讲解等内容,注意对学生遇到的常见问题进行收录,帮助新入学的同学解决新手期遇见的各类问题,提升实践过程和学习过程的顺畅度,促进深度学习和实践应用能力的提升。目前已经建成的习题和常见问题资料库共有资料 100 余条,我们将在后续的教学过程中不断迭代更新。
四 持续改进和推广共享
(一) 持续改进
信息技术的更新是十分迅速的,教学资源和教学内容也必须跟进技术和行业的发展,而且随着教学过程和教学改革过程中的深入,我们也会发现更多的问题,因此对我们的实验教学建设体系必须建立持续改进机制,优化并更新已有的教学资源,这也是符合工程教育认证理念的。
(1)在实验课程结束后,从实验报告收集学生对实验内容的反馈情况,改进学生反馈较多的内容, 并逐年将实验课程包中难度较低的内容和案例归入知识点自学包、习题和常见问题库,调整实验案例难度, 更新实验题目(防止学生抄袭往届学生实验结果),做到 3 年实验案例和实验题目更新率达到 100%。
(2)逐年收集学生实验、课程设计过程中较好的实验案例和代码,将其整合到知识点自学实验课程资源中作为案例;挖掘学生普遍遇到的共性问题和难点问题,将解决办法收集到常见问题和习题库中; 收集来校招聘企业笔试中的经典问题,加入到习题库中。平均每年更新、增加习题和常见问题库、知识点自学实验课程资源中 15% 的内容。
(3)通过产学协同育人项目与行业企业合作, 不断更新最新的企业实际工程案例,平均每年引进新案例不少于 4 个,2019 年已规划引进的项目包括医疗大数据、实验教学质量评估系统等。
(4)注重教研结合,与学院现有科研团队进行深入探讨,挖掘科研对人才培养在面向对象编程、Java 应用开发等方面的要求,开发相关实验内容,自学案例和开发案例加入到资源库中。2019 年通过于东北大学智能驾驶研究团队的交流,我们发现该团队研究生在处理数据时大量使用文件读写,效率十分低下,因此我们将 Java课程中着重加入Java操作数据库、MapReduce 框架等实验内容,并共享给该团队进行学习,对科学研究起到了一定的辅助作用。
(二) 推广和共享
面向对象程序设计课程群是计算机程序设计课程的一种,这套课程资源建设的方法和理念可以很好地推广到其他同类课程,可以很大程度改善课程教学中实践教学不充分,工程能力培养不足,学习资源缺乏等问题,可以推广的课程列表见表 4。
本门课程的课程资源目前已经通过东北大学计算机国家级实验教学示范中心门户网站进行共享, 同时以计划通过国内其他网络学习平台进行推广和共享。
五 结语
以案例和实际应用为驱动的程序设计类课程实验教学资源在计算机专业教学过程中使用 1 年以来, 学生反馈良好,学生学习兴趣、知识和实践能力、工程开发能力显著提高,课程设计和毕业设计质量得到改善,后续我们将持续改进,广泛进行资源共享, 并将方法和理念结合到其他课程教学改革中。
参考文献
[1]李海军 . 计算机程序设计类课程的实验教学研究 [J]. 计算机时代 ,2019(02):89-91.
[2]李霞 . 基于专业应用的 C 语言程序设计课程教学研究 [J]. 计算机时代 ,2019(02):95-97.
[3]刘犇 .Java 程序设计课程教学改革的探讨 [J]. 北京印刷学院学报 ,2018,26(12):106-108.
[4]张倩 , 李伟键 , 廖秀秀 , 等 . 进阶项目驱动式《Web 程序设计》课程教学改革探讨 [J]. 现代计算机 ( 专业版 ),2018(32):50-52.
[5]李楚贞, 余育文, 杨成义《. Java 程序设计》课程教学改革研究[J].福建电脑 ,2018,34(11):180+141.
[6]陈海林 . 基于模块化的“Java 语言程序设计”教学改革研究 [J]. 科技经济市场 ,2018(09):148-149.
[7]李骏扬 , 魏海坤 . 从课堂教学到项目教学的跨越——双轨并行的程序设计教学改革探索与实践 [J]. 计算机教育 ,2018(10):113-117.
[8]周燕 , 曾凡智 , 李娅 , 等 . 提升学生算法设计与编程能力的课程群建设与实践 [J]. 福建电脑 ,2018,34(09):87-88.
[9]王剑宇 , 郭强 , 阚媛 , 等 . 基于 CDIO 的程序设计课程项目牵引式教学方法研究 [J]. 软件工程 ,2018,21(09):54-56.
[10]姚丽莎 , 李春梅 , 张怡文 . 分层项目驱动案例教学模式的 C++ 程序设计课程改革 [J]. 科技视界 ,2018(25):133-134+147.
[11]刘建征 , 刘畅 . 基于 SPOC 实践平台的 Java 课程分析 [J]. 电子技术与软件工程 ,2018(16):239-240.
[12]孙杰 .《JavaWeb 应用程序设计》课程教学改革探索 [J]. 课程教育研究 ,2018(34):249-250.
[13]张崇芳 , 金玉凯 . 以能力为导向的计算机程序设计课程教学改革 [J]. 科技资讯 ,2018,16(23):191+193.
[14]王颖 , 王建彬 , 周磊 , 等 . 程序设计课程的教学改革研究与实践 [J]. 福建电脑 ,2019,35(09):97-98.
[15]张先伟 , 曲志坚 , 张立红 , 等 . 程序设计能力培养体系建设与实践 [J]. 计算机教育 ,2019(09):75-79.
[16]王倩倩 , 朱咸军 , 肖芳雄 . 面向应用的《Java 程序设计》教改研究与实践 [J]. 中国教育信息化 ,2019(17):78-80.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jiaoyulunwen/32584.html