计算机日益普及,网络课程也成为一种比较普遍的辅助性教学手段。但问题在于,许多开发出来的软件在实际的课堂教学中无法直接应用,只是照搬课本,价值不高;而一线教师、学科专家、教学设计专业人员等又缺乏软件开发的相关知识,也无法做出高水平的教学软件。
基于多年的实践研究,笔者提出一个解决这一问题的方法——将教学设计与软件工程结合起来,设计出两者结合起来进行教学软件开发的模式。本研究的意图是根据已有的模式以及这种设计思想,初步设计出进行教学软件开发的流程图。(见下图)

一、需求分析
本教学软件是助学型教学软件,软件服务的对象是网络学习者。因此,要做需求分析就是要针对网络学习者的需求来做。可以通过问卷调查、观察法、对教师进行访谈等方法来了解学生的需求,制作出一份详细的需求分析报告。
二、总体设计
该流程图分为“前期规划—需求分析—教学设计—软件设计—素材采集与脚本形成—素材整合、编码实现—试用—运行、维护”阶段。但并不是简单的线性过程,在“试用”阶段后,如果结果不满意,要返回“软件设计”这一步重新修改,即使是在“运行”以后,如果实际教学过程中有新的需求产生,或者有新的问题产生,也要返回去重新修改。在前期的设计阶段,也不能单单地各做各的,必须强调两方面技术人员的协作。
另外,在每一个阶段完成以后都要有完备的文档,为下一个阶段的工作打好坚实的基础。
(一)教学设计
这部分工作的主力人员是学科教学专家和教育技术专业人员,后期的工作是基于教学设计思想来进行的,要重视这部分的设计,要在反复调查、了解、论证的基础上进行设计,最终生成教学设计报告。
1.网络学习者特征分析
在网络环境下,学生是否学习某门课程、怎样学习、怎样安排时间等都是自己控制的,这样就使得学习者有较强的学习动机。但这并不意味着课程设计者可以忽略激发学生的学习动机,任由学生自行发展。远程教育机构需要在课程开发以及学习支持服务设计时考虑如何加强内部动机的激发,从而保证网络学习者的最大学习参与度。
网络环境下的学习对学生的计算机使用能力有一定的要求,针对网络学习困难的学生,可以在课程中设计一部分教授基本电脑操作常识的内容,使学生在遇到困难时可以进入帮助部分进行学习。另外,网络学习者还具有传统学习者的一些特征,包括某一年龄阶段的普遍特征和个别差异性,这就要求网络教学软件的设计者充分考虑到这些差异,设计多种学习方式,提供多种选择。
2.网络学习环境分析
网络是一个开放的、存在各种诱惑的环境,学生在其中很容易迷失自我,尤其是意志薄弱的学生。在这种条件下,仅仅依靠兴趣恐怕难以维持学习者的注意力,这就需要课程设计者做出一些进度表、日志表、成绩测试、排行榜等来保持学习者的学习动机。
3.教学目标和内容分析
在进行教学之前,要预先设计好本次教学要达到的教学目标。同样,在进行教学软件设计时,也要考虑教学软件要达到的目标。
(二)软件设计
1.软件界面设计
选择好开发工具后,针对所设计课程的特点,选择一个适合这门课程的主色调,在主色调的基础上请专业的美工人员设计出软件的页面大小、页面布局、导航条、按钮等素材文件。
2.软件功能设计
软件要实现一些什么样的功能,取决于教学目标,参照要实现的教学目标来设计一些基本的功能,比如:上传/下载文件、留言评论、选择任一章节开始学习、跟其他学习者比赛等。
(三)素材采集和脚本的形成
在教学设计完成后,就要采集相关的素材来为具体的设计做前期准备了,在后期的整个制作过程中素材采集的过程要一直进行。素材采集由学科专家来做。
有了基本的素材后,在进行软件制作之前要设计脚本卡片,脚本为两方面的设计人员提供了一个交流工具,把抽象的设计思想具体化了,为下一步的制作提供了直接的参考,提高了软件开发的效率。
(四)素材整合及编码实现功能
这一步就是程序设计人员的工作了,有了前面的铺垫,具体的实现工作就简单了,在这个阶段要用具体的软件平台来实现脚本的功能,并且对每一个功能进行调试,直到没有错误为止。
(五)试用
初步制作好的软件可以先找教师或学生试用,试用过程中让他们提出问题和建议,确认无误后,便可以发行并推广使用了。若存在问题,就要返回到“软件设计”甚至是“教学设计”阶段来做修改,再次进行这个过程。
(六)运行及维护
多次修改完善至满意后,就要对设计的软件进行打包、发行。打包是要考虑软件的运行平台,要选择最常用的操作系统作为打包后课件运行的平台,或者打包成几种运行平台的文件包,供用户选择。
交付以后并不代表软件开发已经结束,后期的维护工作也要跟上,保证教学软件运行良好,最大限度地发挥作用。
将教学设计与软件工程结合起来进行教学软件开发是教学软件开发未来的发展方向,为了开发出较好的教学软件,学科专家、教学设计人员、美工人员、程序设计员等要密切合作,相互交流。另外,在高校开设相关专业来培养集这几种能力于一身的教学软件设计专业人员,也不失为一种可行的办法。