师范类学生软件工程课程教学探索
2017-11-22程适胡文娣武杰
程适+++胡文娣 +武杰
摘 要 针对软件工程课程在师范类学生教学过程中出现的现实问题,通过分析学生的学习情况,提出了课程的实践教学方案。陕西师范大学软件工程课程教学中的实践情况和取得的效果,对于其他院校的软件工程课程建设也有借鉴意义。
关键词 软件工程 师范类学习 课程实践 教学探索
中图分类号:G424 文献标识码:A DOI:10.16400/j.cnki.kjdkz.2017.10.052
A Study of Software Engineering Course for Pedagogic Students
CHENG Shi[1], HU Wendi[2], WU Jie[1]*
([1]School of Computer Science, Shaanxi Normal University, Xian , Shaanxi 710119;
[2] School of Liberal Arts, Nanjing University, Nanjing, Jiangsu 210023)
Abstract According to the practical problems of software engineering course for pedagogic students in School of Computer Science, Shaanxi Normal University, we have proposed a practical teaching plan based on analyses of students' learning situations. It could be benefited for the software engineering course at other Universities in the future.
Keywords Software engineering course; pedagogic study; course practice; teaching and learning study
0 引言
软件工程的课程教学和实践是作为计算机科学和软件工程专业学生大学课程中第一个较为系统化的软件开发方法和开发流程类课程,它对培养学生动手能力无疑起着非常重要的作用, 陕西师范大学计算机科学学院为计算机科学、软件工程、信息系统与管理等专业的本科学生开设了软件工程的专业必修或专业选修课。计算机专业师范类学生的就业范畴一般是中学教育,如何针对这类学生的特殊性,进行软件工程教学是师范类大学教师亟待解决的问题。
1 软件工程课程教学现状分析
1.1 软件工程课程特点
设立软件工程课程的目的,不仅仅是让学生掌握地软件开发的流程,熟悉软件开发的基本原则,还要让学生锻炼代码的编程能力和解决实际问题的能力,并且尽可能地了解当前最前沿的软件开发知识。[1,2]而这些知识的呈现形式,往往是最新的开发工具、程序开发语言。通过本课程的学习,既可以使学生掌握基础的软件开发方法,又锻炼了学生的动手能力,为学生下一步的研究生学习或者工作奠定基础,提高学生在计算机类开发工作中的竞争能力。
1.2 师范类学生的特点
师范类学生在入学时就确定了工作的方向,相对于其他专业的大学生,师范生的就业方向比较稳定,一般为中学教师或教育局工作人员。因此,虽然学生在大学校园中完成了软件开发的学习,但毕业后需要进行软件开发的工作场景非常少,学生容易降低对于软件工程类课程的兴趣。
仅靠传统教学手段,例如课堂幻灯片,或者教师的个人讲述来进行软件工程课程的教学,已无法满足软件工程类课程系统化、工程化的教学目标。如何调动学生的积极性,让学生多动手,多参与到课程中是师范类大学教师必须面对的问题。在授课过程中,通过视频或者漫画的形式,以生动活泼的案例为导引,图文互动,加深学生对软件开发过程的理解,增强软件开发的动手能力,更加主动地学习,是软件工程课程教师需要进行教学反思的方向。
1.3 师范类学生的兴趣
兴趣是学生学习的最大动力,在软件工程课程教学过程中,需要积极地调动学生的积极性,让学生多动手,多参与到课程的教学和实践中去。通过某一具体项目的引入课堂和现场实践,帮助学生克服对软件开发过程的烦躁心理,而软件开发一步一步应用于实际问题,既加深了学生对软件开发过程的理解,又增强了学生的兴趣,如此即可形成良好的正反馈,改善教学的效果。[3,4]
1.4 软件工程理论与编程实践结合
软件工程课程是一门实践性很强的学科,在学习的过程中,学生不但要掌握基本的软件开发原则,算法开发流程的适用范围,还要将软件开发应用到实际的问题中。在教学的过程中,可以通过多元化教学模式[5]和不同的教学方法,[6]根据学生的兴趣和认知模式,积极地引导学生进入学习。引导学生通过对实际问题的思考,根据问题的特征,选择适合的软件开发模式、程序语言算法,对问题进行求解。
为了将理论与实践相结合,提高学生编程能力和软件开发的能力,在课程中,需要使用更加直观更加前沿的教学手段。本课程就采用了机器车任务控制问题,作为软件工程课程项目实践的切入点。图1给出了可编程机器车辆进行任务控制的简单图示。图中机器车是一种简单的可编程控制进行群組协作的程序实践工具,具有单个机器控制简单,群组协作功能强大的特点。通过将学生划分为不同的小组,协同将控制算法应用于机器车的路径控制工作,并完成特定的任务。在课堂学习的过程中,既锻炼了学生的动手能力,又加深了学生对于软件开发过程的理解,具有一定的趣味性和直观性,有助于学生将兴趣转化为学习动力。endprint
2 软件工程课程教学模式构建
2.1 软件工程课程教学内容选择
软件工程课程涉及的知识点很多,如何合理选择内容,既要使学生了解软件工程的全貌,又要避免“蜻蜓点水”式的浅尝辄止是一个教学难点。为了应对这一难点,在课程的设计上,课程以软件工程的各个开发阶段、各种开发模型为重点,兼顾新的开发模式和开发方法,同时对软件开发的编程习惯和编程规则进行介绍。针对师范生的特点,本课程设置了“翻转课堂”等多个项目来锻炼学生的表达能力和讲授能力。通过学生的讲解,加深对课程的理解,教学相长,学生在教的过程中,既理解了课程的难点,又提高了教学的能力,达到课程和专业相结合的目的。
2.2 软件工程课程教材选择
软件工程的发展迅速,仅仅依靠一两本教材很难覆盖当前的发展前沿,而过度依靠新出版的文献又难以为学生打下坚实基础。同时,软件工程类课程的教材还需考虑中英文术语的不同。为此,课程采用了教材为主,同时加入新的期刊、杂志、网络资料,以几者并行的方式进行综合性教学。
2.3 网络资源的使用
随着互联网的发展,网络上存在大量的软件工程开发和软件工程实践的资源,这些资源包括教学视频,算法源代码,个人博客等。不同类型的网络资源,也需要在教学过程中结合使用。在网站Github.com 上就存在大量的开源软件项目。在学生的课余时间,可以通过手机、个人电脑等设备方便快捷地获取这些信息,学习代码的写作规范,甚至参与到开源软件的开发过程中。通过网络资料自主学习的形式,学生可以对某一编程软件或编程模式进行深入了解,适合学生的个性化发展。
3 结论
软件开发课程是计算机类、软件工程类学生了解软件开发流程,锻炼编程能力的主要课程。本课程的教学,为学生奠定了软件开发领域的知识基础,提高了学生的软件开发实践能力。通过为学生讲授软件工程课程,学生不仅可以掌握软件开发的基本流程,還能锻炼编程开发能力,对于学生接下来的研究或软件开发、软件测试类工作大有裨益。文章讨论了师范类学生软件工程课程中需要注意的问题,探讨了软件工程课程教学资源建设的注意事项,对于其他院校的软件工程课程建设也有借鉴意义。
*通讯作者:武杰
基金项目:陕西师范大学2017年度校级全英语教学示范课程项目“智能计算”课程
参考文献
[1] 陈长清,陈传波,肖来元,吴涛,裴小兵.项目驱动产学结合的软件工程系列课程构建探讨[J].计算机工程与科学,2011.33(A1):178-181.
[2] 吴川.面向独立学院的《软件工程》课程链建设研究[J].科技经济导刊,2016.32:148,153.
[3] 黄昭,徐涵.高校计算机专业全英文授课之问题与教学方法探析[J].计算机教育,2016(3):124-126.
[4] 于汪洋,黄昭,胡曦明.基于认知互换的计算机公共课教学模式探索[J].教育教学论坛,2006.13:144-145.
[5] 刘辉,冯莹莹,李林国,余世干,李淑敬.软件工程课程多元化教学模式研究[J].黑河学院学报,2017.3(3):81-82.
[6] 代才.行为导向法在文科师范生的PS教学中的使用[J].教育界,2015(33):59.endprint