基于专题和项目的程序设计实践课程教学模式

2019-08-24 08:58王涛春左开中赵传信胡桂银
计算机教育 2019年8期
关键词:程序设计能力课程

王涛春,左开中,赵传信,胡桂银

(安徽师范大学 计算机与信息学院,安徽 芜湖 241002)

0 引 言

程序设计实践课程是对前序课程“程序设计”实践能力的巩固,也为后续课程“软件工程”和“项目管理”等打下坚实的基础,是高校计算机类相关本科专业重要的实践课程。程序设计实践作为一门以培养学生实践能力为主的课程,如何做好实践的教与学是提高本课程教学质量的最重要环节。通过程序设计实践课程的学习,学生增强解决复杂问题的实践能力,提升就业竞争力,与社会需求接轨[1-3]。

1.2.2 调查方法 学期授课结束最后一次课上统一发放调查问卷,采用统一指导语,由学生在知情同意的情况下无记名填写,现场发放,现场收回。共发放问卷262份,收回有效问卷249份,有效回收率95.0%。其中,女240人,占96.4%;男9人,占3.6%。其中自愿选择护理专业的152人,占61.0%;非自愿选择护理专业的97人,占39.0%。以前在中小学或社会上学习过礼仪相关知识的34人,占13.7%;没有学习过礼仪相关知识的215人,占86.3%。采用Excel软件输入原始数据,应用SPSS 17.0进行统计学分析和统计描述。

鼓励儿童的亲社会行为,如谦让、帮助、分享、合作等。在一项研究中,心理学家让托儿所教师特别奖励那些亲社会行为,如分享玩具、合作等。两周之内,这种方法有效地减少了儿童之间的身体攻击和言语攻击;继续实施几周后,攻击性行为又进一步淡化了。对儿童攻击性行为的惩罚,实际上也是一种攻击行为,是一种“以牙还牙”,可能使儿童在受到别人攻击时采取报复手段。而这种无惩罚的方法的最大好处是,不给儿童提供“反攻击”或“报复”的原型。

目前,程序设计实践这类课程教学过程中,存在目标认识不清,教学方法和手段单一,内容繁杂,师生互动少,考核方案不合理等问题,具体表现如下。

从古至今,泛北部湾区域受到世界四大文明体系——印度文明、中国文明、伊斯兰文明、西方文明的深刻影响,部分塑造了现有的价值观、思维方式和风俗习惯,在当地文化与外来文化融合的过程中,该区域的文化也因此表现出多样性与复杂性。

5)学生完成项目案例展示。

(2)师生互动不足。教师通过实践作业的完成情况来了解学生的掌握情况,由于班级人数普遍较多,使得教师很难快速掌握学生的实际能力,也不能准确及时地根据学生实际情况对实践内容和作业进行调整。此外,实践过程中,教师对学生问题的解决普遍耗时较长,导致教师覆盖学生数不足,常常出现部分学生有问题而不能及时得到指导的情况。

如果面部皮肤出现上述症状,尤其要警惕“特效嫩肤、美白”化妆品使用后产生依赖。未来几年,我们看到的斑将不再是斑,而是乱用化妆品造成的微细血管损伤性色素沉淀;看到的过敏也不是过敏,而是乱用面膜造成的激素依赖性皮炎;看到的痘痘不叫痘痘,而是化妆品接触性皮炎、激素痘疹。虽然“激素脸”治疗起来非常棘手,顽固而易反复发作,但专家们还是有办法对付它。需要激素脸患者有一点心理准备,疗程肯定不短,其间需要积极配合医生进行长期的皮肤治疗。使用排毒修复疗法治疗激素脸,最终战胜“激素脸”也不是没有可能。

(4)考核方案不合理。现有考核方案主要包括实践作业完成情况、考勤和期末考核组成,其中实践作业完成情况占的比重最大。由于现有教师布置的实践作业主要以验证性为主,学生按照辅助材料即能基本完成作业,并不能真实反映学生的实践能力。同时,教师一般通过手工检查完成情况,所以不能准确及时给出学生该部分考核分,且效率低下。此外,学生项目开发和团队合作能力比验证性作业能够更加锻炼学生的实践能力,但现有的考核方案对这部分考察不足,实践效果有待进一步提高[4]。

于手术前、手术后1、3、7天早晨采集静脉血并进行离心处理,离心速度为3000r/min,持续10分钟。检测患者的血浆凝血酶时间(TT)、血小板(PLT)水平、凝血酶原时间(PT)、活化部分凝血酶时间(APTT)、D-二聚体(D-D)及血浆纤维蛋白原(FIB)等。

同时,分层教学可以与合作学习相结合,以异质组合作学习的方法解决分层教学带来的同质化问题。即教师在了解学生分层的基础上再将A、B、C类平均分入不同小组,实现以好带差。在这种理想状态下,学生不仅仅成为教学过程中学的主体,也在某种程度上为教学集体做出了贡献,发挥了教的能动性作用。而在实际操作中,教师要避免形式主义的小组合作,让每个小组成员都担负起自己的一份职责,从而保证组内合作的高效运转。

1 专题性实践和项目驱动概述

在实践性教学过程中,为了更好地培养学生的计算思维,解决复杂和实际问题的能力,教师以专题为单位对核心问题和思路进行讲解,并布置对应的实践题组,从而巩固同学的编程能力和计算思维。同时,为了培养学生的项目开发、文档撰写和团队协作的能力,将同学分成若干个组,以组为单位完成小项目的开发及相关文档的撰写。

“专题性实践和项目驱动”教学模式的具体内容包括:专题性教学主要以专题为中心组织教学内容,对每个专题涉及的知识点(语法、基本类库、预知知识和专题解题思想等)进行传授。通过“专题实例”的方式,学生能够进一步夯实语法知识和基本类库的使用以及掌握运用这类专题思想解决此类问题的方法,提高灵活运用知识解决实际问题的能力。同时,根据学生实际情况,通过教师安排和同学自愿相结合模式对全班同学进行分组,以项目开发为导向,指导学生合作模拟开发小型软件项目,学生通过项目开发,加深理解所学知识,促进自主学习和团队合作能力。

2 教学实施

3)项目实施。

2.1 专题性实践

在专题性教学环节,教师针对前期程序设计课程学生存在的薄弱点,按专题对学生进行教学,以现实问题引出知识点,对其基础语法知识、预知知识以及解决这类专题的思路,引导学生积极思考,探讨解决这类专题问题的方案,激发学生的学习兴趣,增加学生解决实际问题的能力,专题性内容见表1。

教师首先通过引入案例并分析以引导学生进行思考,再对相关知识点进行讲授,然后给出这类案例的解题思路,通过举一反三帮助学生通过相关知识点解决这类专题的案例。最后,教师给学生布置类似的实践题,学生通过自主完成这些题目不仅巩固了语法等基础知识,并且提高了运用所学知识解决问题的能力。

1.3 指标判定 用MMSE量表评估患者术后认知功能,包含语言能力、回忆力、计算力、注意力、记忆力、定向力等方面,正常:27-30分,轻度障碍:21-26分,中度障碍:10-20分,重度障碍:<10分。记录其麻醉前、手术开始时、术中0.5h、手术完成时,患者平均动脉压、心率,以及术后睁眼时间、拔管时间,并比较。

2.2 项目驱动

所有小组提交完整的文档和源代码后,教师组织各小组进行项目演示和答辩。在答辩过程中教师和同学可以对项目的开发方案和功能进行提问和质疑,项目组成员给予解答,答辩过程也是考核成绩的一部分。最后,教师根据学生完成和答辩情况给出完善建议和下一步工作。

2019汉诺威国际林业木工展览会(LIGNA 2019)新闻发布会12月4日在广州召开,LIGNA 2019汉诺威国际林业木工展览会将于明年5月27-31日在德国汉诺威举行。该展览会是世界第一大林业木工展览会,展会将涵盖三大主题:集成式木工——定制解决方案;智能表面处理技术;获取资源和技术。本届展会预计将迎来1 500多家企业在13万m2的展出面积上展示最新木工与木材加工设备、机械和工具产品。

1)学生分组。

(3)教学效果不理想。当前,程序设计实践课程一般以某种语言为基础,按知识点进行讲解,并布置以验证性为主的实践作业。这种教学不能很好地培养学生的计算思维以及解决现实问题的能力。团队合作能力对计算机相关专业同学至关重要,同时,同学之间的互助能够有效地促进学生的实践能力,而现有的教学过程对这些能力培养的效果有待提高。

经过一个学年的学习,学生之间的编程能力水平参差不齐,为了尽量让更多的学生投入到项目开发过程中,发挥同学之间的朋辈优势,教师根 据学生的实际能力和自愿原则,将班级学生分成多组[5],每组3~4名同学,并指定一名学生为组长。

2)建立项目簇。

通过前期课程和专题性实践的学习,学生已经具备一定的编程能力。在此基础上,教师发布项目簇,项目实践难度应该适中,难度太高打击学生积极性,难度太低不能提高学生的开发能力。项目规模合理,使得学生能够在规定的时间内合作完成项目开发,提高学生合理分解任务和合作能力。项目簇具体见表2。

表2 项目簇

现有的程序设计实践课程教学方式一般是教师讲授知识点,学生听讲并辅助验证性实践题,只能加深学生对前期的程序设计课程知识的掌握。“专题性实践和项目驱动”教学模式改变了这种教学模式,以专题性案例启发学生的计算思维和解决实际问题的能力,并以项目为驱动,进一步增强学生的自主学习和团队合作能力。程序设计实践课程共51个学时,其中18学时进行6个专题性讲授,33个学时进行小项目的实践与开发。

小组根据自身情况选择项目群中某个项目(小组之间不能选同一项目),小组成员讨论确定任务分工,并制定项目实施计划以及相应的进度计划表,如图1所示,项目实施共分5个阶段:需求分析阶段,学生撰写软件规格说明书和数据要求说明书;设计阶段,学生要完成概要设计、详细设计和数据库设计;编码阶段,小组成员根据详细设计完成编码工作;测试阶段,在完成编码工作的基础上,进行系统测试,包括模块测试和整体联调测试;验收答辩阶段,完成用户手册和答辩材料等文档撰写,并进行现场演示和答辩。项目实施过程分为课上时间和课下时间:课上,小组成员之间对相关问题进行分析、讨论和实施,教师在旁辅助、指导和答疑;课下,学生根据自身任务继续完成相关工作,查找资料并完成相应的文档写作。

4)项目提交。

项目小组在规定的时间内,提交各类文档,包括:软件规格说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、用户手册等。同时,提交完整的源代码。

基于上述存在的问题,程序设计实践课程分成两大部分:专题部分和项目实现部分。专题部分是为了更好地培养学生的计算思维,提高解决复杂问题的能力,教师以专题的形式进行讲授给出实例,并以此为基础给出专题类的作业,学生根据自身的能力选做部分题目。项目实现部分是将班级学生以3~4人为单位进行分组,每组合作完成项目,使得学生具有一定的合作开发能力。教师根据上述两部分,设计相应的考核方案,鼓励学生动手开发、撰写文档等工作。因此,本课程的目标使学生具有解决复杂问题的能力、合作开发的技能,从而达到较好的课程实践教学效果。

项目开发演练对提高学生的解决复杂问题能力和团队合作能力具有重要的意义,为培养理论扎实、实践能力强的优秀学生打下坚实的基础。项目演练过程分为4个阶段。

图1 项目实施过程

(1)课程目标不明确。程序设计实践课程是对前序程序设计课程(如C语言程序设计或Java程序设计等)知识的巩固和实践能力的提高,同时本课程也为后续的软件工程等课程打下坚实的基础。而很多任课教师没有很好地理解程序设计实践课程的教学目标,在教学过程中主要对原有程序设计课程内容重新讲授,没有突出学生解决复杂问题的能力。此外,由于实践过程中没有给学生设计团队完成小项目的环节,使得本课程不能很好地为后续的软件工程类课程打下一定的基础。

3个完成度较好的项目小组的软件项目成果如下。

(1)党建管理系统。该系统着力于为各单位党员信息的录入、管理等,提供一个完善、统一的解决方案。前端使用Bootstrap响应式框架来快速构建网页组件,使用Angular.js连接前端和服务器的数据交换,包括前端页面的渲染、表单数据的提交、对服务器返回JSON数据的解析;在服务器方面,使用PHP语言来开发服务端来响应web请求;数据库使用MySql。服务器采用的是阿里云Ubuntu服务器。

该系统功能模块主要包括用户管理、主题活动、三会一课、在线学习、在线测试、服务和统计模块。

(2)党建管理移动端。为了便于用户能够随时随地完成各类操作。使用PHP作为后台开发语言;前端使用代码库Bootstrap、Ionic、angular。使得外观美观,移动端使用基于HTML5创建类似于手机平台原生应用的一个开发框架。绑定了AngularJS和Sass;数据库采用MySQL。系统部署在阿里云Linux服务器上,使用PHPstorm进行开发,利于多人协作管理代码。

其中,t代表Term,指包含域信息的Term,coord(q,d)表示文档包含的检索词数,tf(t,d)表示TF值,idf(t)2表示IDF值,queryNorm(q):计算每个查询条目的方差和,此值并不影响排序,而仅仅使得不同的query之间的分数可以比较,t.getBoost()表示词汇权重,norm(t,d)为标准化因子。

(3)WIFI签到系统。为学生上课签到、晚上宿舍查寝、工作人员上班打卡等提供更精确、便捷、高效的解决方案。客户端使用微信小程序的方式来开发手机客户端,不需要针对ios和Android系统开发单独的app,开发成本更低,通用性更强;在人脸识别验证上,使用的是百度云人脸识别SDK进行开发封装;在管理员后台界面的实现上,使用了Bootstrap前端UI框架来构建前端页面和jquery库来保持前端和php服务器端的数据交互,服务器方面,使用PHP语言来开发服务端来响应web请求,数据库使用MySql。

3 考核方式

课程考核是程序设计实践课程的重要环节,也是提高学生的学习积极性和主动性的重要组成部分,除了考勤等常规考核以外,还包括专题性实践部分和项目开发部分。

1)专题性实践环节。

教师在完成专题性案例解析之后给出相应的实践题,由于学生的编程能力差异较大,实践题数目和难度相同的情况下,部分学生不能在规定的时间内完成作业,出现部分同学抄袭其他同学现象,且教师较难发现,严重挫伤了学生学习积极性。同时,教师也很难及时准确了解学生完成情况,基于此,教师布置实践作业包括必做部分和选做部分。通过开发的在线评分系统教师能够快速地掌握学生的完成情况,且系统具有一定的查重功能,能够杜绝一定的抄袭现象。此外,教师不仅仅看学生作业完成数量,更重要的是考核学生的态度、实践报告等完成情况。

2)项目开发部分环节。

为了提高学生的开发积极性和公平性,引入了公开答辩的考核方式来检验小组的完成情况。小组成员首先演示开发的系统功能,配合幻灯片展示设计方案和实现方法;然后教师和同学对完成的系统进行提问和质疑,项目组成员给予相应解答;最后教师、各小组组长给每个项目完成情况进行打分。教师对项目文档完成情况、公开答辩情况和人员任务分解情况给出每位同学的项目完成分,具体见表3。

表3 项目考核分值表

在小组得分确定的情况下,根据小组内各成员的工作量及态度,给出每位同学项目部分的分数。

3)课程综合考核。

采用专题性和项目驱动的教学模式根本目标是提升学生解决复杂问题的实践能力、团队协作和项目开发能力。对学生的每个阶段进行多次评价,最终给出综合考核成绩,其计算方式如下:平时考勤(10%)+专题性实践环节(35%)+项目开发环节(55%)。

4 结 语

程序设计实践教学过程中以培养学生解决复杂问题实践能力,团队协作和项目开发能力为目标。通过专题性案例讲解和项目驱动相结合的教学模式是对程序设计实践课程教学改革的一次有意义的尝试。这种教学模式和考核方案不仅提高了学生学习的积极性和主动性,也提升了学生的实践开发能力。教学和考核结果表明,多个小组团队很好地完成了项目所需功能,同时,通过课外查资料、自主学习等方式,部分小组能够运用当前流行的设计框架来开发项目,使得这些同学不仅很好地完成了项目,且自学能力和项目开发能力得到了较大地提高,为后续的项目类课程打下坚实的基础。

猜你喜欢
程序设计能力课程
消防安全四个能力
基于SolidWorks和VBA的电机阶梯轴建模程序设计
课程思政在专业基础课程中的实施
医学专业“Python程序设计”课程教学改革总结与思考
软件设计与开发实践课程探索与实践
基于OBE的软件测试课程教学改革探索
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
大兴学习之风 提升履职能力
你的换位思考能力如何