APP下载

基于项目驱动的Linux程序设计实验教学设计

2024-09-15蒲强汪海鹰

电脑知识与技术 2024年24期

摘要:应用型普通本科Linux程序设计实验课程存在一些问题,如学生解决复杂性工程问题的能力不足,团队合作意识不强。为解决这些问题,本文结合新工科人才培养需求、工程教育专业认证理念及企业实际需求,设计了一种以项目为核心的Linux程序设计实验教学方法,并从实验时长、分组分工、实施过程和考核办法等方面详细阐述了该方法的实施方案。此外,本文还将分析该教学方法的实际教学效果,并探讨其持续改进方向。研究结果表明,项目驱动式实验教学能够有效激发学生的实验积极性,提升学生的编程能力、团队合作能力、问题分析和解决能力。

关键词:项目驱动式学习;Linux程序设计;实验教学设计;教学效果评价;工程教育认证

中图分类号:G642 文献标识码:A

文章编号:1009-3044(2024)24-0152-03

开放科学(资源服务)标识码(OSID)

0 引言

工程教育专业认证以“学生为中心、成果导向、持续改进”为核心理念[1]。在此理念指导下,应用型本科高校越来越重视学生的实践能力培养,将“重视实践教学、加强应用型人才培养”作为重要的教学模式。

作为计算机相关专业的核心课程,Linux程序设计具有很强的实践性。为满足新工科人才培养目标和企业实际需求,该课程的实验教学环节应着重培养学生的实践创新能力[2]。然而,传统的Linux程序设计实验教学通常采用以教师为中心的模式,强调学生对知识点的掌握,而忽视了对学生应用实践能力的培养[3]。这导致学生在实验过程中缺乏深入思考,往往被动地完成实验任务,其动手能力和综合解决问题的能力难以得到有效锻炼[2]。此外,传统的实验方法和完成过程与企业实际项目需求存在差距,而仅凭实验报告难以客观评价学生的实践能力[4]。因此,单纯基于知识点的实验操作很难满足工程教育专业认证的要求,也不利于应用型本科人才的培养[5]。

为深化实验教学改革,本文结合多年Linux程序设计实践教学经验,设计了一种项目驱动式的实验教学方法,旨在将课程基础知识和企业实际需求相结合[2],引导学生通过模拟企业项目开发流程完成实验内容,从而提升学生的实践动手能力和团队合作能力[6]。

1 项目驱动式实验教学

传统实验教学中,由于实验时长较短和学生能力不足等问题,有不少学生在实验课内完不成实验内容。学生在课后完成实验内容又可能存在抄袭行为,使得实验效果难以准确评价。同时,较短的实验时长使得教师难以应对每个学生的问题,难以了解其实验进度和实验效果。

项目驱动式教学通过将项目引入到教学过程中,由教师讲授知识点,学生被动操作,转变为教师引导示范,学生参与完成一个完整项目[7]。这种转变的好处在于学生在项目实施过程中容易把理论与实践结合起来,在锻炼动手能力、创新能力和团队合作能力的同时[6],也培养了解决问题的思维习惯[3]。

项目驱动式教学模式模拟企业项目分工合作方式,学生承担部分实验任务,通过组员相互促进、约束、监督、交流,按企业项目开发流程共同完成实验内容。这种模式能较好地解决传统实验存在的问题。同时,教师以小组为单位进行指导,更有精力和时间去了解和评价学生的实验效果。

2 实验教学设计

项目驱动式实验教学设计就是按照企业软件项目设计的思想和开发流程,对实验内容进行系统化、项目化的设计,包括项目整体设计、分工合作、项目编码、调试和测试等环节。设计的主要目的是用接近企业项目的实验来培养学生团队合作意识,锻炼学生解决复杂性工程问题的能力。本文将设计4个实验教学环节,包括实验时长、分组分工、项目实施过程和实验考核办法。

2.1 实验时长

足够的实验时长是项目化实验顺利开展的有效保障。Linux程序设计实验课程共设计了4个项目驱动式综合实验,包括“多进程实现shell功能”“多线程解决读者-写者问题”“进程间通信”“网络通信”。每个实验时长为4个连续学时(共16学时,其余12学时为普通验证型实验)。

2.2 分组分工

每个小组由5~8人构成,小组的分工角色包括项目负责人(1人,负责组织协调小组成员工作),功能模块设计与编码人员(4~7人,同时负责撰写任务相关的过程文档),小组答辩人员(2人,分别负责答辩和演示项目运行结果)。小组任务具体分工如下:

1)按逻辑划分功能模块,搭建项目框架;

2)接口设计:接口必须有规范的功能编号、名称、接口描述和简单逻辑说明,并指定使用的功能模块;

3)详细设计:小组成员按分工进行模块详细设计;

4)小组成员按分工编码、调试子模块,并撰写实验过程文档;

5)装配联调项目,进行小组答辩;

6)小组成员将负责的过程文档整合形成实验报告草稿。

2.3 实施过程

学生可以通过实施项目来锻炼分析和解决问题的能力[6],教师按学生分组进行答疑指导,辅助小组完成实验项目。项目实施过程设计如图1所示。

1)教师阐述实验目的,包括实验能锻炼的素质和技能(5分钟)

2)教师提供需求文档模板,学生分组讨论需求,草拟需求文档(20~30分钟)

3)教师简介项目开发环境,实验所需最关键的知识点和对应的伪代码,并引导学生进一步理解项目需求,在此基础上改进需求文档(10分钟)

4)小组按需求文档进行项目总体设计,并划分功能模块和设计接口(15分钟)

5)搭建项目框架,按逻辑组织模块并设计主菜单。小组分工进行模块详细设计、编码、调试,并记录过程文档(60分钟)

6)小组装配、联调测试整个项目运行情况(20分钟)

7)每组推选2人进行小组答辩,并随机抽选2人进行简要的个人答辩(8~12分钟)

8)小组在课上以在线文档方式,编辑形成实验报告草稿,学生课后完成各自的详细实验报告。

2.4 考核办法

实践环节主要考核学生的动手、综合运用知识、团队协作及创新等能力[3]。实验项目考核由实验平时表现、实验过程、实验答辩、实验报告组成。研究发现,这种考核方式有利于加强学生动手能力,引导学生进行团队合作,提高问题分析和解决的综合能力[3]。

Linux程序设计实验课程原有考核环节包括实验平时表现、实验过程和实验报告3个部分,分别占总成绩的20%、30%和50%,如表1所示。项目驱动式实验考核在原有实验考核基础上,增设了实验答辩环节,包括实验平时表现、实验过程、实验答辩和实验报告4个部分,分别占总成绩的10%、15%、50%和25%,如表2所示。

实验平时表现考核学生平时参与实验的表现和态度,由签到、小组分工、回答问题、帮助同学解决问题等构成。实验过程考核学生的实验质量,通过教师随堂检查学生实验完成情况、实验提问及学生简要回答问题等环节来衡量。实验报告重点考核学生实验报告的完成质量,包括报告规范、报告结构、内容逻辑、图表代码、实验重点、心得体会等评价指标。

实验答辩包括小组答辩和个人答辩,重点考核学生对课程相关知识的综合理解、分工合作、沟通表达能力、项目流程熟悉度等。为突出实验答辩的重要性,实验考核环节提高了学生实验答辩的权重(占50%),同时降低了实验报告、实验过程和实验平时表现的权重,分别由50%、30%、20%降到了25%、15%、10%。增设实验答辩环节有利于考核学生在实验中的实际动手能力、团队合作能力和答辩能力,也能减少学生实验报告可能出现的抄袭或编造实验内容、实验过程和实验结论等问题。

1)小组答辩及提问。实验答辩是评估学生实验项目完成质量的关键环节,将邀请Linux程序设计教研组教师共同参与。答辩问题主要由教师提出,其他小组也可针对感兴趣的项目点提问。要求每组选出2人进行答辩,其中1人负责答辩,1人配合答辩演示项目运行结果。每个小组成员在学期中至少参加一次小组答辩。

答辩时,学生首先要阐述项目设计的思想和完成过程,然后介绍项目内容、项目需求、总体设计、模块划分、组员分工合作情况、分工理由和项目的整体进展情况,分享组员合作开展实验的过程和体会,重点介绍小组实验中分析问题和解决问题的方法和过程。小组其余学生则简介自己承担的小组角色和任务、负责的功能模块、实验过程体会、项目主要贡献、实验文档内容和数据来源。

2)个人答辩及提问。为督促学生充分利用实验时间,主动完成实验操作,锻炼讨论交流、思维逻辑和解决问题的主动意识,在验证型实验课结束前半小时,教师随机抽取8~10名学生进行个人答辩,检查实验的完成效果。每个学生在学期中至少参加1次个人答辩。

学生在答辩时需要阐述实验目的和内容,遇见的问题和处理方法,以及实验心得体会。教师针对学生演示的实验结果进行提问,学生解释结果对应的关键代码或算法。教师通过学生的个人答辩,可以较准确地评价学生验证型实验的效果。

3 实验教学效果评价及持续改进

3.1 实验教学效果评价

为评估项目驱动式实验教学效果,本文采用多维度评价体系。评价指标体系包括实验平时表现、实验过程、项目答辩和实验报告4个维度。每个维度由4个评价分值构成,即目标分值(Oi)、维度权重(Wi)、平均分值(Ai)和教学效果(Ei)。设各维度的教学效果Ei = Ai/Oi,则实验总体教学效果E = ∑EiWi,i = 1, 2, 3, 4。各维度权重W = (0.10, 0.15, 0.50, 0.25)。

本文设置6个答辩考核项来重点评估项目答辩的效果,包括小组表现、个人任务难度、个人任务完成度、个人答辩、文档撰写、代码规范。每个考核项包括目标分值(DOi)、考核权重(DWi)、平均分值(DAi)和考核效果(DEi)。各项考核效果DEi = DAi/DOi,总体答辩效果DE = ∑DEi×DWi,i = 1, 2,..., 6。各考核项权重DW = (0.20, 0.10, 0.20, 0.30, 0.10, 0.10)。

统计三个学期Linux程序设计实验教学的考核数据,其实验成绩分布、实验教学效果、答辩效果分别如表3、表4和表5所示。

3.2 持续改进

为实现教学效果的持续改进,本项目驱动式实验教学方法对考核方式进行了改进,将过程考核分离出来,并设置了答辩环节,以小组合作完成项目并进行答辩的形式进行考核。答辩成绩占总成绩的50%。从3个学期的实验成绩分布来看(表3),大部分学生的成绩集中在良好和中等区间,与传统验证型实验相比,成绩分布较为相似。但项目驱动式实验能够促使学生更加重视团队合作,有利于培养学生的沟通表达能力、动手能力和团队合作能力。从实验教学效果评价结果来看(表4),实验报告环节效果相对较弱,实验答辩环节也存在进一步提升的空间。

1)表4中的实验报告的评价结果(0.79)显示为基本达标,说明学生的文档撰写能力仍需加强。原因是项目驱动式实验提高了对实验报告规范的要求,加强了对实验过程、小组合作、分析问题和解决问题的方法、数据表示、总结体会等内容的叙述要求。未来教学中,应注重培养学生的主动思考能力和文档撰写规范。

2)答辩环节的评价结果显示(表5),任务难度、文档撰写和代码规范3个答辩考核项为基本达标,说明学生在应对较难的任务时,解决问题的能力还有待提高。此外,学生的代码规范和文档撰写能力也需要加强。

4 结束语

为解决传统Linux程序设计实验教学中存在的问题,本文设计了一种项目驱动式的实验教学方法。研究结果表明,该方法能够有效激发学生的学习兴趣,提高学生的编程能力、团队合作能力以及问题分析和解决能力。未来,我们将继续完善该项目驱动式实验教学方法,并将其应用于Linux程序设计课程的教学实践中,以期进一步提高学生的实践能力和创新能力,更好地满足工程教育专业认证的要求。

参考文献:

[1] 蔡美玲,张锦,窦亚玲,等.工程教育理念下《程序设计基础》实验教学改革探索[J].计算机工程与科学,2018,40(S1):21-26.

[2] 薛开庆,张涛.面向新工科的Linux课程教学改革[J].软件导刊,2021,20(11):217-220.

[3] 李季辉,王常武,于家新.基于项目式教学的Linux应用技术教学改革[J].计算机教育,2015(1):99-101.

[4] 阮晓龙.Linux操作系统实验教学体系改革[J].中国现代教育装备,2015(5):93-97.

[5] 巫湘林,陈醒基,曾霖,等.基于工程教育专业认证的软件工程专业实验课程群改革探索与实践[J].电脑知识与技术,2023,19(27):157-159,170.

[6] 刘书红.Linux程序设计课程中项目教学法的应用与研究[J].通讯世界,2019,26(11):272-273.

[7] 郭毅,涂婧璐.《Linux系统应用》课程项目化教学改革实践[J].电脑编程技巧与维护,2013(16):140-141,145.

[8] 韩雨涝.工程教育认证背景下《Linux操作系统原理及实训》课程教学改革实践研究[J].电脑知识与技术,2023,19(8):128-130.

【通联编辑:王 力】