APP下载

以应用需求为导向的程序设计课程教学改革

2022-01-07李运发

软件导刊 2021年12期
关键词:程序设计语言课程

李运发

(杭州电子科技大学计算机学院,浙江杭州 310018)

0 引言

科学技术的不断进步推动了通信应用、电子应用、智能应用、互联网应用、传感应用的发展,对人们学习和掌握程序设计语言提出了更高要求。如今,越来越多应用领域急需掌握程序设计的高素质人才。在此现状下,程序设计课程在大学生教育阶段中扮演着举足轻重的角色。掌握程序设计的基本知识和基本技能已成为了当代大学生不可或缺的技能之一。

长期以来,大学程序设计课程的教学均以教学大纲为指导,在规定的时间、地点完成授课内容。虽然任课老师在每节课的教学准备阶段均设置了教学目标和任务,且在教学过程中着重说明了教学的重点和难点,但由于学生缺少具体的应用实践,对应用场景缺乏直观的了解,无法明确学习程序设计的目的,学习方向十分混乱,间接导致学生丧失了该课程的学习动力。

虽然目前教学方式随着互联网技术的发展已经发生了重大变化,线上教学平台推动了高校程序设计课程教学模式的变革,提升了学生通过线上资源进行自主学习的积极性。教学模式打破了时间和空间的束缚,对大学程序设计课程教学起到了极大的推动和促进作用。但目前改革主要集中在教学方式的改变上,从教师讲授为主转变为辅导为主,学生听课为主转变为学生自学为主。在需求导向方面的作用较少,缺乏与实际相结合的应用场景。然而,随着科学技术的不断发展,从办公自动化软件到信息管理系统,从自动传感器的嵌入式软件到物联网软件,从工业自动化到工业物联网等,这些软件的应用模式和需求都在不断发生变化。因此,需要进行以应用需求为导向的大学程序设计课程教学改革。

1 相关研究

程序设计作为许多专业的一门基础课程,面向的不仅仅是千千万万的大学生,还有各行各业的工作者。由于程序设计课程的重要性,许多教育工作者对其进行了研究,提出了一系列与程序设计课程建设与培养相关的教学理论和方法。彭鑫[1]针对实践化教学过程中所面临的教学问题,在多年摸索及与企业相互交流的基础上提出了一种以软件构造为中心的软件工程实践化教学方法。此方法确定了以软件构造为中心,依托云平台,以迭代的方式开展课程教学实践。彭鑫等[2]针对传统软件开发实践教学中所面临的问题,提出了一种以软件维护为导向的软件工程实践教学方法。此方法主要通过加强软件维护的实践训练提高学生对系统的理解、修改和维护能力。李文骞[3]提出了一种基于OBE 理念的程序设计类课程的教学改革模式。此模式以预期的学习成效为出发点反向设计教学过程。目的是让学生成为教学活动的主体,提高程序设计类课程的教学质量和教学水平。

周会平等[4]针对程序设计课程教学中面临的问题和挑战,提出建设程序设计教学生态。通过结合各种教学资源和辅助教学工具,依靠群智学习的方法构建自主学习环境,实现真正的个性化教学,并介绍了支撑教学生态的资源和平台。钟登华[5]基于国家战略发展新需求、国际竞争新形势、立德树人新要求指明了我国工程教育的改革方向。需要重点把握学与教、实践与创新、本土化与国际化这三个任务,以立德树人为目标进行教学评价体系的教育改革。李青山等[6]针对高校人才培养中亟待解决的重大问题,从软件工程专业人才培养的实际出发,探索面向人才需求导向的软件工程专业实践能力培养体系,提出“三全育人”的新模式及实现路径。

为了解决高校课堂普遍不重视理论知识与实际应用相结合的问题,张帅[7]提出了基于“五位一体”的应用型大学软件技术专业人才的培养方法。针对目前C 语言程序设计课程教学中存在的问题,靳小燕等[8]通过有效融合专业特色,对“C 语言程序设计”课程教学进行改革与实践,提高了学生的学习兴趣与编程能力。针对新工科背景下程序设计语言课程在实际教学中面临的主要问题,马华[9]通过改革传统的教学内容与方法,利用在线学习平台,构建了程序设计语言课程的开放式教学体系,有效地提高了程序设计语言课程的教学质量和效果,实现新工科人才培养的目标。

针对新形势下社会对测绘工程专业学生培养的新需求,董超等[10]结合测绘工程专业认证背景及社会、学校、学生的实际情况,对新形势下测绘程序设计课程的教学进行研究。具体措施为:调整培养计划,协调课程关系;综合系统统筹,梳理教学内容;提升教学条件,改进教学模式;改善评价体系,鼓励个性发展。针对思政教育难以有机融入专业课程的问题,李金忠[11]分析了面向对象程序设计(Java)课程思政的现状,提出程思政育人的目标,探讨如何将思政元素有机融入课程教学中,为计算机类专业的课程思政教学提供参考。为提升程序设计基础课程的教学实效,谷长龙等[12]针对非计算机专业程序设计基础课程的教学现状,探讨了基于任务驱动的混合式教学模式。为适应在线教学的特殊形式,徐伟等[13]首先介绍了程序设计课程在线教学,然后利用OJ 系统、增加代码风格、优化成绩统计等方式对程序设计课程教学进行改革和研究。基于以学生为中心的教育理念,结合目前的教学现状和存在的问题,卢瑾等[14]以编程在线评判系统为依托,结合竞赛教学,分别从教学内容、教学模式以及教学评价三个方面对程度设计课程教学进行了分析和改革,强调必须根据施教效果的反馈来调节教学环节。

从上述研究可知,程序设计课程教学改革已取得了一定的效果,对于促进程序设计课程教学实施、提高教学效率和效果等方面都起到了非常重要的作用。但是,随着科学技术的飞速发展,现有的教学模式无法满足社会实际应用发展的需求,需要不断进行探索和改革。

2 应用需求与大学程序设计课程教学的现状分析

随着经济、科技和文化的高速发展,云计算、物联网、大数据、人工智能等前沿科技技术得到了广泛的应用。这些应用涉及到电子工程、航空航天、海洋保护、能源开发、生物治理、政府管理、商业贸易、自动控制、信息通信、汽车驾驶、医药卫生、财务管理等领域。随着实际需求的不断增加,要求高校在教学中面向不同专业的实际需求时,提出合适的教学大纲、教学任务和教学内容。

目前,大学程序设计课程涉及汇编语言、C 程序设计语言、C++程序设计语言、SQL 数据库、Java 程序设计语言、Python 程序设计语言、JavaScript 程序设计语言、C#程序设计语言、Rust 程序设计语言、PHP 程序设计语言、Pascal 程序设计语言、Fortran 程序设计语言、go 语言、NoSQL 图形数据库等。然而,这些语言在实际教学过程中,过多的注重程序设计理论、程序设计规则、程序设计技巧等,导致实际应用与程序设计课程教学之间相互脱节,缺乏以应用需求为导向的教学大纲、教学任务和教学内容,没有考虑到学生的专业特性、实际应用背景和未来的职业需求。

Fig.1 The relationship Diagram between software application and program design course teaching图1 目前软件应用与程序设计课程教学之间关系图

由图1 可见,实际应用与课程教学存在脱节的原因主要表现在以下三个方面:①学生对程序设计语言难以产生深刻的理解。由于程序设计语言的教学缺乏与实际应用相结合,导致学生无法使用所学知识解决实际问题。②学生难以掌握程序设计语言的精髓。学生只是被动(或主动)的接收程序设计语言课程的零碎知识,未能将其应用于实际问题中,缺乏解决实际问题的经验和能力。③学生对程序设计语言难以产生兴趣和爱好。学生在程序设计语言的学习过程中实际应用的机会较少,因此缺乏主动学习的动力,学习效果较差,难以产生浓厚的兴趣和爱好。

3 以应用需求为导向的程序设计课程教学改革

大学程序设计人才培养的目标必须围绕国家发展的应用需求,坚持理论和实践相结合的教学方式,全面贯彻以应用需求为导向的教学指导方针,培养符合国家、社会需要的软件设计和开发人才,充分认识到软件自主开发对我国经济发展的重要性,切实提高学生的实际动手能力和开发能力。基本方法如图2 所示。

Fig.2 The teaching reform method diagram of programming course oriented application demand图2 以应用需求为导向的程序设计课程教学改革方法

3.1 基于学生专业的实际应用需求分析

大学生掌握程序设计语言既是自身发展的需要,还是社会发展的必然要求。因此,需要分析不同专业学生的应用特性,调查学生的实际应用需求,将实际应用需求贯穿于大学程序设计课程的整个教学过程中将有利于提高学生的程序设计水平与能力,具体方法如下:

(1)从学生专业的角度出发,深入了解学生的专业领域,分析专业的发展现状和应用需求,探讨现有技术变革下的未来需求。具体为:分析实际的生活需求、工作需求、生存需求、学习需求、研发需求等方面;另一方面也要分析个人需求、家庭需求、单位需求、社会需求、国家需求等方面。将学生的专业需求与个人需求、社会需求和国家需求相互统一,制定出不同专业学生的应用需求大纲。

(2)根据不同专业学生的应用需求大纲,结合不同专业的应用特性,分析程序设计课程知识的应用背景,探索如何将程序设计课程的知识应用到实际需求当中,建立程序设计课程知识与应用需求相统一、相融合的对应关系,使学生能够利用所学知识去解决实际应用中的问题。

3.2 以应用需求为导向的程序设计教学课程设计

目前大学程序设计教学课程大部分是按照以下三种情况进行组织:通识基础课、专业核心课和创新实践课。通识基础课是将大学程序设计教学课程在非计算机专业的学科中设为必修课,主要向学生传授程序设计的基本知识和方法理论。这种设置从某种程度上体现了程序设计教学课程对非计算机专业的重要性。专业核心课则将部分大学程序设计教学课程在计算机专业的学科中设置为必修课,一方面向学生传授程序设计的基本知识、方法和理论,另一方面向学生传授程序设计的技巧与分析方法。创新实践课则将部分大学程序设计教学课程在计算机专业的学科中设置为选修课,主要向学生传授程序设计的创新思想和方法,使学生能够运用所学知识解决一些较为复杂的问题。这种组织方式具有一定的科学性,但也面临着一系列的问题。主要表现为:在通识基础课中,非计算机专业的学科众多,不同学科的专业互不相同,实际应用需求、未来从事职业、有待解决的问题均不一致。在专业核心课中,程序设计课程的教学内容过多关注程序设计理论、规则、技巧等,缺乏有效地引导学生利用所学知识解决实际问题。在创新实践课中,虽为学生提供了锻炼的机会,但随着科学技术的发展,大数据、人工智能等前沿领域得到了广泛应用,当前高校的程序设计教学课程的应用思想和应用理念与该学科的发展相互脱离,未能真正让学生学以致用。

针对目前大学程序设计教学课程所面临的问题,设计以应用需求为导向的程序设计教学课程,具体方法如下:

(1)制定与应用需求相结合的教学大纲和内容。为了全面贯彻程序设计课程教为所用、学以致用的目标,对大学程序设计课程的教学大纲进行全面分析,积极打造校企合作新方式,将传统的程序设计理念方法与新时代的需求紧密结合,紧跟科技创新新步伐,构建软件应用与课程教学相通的桥梁。同时,聚焦国家发展战略,努力培养社会、国家所急需的软件设计和开发的工程实用型人才和科技开发型人才。

(2)设计与应用相结合的教学方式。随着教学大纲和内容的迭代更新以及市场需求的变化,教师在教学过程中应该同步调整教学方法,一方面需要着重培养学生的创新能力,另一方面要培养学生的实际动手能力。创新与实践是大学程序设计课程的重点,只有让学生真正动手实践,才能充分吸收课程的基本知识,消化理解老师的授课内容,形成自己的理解,从而为理论创新奠定基础。

大学程序设计教学课程应紧密结合社会和国家的发展需要,及时调整教学计划与教学方式。即使入门级的程序设计课程,也要根据实际应用需求对教学方法做出相应的调整。对于当下流行的、前沿的程序设计技术,可通过对相关实践教学的介绍,使学生了解前沿程序设计技术,从而可以初步选择自己未来的研究领域。因此,提升学生在实际应用中的参与度是当前大学程序设计课程在教学过程中需要解决的重要问题之一,可通过设计与应用相结合的教学方式来解决。教师在教授相应课程时,应结合慕课模式、翻转课题模式和上机实践模式,引出一些热门的应用问题,让学生分组探讨和实践,提高学生的参与度,增强学生的学习兴趣和思维能力。更重要的,通过与应用相结合的教学方式,将传统教学模式转化为教师演讲与学生实战练习相互结合的方式,使学生在强化知识的同时提升发现问题和解决问题的能力。

(3)构建以学生发现问题和解决问题能力为主的评估方法和评测模式。目前,许多高校在程序设计教学课程的效果评估与评测中,依然采用传统的笔试方法,从学生的答题效果来评测学生掌握知识的情况和教师的授课质量。这种方式对于一些偏理论性或记忆性的基础课程而言更适合,但对于应用性、操作性都很强的程序设计类课程则并不适合。以C、C++、Java、Python 等基础程序设计语言为例,采用传统的考核方法虽然可以涵盖语言基础、程序流程控制、数组等内容,但未包含实际操作的程序设计步骤和基本的调试运行方法。因此,难以适用于以应用为导向的程序设计语言教学课程的评估与评测。为此,需要构建以学生发现和解决问题能力为主的评估方法和评测模式。

基本方法包括:①构建以学生发现和解决问题能力为主的评价指标。在以应用需求为导向的程序设计教学课程的评估过程中,教师是教学活动的引路者和指引者,学生是教学活动的思索者和践行者,应用需求是整个教学过程中的桥梁,是整个教育模式向前的动力。构建以学生发现和解决问题能力为主的评价指标在整个教学效果评估活动中起着关键作用,它能衡量学生如何将程序化的应用抽象化和具体化,又如何在有效的时间内将抽象化和具体化的应用程序化。②构建以学生发现和解决问题能力为主的评价步骤。在以应用需求为导向的程序设计教学课程的评估过程中,根据设计的教学大纲、教学内容和教学方式设计评估步骤是整个教学过程的前提。评估步骤不仅要考虑应用需求的引入、程序设计思想的运用、应用问题的解决等,还需综合考虑应用需求的难点、程序设计语言的特点、教师态度、学生水平、学生实践环境等。为此,需要采用理论联系实际、循序渐进、不断改进评价步骤。

4 案例和实施效果分析

根据上述研究和探讨的结论,以Java 语言程序设计的课程教学结合快递公司对物流配货管理的信息化应用需求为案例进行展示和说明。

根据快递公司对物流配货管理的信息化应用需求,首先构建Java 语言程序设计的课程教学。教学大纲涉及的内容包括课程目标、课程内容和基本要求、实际动手环节及其要求等。具体为,基于快递公司对物流配货管理的信息化应用需求,构建Java 程序设计语言的基本学习方法,使学生通过系统功能的划分、设计和开发过程,切实理解程序设计的基本概念和解决问题的基本思路,培养学生面向对象程序设计的基本思想,使学生具备功能划分、功能设计、程序阅读、程序设计的基本能力,并且能够顺利完成Java 语言程序的编写和调试工作,解决系统设计过程中的各种实际问题。

接着,根据制定的教学大纲和内容,设计与应用相结合的教学方式。在实际教学过程中,基于快递公司对物流配货管理的实际过程,分析物流配货信息化管理的需求。通过分析,有利于学生及时掌握物流配货的车源信息、客户订单和客户信息。基于此,教师依次制定每节课的授课内容,包括Java 语言中数据类型的分类、变量的定义、表达式的描述、运算符的种类划分等。通过具体的应用信息,使学生能够直观、生动地了解数据类型、变量、表达式、运算符的应用场景,了解数据类型的分类、变量的定义、表达式的描述、运算符的种类划分等在程序设计中的作用和功能。其次,在开发系统功能前,教师可指导学生配置程序的开发环境,使学生能够掌握Java 语言程序设计所需的开发环境。包括操作系统的配置、JDK 版本的选择、开发工具的部署、服务器的构建、后台数据库的搭建等。此过程能够加深学生对Java 语言程序开发环境的了解和掌握。最后,对物流配货信息化管理进行系统设计和开发,使学生能够真正理解和掌握Java 语言数据的输入和输出、控制语句的实现、数组的声明等。

最后,构建以学生发现和解决问题能力为主的评估方法和评测模式。根据物流配货管理系统的功能划分,评测学生在不同功能模块中的实现方法、实现过程和完成状况,给出系统功能的达成度指标和评价模式。

将此案例应用于实际教学过程中,并将其与传统教学方法和翻转课堂教学方法就学生对Java 语言程序设计的平均了解度、平均喜爱度和解决实际应用的平均达成度三个方面进行比较,结果如图3 所示。

Fig.3 The statistical chart of the effects of three different teaching methods图3 三种不同教学方法的效果统计

由图3 可见,学生对Java 语言程序设计的平均了解度、平均喜爱度和解决实际应用的平均达成度都比传统教学、翻转课堂教学要高,表明该教学方法能够使学生了解Java语言程序设计课程在实际中的应用需求,深受学生喜爱,能够激发学生学习的潜力和动力。

5 结语

大学程序设计课程是高等学校向学生传授计算机程序设计思想的基本课程,是培养应用型人才、科研型人才和创新型人才的必要课程。对于广大教育工作者而言,如何有效地大量培养适合社会和国家应用需求的人才是急需解决的问题之一。当前大学程序设计课程的教学思想、教学方式难以满足当今社会需求,因此,需要进行以应用需求为导向的大学程序设计课程的教学改革,提出切实可行、易于实施的方案。但大学程序设计课程涉及的程序设计语言种类繁多、应用需求十分广泛,由于篇幅有限,不适合针对具体的应用需求给出详细的实现方案。因此,本文针对整个大学程序设计课程,通过结合社会需求,提出以应用需求为导向的大学程序设计课程教改的基本思想和方法,对现有的教学方式进行适当取舍,引入利于学科发展、解决实际问题的措施与教学手段。

猜你喜欢

程序设计语言课程
《无机化学》课程教学改革
数字图像处理课程混合式教学改革与探索
软件设计与开发实践课程探索与实践
基于Visual Studio Code的C语言程序设计实践教学探索
为什么要学习HAA课程?
从细节入手,谈PLC程序设计技巧
让语言描写摇曳多姿
高职高专院校C语言程序设计教学改革探索
累积动态分析下的同声传译语言压缩
PLC梯形图程序设计技巧及应用