论文部分内容阅读
“数据结构”是信息科学专业的一门核心课程。针对学习者在学习该课程时遇到的困难,我们开发了一种可以将算法执行过程可视化的学习软件,以帮助学习者加深对算法的理解。通过文献调研发现,现有此类软件存在着“软件以‘教’为中心设计”、“不能很好地满足学习者个性化学习需求”以及“缺乏以用户为中心的人机交互理论指导”等方面的不足。
我们认为在教学软件开发中除了要遵循常规软件开发的规范之外,还应该遵循自身规律,因为教学软件的用户不是普通意义上的用户,教学软件不仅要实现帮助学习者掌握知识,还要促进提高学习者的认知技能等目标。在开发教学软件中,不仅要以常规软件开发理论指导,更重要的是思考如何运用教与学的理论知识来指导,这也是开发教学软件与一般商业软件关键不同之处。
本软件以建构主义学习理论为指导进行设计。前期做了学习者原型调查,在对学习者特征进行分析时,我们发现在学习《数据结构》课程中,学习者存在“为不同学习者提供不同学习内容”、“让学习者自主学习”、“动态演示算法”、“提供相关资源”、“及时反馈学习情况”、“提高主体性”等方面的需求。我们以建构主义学习理论为指导为该软件设计了数据建模的功能;在演示算法中为学习者提供了三种演示算法的方式和四个视图;为学习者相关习资源,例如记事本、电子邮件、背景音乐和网站连接等功能。
本软件还以人机交互理论为指导进行设计。在对学习者已有使用软件经验调查的基础上,我们使用学习者熟知的类似Windows资源管理器界面作为首界面;采用了与Windows系统下鼠标、键盘的相同功能操作最为数据建模方式;为学习者提供了多种形状、颜色和大小的结点供学习者选择进行建模。我们努力做到学习者提出的“界面要自然,让用户觉得舒服轻松,上手容易”、“与其他软件相似,使人‘望图生义’”的要求。
我们设计了数据结构的类图、系统结构图、数据流图、时序图,以MicrosoftVisual6.0++为开发环境,基于MFC(MicrosoftFoundationClass)的文档—视图框架,运用了双缓冲画图、多线程和动态切分窗口等关键技术,实现了数据建模、算法自动识别、二叉树的自动布局、自动运行演示算法、调试运行演示算法和单步运行算法等功能。