软件开发相关课程项目式教学研究
2020-02-24杨克戎
摘 要:随着时代的不断进步,我们的脚步迈进了信息化的社会,高等院校在教学方面不断的进行发展与创新,不停的探索优化如何在进行信息学科的专业教学时,提升学生的专业知识、技能水平的教学方法,而与软件开发相关的教学里,人们逐渐把目光放到项目式教学方式之上。项目式教学方法是把实践教学作为基础的一种培训教学方式。笔者依据着最近两年的软件开发课堂教学的研究实践,提议了创新的教学方式,完成一个把学生作为中心,将一个完全的“项目”作为根基的项目式的方式,另外,下文将具体的的讲述项目式教学中详细的实践过程。
关键词:项目式教学;软件开发相关课程;实践式教学
对现在而言,开发实践式的教学方法对于计算机软件开发相关专业来说最根本的过程是课堂的设计过程和毕业设计的过程。但是,目前来说,对某一门课程知识的灵活运用是一般课堂设计过程需要重点显示出来的。本篇文章的主要目的就是探讨在学生完成专业课程的学习之后,有能够开发完整简单的并且具有代表性的软件的根基的能力,如何带领学生进行一次完整性的软件开发。应当综合性的灵活的使用多种专业课程的理论知识项目式课程的设计来替换以前的教学环节里仅仅只对某一课程的课程设计。
1 课程的教学流程
1.1 选题
老师应当引领着学生挑选一个比较容易理解的、简单的,与能力相匹配的课题来进行开发。所以在挑选课题时,老师对学生指出了几个选择的原则:
1.1.1 挑选符合自身能力的运用领域
从一般的运用领域进行挑选,例如管理性或者是商业性的区域。尽量的不要去系统软件非常复杂的或是实时软件质量的要求非常高等区域进行挑选,也对工业控制、嵌入式等专业的软件领域也不要太友好。
1.1.2 挑选比较容易理解的流程
我们的目的是去实践体会如何进行开发软件,并非去进行企业的管理,所以在挑选的时候就需要挑选一个比较容易理解的逻辑流程。
1.1.3 挑选学生已经理解并能灵活的运用的知识或者是进行开发工具比较适合的项目
1.1.4 挑选规模比较小的项目
在第一次开发软件的时候,如果选择一些规模比较大的项目有很大的几率会致使学生不能完成,打击学生的自信心,产生挫败的消极情绪。并且在于学生进行第一次的软件开发过程中,老师不需要把关注重点放到分工合作之上,更应该强调每一个孩子都要独立的完成一整个软件开发的过程,收获完整的实践体验。
1.1.5 所有的学生应该选择做一样的项目
学生都选择做一样的项目对教学方面和学生之间进行沟通交流、对比方面有更好的帮助。在给学生说明了需要遵循的规章后,指导的老师应该同学生共同进行探讨做怎样的项目的交流。依据上面所说的该遵循的规章第二条,学生最好是应该选择通俗易懂、简单易做的宿舍管理、成绩管理、学籍管理、家政管理、等等一些不带有特殊服务性质的系统中一部分当做第一次进行软件开发的项目。依据学生学习过的专业知识,一般可能会运用到一些图形化的软件开发的工具和一些数据库联系来进行创作开发的编码(学生常常会采用会C+SQL SERVER。)。挑选好合适的课题后,指导的老师需要传授给学生与软件开发的模型方面相关的专业理论知识,(对学习软件工程专业的学生可以构建知识框架,带领学生温习一遍所学过的知识)。另外,需要选择使用一些技术熟练、过程清楚的结构化的生命周期的办法,来进行第一次的软件开发实践。同事这也就是我们对业务逻辑的需求,简明清晰的业务逻辑与自顶向下方式相联系。软件的生命周期分成了系统的分析、系统的设计、编码和测试等许多个小阶段。即使项目课题的规模不大业务逻辑简明扼要,系统剖析分解的工作量也比较小,不过思虑到学生第一次进行软件开发,不知道该怎么开头,老师就可以在挑选好合适的课题之后,余下的一到两个小时内给学生说明书项目编写系统,主要是对系统进行剖析的一部分,和学生一同进行编写,一起探讨,一起编写系统剖析的初稿,简明扼要的对课题的目标、功能的分类与领域来描述和概括。最好能把一个本课题的功能模块图画出来。在完成课题后,给学生一周左右時间,依据着剖析的系统框架结构的初稿来进行思考,并对系统剖析的文档进行完善。(指导教师所给予的一周的时间是让学生利用正常上课的时间而非课余时间,下面的时间的概念也是如此)。可以提议学生在完成这项工作的时候,可以去翻阅参考浏览一些案例书籍来帮助自己解决工作过程中所遇到的困难。等到了指定的时间,对于学生的系统剖析的文档老师应该认真仔细的来阅读,并仔细的评价不同层次的作品,此外,还可以能让被评价的作品的学生就这个环节来谈一谈自己所得的体会,就从参考的数据、工作的方式、遇到的挫折和学到的知识等方面来讲。依据着评价的结果来进行最后的定稿,对学生做出要求,再给予学生两到三天的时间,让他们完成三到五页的文件。这个过程的要求大部分的同学都能够完成。这是建设在小规模的、简明扼要的业务逻辑上。使学生对软件设计初期的畏惧大大减少,避免学生产生沮丧的情绪。
1.2 系统设计
即使整个课题相比较而言非常简单,不需要再分成概要的设计与详细的设计,但是软件设计的工作量大,这也是整个软件开发的教学环节里的一个重难点的题。通过对实际进行考察,发现了对第一次进行软件开发的同学来说,单单只是给予学生参考资料或者是案例之后就让他们独自的开始做系统开发,这样学生做出来的作业是不太好的。很多的学生只会亦步亦趋,不能够进行举一反三,无法依据系统剖析过程来确定出规划需求,并创作设计出能够很好的符合标准的作品。最大的一个因素便是学生不能够完全的理解和灵活的掌握课堂中老师所传授的知识和消化吸收参考资料中的知识,按照原来的惯性思维模式单独的看待完整的问题并对它进行剖析。当然,在如今的教学模式中,也并没有进行这个方面的培训,基本上都是在课堂里进行概念性的传授。所以,笔者建议采取在教学课堂里由老师先来进行一部分的设计,然后细心、仔细的对设计的原理进行分析,再让学生开始模仿与设计的工作,这一个过程完成之后,安排一个相似的模板再让学生独自完成作业。这种模式要求老师准备好前期的工作。采取这种方式,最主要目的便是让学生对工作有更好的认识,让学生对设计有模仿的能力。通常的情况之下,设计过程可以分成两个部分,一个是数据库的设计,一个是界面功能的设计,下面具体的阐述了这两个方面:
1.2.1 数据库的设计方面
数据库的建立设计要确定出实体关系的模型(E-R模型),数据库的设计建设是在软件创作设计教学的过程,学生需要突破的一大重难点,由于数据库的设计建设它具有非常强的时间性的问题,它需要设计者具有大量的经验,但是通常学生又在经验这一方面又十分的欠缺,并且学生也无法短时间内获取所需要的大量的经验。并且从实验的效果发现,许多的学生都不能独立自主的完成合适的数据库创作设计。所以笔者建议(学生初次的软件开发)在进行数据库的创作设计过程中,指导老师的设计作品当做主导作品,而学生需要的是在老师完成数据库创作的文档的根基之上进行完善和补充一些细节的工作。老师要给学生进行讲授的时候结合数据库对于主从表如何拆、什么样的情况下拆,如何确定所需要的外键,如何将实际的数据进行存放与处理。之后,依据着ER图生成数据库具体的结构,并且将其整理完成为表格文档。指导的教师需要仔细的把数据库的设计进行讲授(尤其是设计课堂的第一次课)。余下的一小部分交给学生在课下完成,一周之后再对学生的完成状况进行检查。然后发现情况依然不是很好,可以独自的很好的完成作业的学生还是比较稀少,指导的老师在课堂之上把整个的数据库的设计完成,并详细的对学生在单独的对数据库结构进行设计中出现的问题进行剖析。整个数据库的创作时间通常为一周左右,学生虽然并没的完成作业,但是通过对老师的分析、指导和演示进行学习,学生也可以够获取到一些重要的经验,为进行下一次的软件开发的时候打下基础,能够很好的剖析参考的案例或者是资料库里面的设计。
1.2.2 模块界面的设计和功能的设计方面
模板界面的设计环节内容相比较而言还是比较直接的,学生完成任务的数量或者是质量方面,相对于数据库的设计环节来说要好很多。在完成数据库设计工作之后,指导的老师就可以在课堂上面来给学生讲解和示范模块的设计,模块设计过程要依照系统的分析功能。依照不同的分析功能来进行分类,把相应模块界面画下来并排列布置好相贴合的控件,并要具体的对每一个控件的功能进行阐,另外,还要对相应的数据进行处理阐明,还要对其进行页面的跳转阐明。需要重点关注的是,这一环节通常需要采用到后续编码环节所要采用的可视化的编程工具,对其进行模块界面的设计,便于编码环节的重用,但是要注意的是要对界面规范一界面的大小、使用什么样的字体合适、不同界面的风格又如何等要进行强调。优秀的学生相对来说都可以完成并能够达到设计的初级要求,不能完成的学生的最主要的时间就是在这个工作中并没有投入相对应的工作所需要的时间。指导老师可以开展一次主题班会,可以把学生组织起来,对学生取得阶段性成果的来作品进行探讨和评价。需要注意在整个模块界面及功能的创作过程中会遇到挫折和问题,许多的没有进行全方面思虑的细节问题也会在后续的编码过程或者是在测试阶段暴露出来,所以,设计出来的文档也要根据实际的设计开发状况进行不断的调整。并且这一过程也有利于帮助学生培养严密的思维。
1.3 编码和测试
编码的阶段问题最可能表现在下面的几个方面中:
1.3.1 进行编码过程要有规范性
虽然编码的规范性这点在课堂的学习过程中或多或少都有被提到,但是很大一部分的学生仍然是不能够编写有规范性的程序,很大一部分编写出条理不清、是非凌乱的程序。这时候就需要有老师的指导、提醒,或者是给学生进行示范使学生能够及时的将编写的程序修改正确。在编码后期,有的学生已经可以独立的依照标准来进行程序的编写。在这个阶段老师就能够把这些个学生作品来当做例子,给别的学生做参考,还可以让这些优秀的同学来帮助其他学生进行设计。
1.3.2 调试程序的错误
这个问题对于学生来说是自己不能够独自的解决的问题,尤为突出,學生常常手足无措。指导的老师可以把学生的设计作品里出现的相对而言比较典型的问题当成例子,然后与调试的程序理论原理相紧密相连,多次向学生示范讲授如何对程序来进行调试。想要处理好这个问题就要求学生不断的进行练习,花费大量的时间与精力来使自己编写的程序不断的进行完善,不能只靠老师的付出。要让学生之间进行相互的沟通和交流,让学生自己交换调试程序的知识与经验。另外,对那些学生经过探讨还是不能够处理解决的问题,指导老师就需要为学生提供所需要的帮助。
1.3.3 学生不稳定的情绪
如果遇到困难长时间不能够解决,学生就会感到挫折感,产生畏惧的情绪之后就很有放弃的可能性。这个时候,老师就要组织学生进行探讨,并且要积极的鼓励那些取得成功的学生,让别的学生来分享自己的心得体会,相互促进,学生与学生之间的相互感染要比老师给学生进行直接的鼓励的效果要好的多。编码和测试的过共需要四到六周的时间,许多的学生在进行编码与测试的过程中遇到困难和挫折并解决处理这些障碍后获得了成功,通过这样的经历大大的激发了学生的学习兴趣。在学生设计完成作品以后,老师还可以组织举办演讲或其他形式的活动,让学生门来向别人展览出自己设计的作品,并谈一谈软件设计的过程中自己所得的经验知识。让老师对学生的作品进行比较评价,提高学生的积极性,这样以后,就能够有效的提升学生的软件的开发的能力。
2 结语
项目式作为教学改革的过程,旨在使学生能够拥有一定的软件开发能力,成为将来社会和企业所需要的人才,可以在往后的工作里尽快进入自己的角色。
参考文献:
[1]曾明.职业学校计算机教学中学生学习兴趣的正确引导[J].职业,2011(20).
[2]李伟良,盛晨.任务驱动教学法在计算机教学中的探索与应用[J].电脑知识与技术,2011(14).
作者简介:杨克戎,男,工学硕士,讲师,研究方向:管理信息系统与决策分析。