以工程能力为导向的教学实践改革探讨

2021-04-11 02:28孙溢洋陈枢茜
中阿科技论坛(中英文) 2021年3期
关键词:配置文件日志程序

孙溢洋 陈枢茜

(南通理工学院计算机与信息工程学院,江苏 南通 226004)

随着云计算、大数据和人工智能的快速发展,Python语言因其语法简洁、跨平台、开源等特点成为当前最热门的计算机编程语言之一。TIOBE 最新发布了2021年1月编程语言排行榜,揭晓了2020年度比较受欢迎的编程语言,如图1所示,其中Python 以2.01 %的正增长荣获2020年度TIOBE编程语言奖。Python语言的发展潜力及重要性不言而喻。因此《Python程序设计》课程在软件工程专业中越来越受到重视,成为我校计算机学院软件工程专业的一门重要的专业课程,其目的是让学生利用Python语言更好地掌握程序设计的综合应用与创新能力。

图1 TIOBE 2021年1月排行榜

1 课程现状

1.1 课程基本情况

《Python程序设计》是我校软件工程专业的一门专业必修课,占3学分,共64学时,其中理论32学时,实验32学时。在开设本课程前需要完成C语言程序设计、数据结构等先修课程。主要讲解Python语言的基本语法规则及基本应用,如函数、面向对象、I/O编程、数据库编程等。

1.2 课程特点

作为应用型本科高校,在学生的培养过程中注重学生应用能力的培养,做到理论与实践并进。本课程主要培养学生的基本编程能力、计算思维能力及问题求解能力,理论学时与实践学时各半。

1.3 课程教学存在问题

近年来软件行业飞速发展,新技术层出不穷,对软件从业人员也提出了更高的要求。尽管软件人才的数量日益增多,但优秀的软件技术人才匮乏,其原因主要是高校在培养软件技术人才过程中教学内容与企业实际应用之间存在脱节;缺少对学生工程实践能力的培养与训练,同时也缺乏开展工程能力培养所需的教学环境,导致许多软件专业毕业生的技术储备无法满足企业需求,在就业市场缺少竞争力[1-2]。

(1)教学内容与企业实际应用之间存在脱节

目前,《Python程序设计》课程的教学内容基本局限于教材,但教材内容往往并不能与企业实际应用衔接上,学生缺乏对所学内容相关应用背景的了解,并且教学内容未结合企业实际开发场景进行扩展。

(2)缺少对学生工程实践能力的训练

实验教学是本课程培养学生创新能力和工程实践能力的重要环节,通过项目式实验教学,能够帮助学生更好地理解理论知识与培养实践动手能力,让学生系统地了解与掌握所学知识。目前本课程的实验教学中存在的问题是实验教学内容与工程应用之间存在较大差距,导致学生能够应用所学知识,但与软件开发岗位的基本需求存在一定的差距,如学生无法熟练使用程序调试工具、版本控制工具等。

2 教改思路

应用型本科人才培养应从软件企业对人才的实际需求出发,了解企业对人才技能的基本需求,并在教学过程中对学生加以培养。通过调研软件企业、了解企业对软件工程人才的基本技能需求后,提出优化实践教学内容的教学改革方法。结合本课程的特点及教学实践经验,在课程学时不变的情况下,最大限度地优化课程内容,采取在实验课程中介绍相关工程应用及开发工具的使用,促进学生工程素养与能力的提升,具体内容为以下四个方面。

程序调试能力培养:程序调试指重现软件故障、定位故障根源,最终解决软件问题分过程,调试程序是软件开发过程中必不可少的过程。对软件工程专业的学生来说,掌握程序调试的知识与技能必不可少。但在教学过程中,程序调试技术往往没有得到重视,学生通常能看懂控制台中的错误提示,但不会借助调试工具定位产生问题的代码块。是否能够熟练地对程序进行调试并快速定位和解决问题是体现程序员综合能力的标准之一。因此有必要在课程中适当介绍程序调试工具的使用,培养学生的程序调试能力。如在软件集成开发环境(Intergrated Development Environment,IDE)中常用的“断点调试”功能,其是调试器调试时最常用的技术之一,基本原理是在程序中某一位置设置一个中断点,当CPU执行到断点位置时,便停止被调试的程序,调试者可以实时查看变量的值并跟踪其变化过程,对于理解程序内部工作原理和发现程序中存在的问题非常有帮助[3]。Python 常用IDE PyCharm的断点调试界面如图 2所示。

图2 PyCharm 断点调试界面

图3 程序日志示例

程序调试的教学可安排在基础语法教学完成之后,在学生掌握已掌握基本的程序设计能力时,通过几个简单的示例,教会学生如何通过设置断点来排查程序中发生的错误、查看中间变量的值等功能,使学生掌握断点调试技术。

程序日志的使用:程序日志是程序在运行过程中对某些操作的记录,可以用于跟踪用户行为、监控系统资源、运行异常记录等,如图 3所示,记录了日志产生的时间、异常等级及提示信息。规范和充分的日志是良好代码质量的必要因素,也是软件故障诊断的重要手段[4]。在软件企业实际开发中,进行程序日志的记录是非常普遍的,良好的程序日志规则可以大大减轻软件维护的压力。而在软件工程专业学生培养的过程中往往没有课程涉及程序日志的应用,主要原因是现有教师来自软件企业,不了解程序日志的作用;或任课教师认为该内容超过了课程的教学范围,忽视了程序日志在软件开发中的作用。

程序日志作为一种文件输出应用,可以嵌入到I/O编程部分介绍,让学生了解日志的作用,教会学生如何在程序中设置日志规则、添加日志管理代码,实现日志输出功能;同时介绍如何读取日志文件及检索关键字来排查软件运行中出现的异常。

配置文件的使用:配置文件是一种文档,专门用于存储程序运行中所需的配置或初始设置,常见的配置文件扩展名有“.ini”“.conf”和“.xml”等。软件开发过程中通常将相关配置参数写入配置文件中,如将数据库的地址、端口、用户名、密码等写入一个配置文件中,而不是写死在程序里。如图 4所示为.ini格式配置文件示例,其内容为连接MySQL数据库的相关参数,该配置文件内容主要由两部分组成,其中由方括号括起来的部分称为节(section),其余部分称为参数,参数由键值对组成,等号前为键,等号后为值,配置文件中通常包含多个类似的配置信息。每当需要连接数据库时,读取配置文件即可,与写死在程序中相比,这样做的优势是当需要修改数据库的连接参数时,只需修改配置文件,无须改动代码,方便维护。

图4 ini格式配置文件示例

在平常教学过程中,往往缺乏此类实践,在讲解数据库编程时教师通常直接将数据库连接参数写到代码中,此种方式虽然演示起来方便,但容易在学生面前产生错误示范,使学生误以为在实际工程应用中也采用此种方式连接数据库。而配置文件的读取并不复杂,可以在数据库编程教学中引入配置的文件来使用,通过读取配置文件获取连接参数来连接数据库,让学生了解实际工程应用方法,养成学生的安全编程意识。

版本控制工具的使用:版本控制工具是软件开发中用于存储、追踪文件和文件修改历史的软件,是软件开发过程中必不可少的工具软件。常用的版本控制工具有Git和SVN,两者之间的区别是Git是分布式版本控制系统,SVN是集中式版本控制系统,相比较而言,分布式版本控制系统在安全方面优于集中式版本控制系统,已成为版本控制的优选方案[5],其中Git尤为受到开发团队的欢迎,结合Github(软件开发项目的代码托管平台)可以实现远程管理项目代码,并实现团队协同开发。软件企业在实际开发中也离不开版本控制工具,不仅用于软件版本管理,更多的是用于团队协作开发。但高校在软件工程专业学生的培养过程中,一般不会开设相关课程,导致许多学生不了解版本控制工具作用,更谈不上如何使用,在走上工作岗位后不仅需要熟悉工作内容,还要学习使用版本控制工具,给初入工作岗位的学生带来些许压力。

为帮助学生掌握版本工具的使用,丰富学生的专业背景知识,提升软件工程专业学生的专业素养,可在本课程的最后利用2~4课时的实验学时来介绍版本控制工具Git及代码托管平台Github的使用,使学生掌握如何使用版本控制工具在本地创建代码仓库,进行基本的版本管理操作,如提交、推送、回滚等,以及使用代码托管平台将本地代码上传到远程仓库或将远程仓库拉取到本地。

3 结语

应用型本科教育是以本科教育为主,面向区域经济社会,以学科为依托,以应用型专业教育为基础,以社会人才需求为导向,培养高层次应用型人才[6]。为培养学生的工程实践能力与专业素养,满足社会发展的需要,应用型本科高校在软件工程专业学生的培养过程中应注重学生的工程实践能力与专业素养的结合。作为软件工程专业的核心课程,《Python程序设计》课程教学内容不能受限于教材,要结合企业实际需求,与时俱进地更新、拓展教学内容,增加工程实践案例,提升软件工程专业学生的工程实践能力及专业素养,以实现学生的技能储备与社会对软件人才技能需求的无缝对接,为社会输出更多的高素质软件技术人才。

猜你喜欢
配置文件日志程序
一名老党员的工作日志
扶贫日志
互不干涉混用Chromium Edge
试论我国未决羁押程序的立法完善
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
“程序猿”的生活什么样
为View桌面准备父虚拟机
游学日志
英国与欧盟正式启动“离婚”程序程序