1软件设计基础课程概况
(1)授课对象具有一定的编程基础,对计算思维有初步的认识。通过程序设计课程的学习,学生基本上对一门高级编程语言(如C语言)有了一定程度的掌握,对其中的部分算法有了一定深度的理解,从中也初步感悟到了计算思维的魅力。程序设计入门后,学生对开发更大规模的程序充满了渴望。(2)授课对象对程序与软件的区别仍然比较模糊。什么应该称为程序,什么应该称为软件,软件有哪些区别于程序的特征,在学生心中仍然是无法明确区别的两个概念,而软件设计与程序设计的本质区别也正是决定本课程会使学生计算思维能力更上一层楼的关键。(3)课程内容难度适中,适合作为非计算机专业本科学生软件设计能力培养的桥接性课程。本课程在程序设计语言学习的基础上,引入软件工程的概念并深化数据结构算法理解,还包括具体的开发实践,如数据库信息软件开发、网络抢答器软件开发等。一方面,学生的软件设计能力会得到强化和提高,另一方面,开拓了学生的视野,激发学生(尤其是拥有一定天赋的学生)更深一步学习的热情。(4)课程内容涵盖范围广,适合进行计算思维训练。从软件工程基本概念,到数据结构,再到数据库软件设计等内容,每个模块都提供了很多可用于计算思维培养的教学切入点,十分适合进行计算思维能力培养和教学改革实践。
2软件设计基础课程计算思维切入点归纳
在教学中进行计算思维培养的一种可行方法是将课程中适合进行计算思维培养的切入点进行总结归纳并进行有针对性的课程设计。其中,切入点的归纳是基础。计算思维注重用计算机科学的基本概念求解问题、设计系统、理解人类行为,而软件设计开发的过程恰好完整地体现了这一过程。计算思维中的可计算性、抽象和分解、约简、嵌入、转化、仿真、预防、冗余、启发式推理、预置和缓存等思想和方法在软件设计中不难找到对应的切入点。按照教材的章节内容划分,适合渗透计算思维教学的具体切入点总体上可分为三大部分,分别为软件工程导论部分、数据结构部分和软件分类开发部分,其中软件分类开发部分将数据库软件技术、网络软件技术、多媒体软件技术中的共同点进行整合,具体内容如表1所示。
3教学方法设计
虽然目前计算思维的严格定义并未达成共识,但有一点无疑是确定的,那就是计算思维的提出与计算机紧密相连,是计算机和计算机技术使计算思维显现出来并不断得到更深层次的认识。因此,如何启发学生将思维方法与计算机技术联系起来是计算思维培养的关键。同时根据周以真教授对计算思维六大特征[1](是概念化的思维,而不是程序化的思维;是本质的技能,而不是刻板的技能;是人的思维,而不是计算机的思维;是数学和工程思维的互补性和融合性思维;是一种思想,而不是一种人造产物;是任何人、任何地点都适用的思维)的论述可以看出,计算思维能力是可以脱离计算机而存在的。因此,在教学方法的设计上,在建构学生知识体系的过程中,我们既要重视如何将知识点的学习从现实世界的模型映射到计算机世界的模型的过程,又要引导学生如何使用在上述转化过程中学到的方法反过来指导现实世界中各种问题的思考。在教学方法层面,具体可采用的方法有以下几种。(1)学生为主体的项目驱动式教学方法。项目驱动式教学方法是一种基于建构主义理论基础上的教学方法。具体的过程包括在授课过程中引入一个实际问题(称为项目),然后将项目分解为若干个任务,学生通过对提出的任务进行分析和讨论,一步步完成各个任务,适当的时候教员进行有针对性的辅导,最终完成问题求解。这种教学方法能够保证在解决问题的前提下,学生最大程度地参与问题求解,使学生思维能力得到最大限度的锻炼,从而真正掌握一种思维能力,这也是课程组在授课过程中使用的用时最多的教学方法。(2)教员为主体的案例式教学方法。应用案例式教学法的主要目的是为学生提供一个参照范例,在学生没有任何开发经验的时候就盲目地为学生分配任务,效果并不好。在具体进行项目驱动的自主学习教学之前,应为学生提供一个可参照的案例,学生从中得到启发,并将其用于自主学习的过程中。在课程分类开发部分的每个分类我们各采用一次案例式教学。(3)其他普适的教学方法和手段。教学改革不是对以往教学模式的全盘否定,因此原有的一些较好的教学方法和手段仍需要继承和发扬。例如,在理论讲解过程中插入理论发展的历史故事,在软件开发过程中插入授课人员以往开发过程中的趣事等,都可以很大程度地激发学生的热情。再比如,较计算思维提法先出现的数学建模思想在具体教学中已取得了较成熟的经验,具体问题的求解归根结底也是现实问题转化为数学模型,再由计算机实现的过程,因此我们借鉴了很多数学建模思想融入课堂的教学方法、手段和技巧。
4典型教学案例
笔者以数据库软件设计模块为例,概要说明一个采用项目驱动式教学设计呈现的教学案例。
4.1项目的选择
数据库软件设计可以应用到数据库基本概念、数据库关系模型、数据结构、结构化查询语言SQL、具体应用开发平台等内容中。涵盖知识面广,任务划分简单明确,适合进行项目驱动式教学。我们在之前以“学生信息管理系统”为例进行了案例式教学,学生对数据库软件有了整体上的认识。为了使学生能够较快进入项目研究与开发,我们选择有一定相似度但又增加了一定难度的“课程表管理系统”为开发项目,学生按照3~5个人的规模被分为若干小组。
4.2任务划分
通过“学生信息管理系统”的学习,学生对要完成的任务有了一定的认识,对处理复杂问题的关注点分离方法[3]有了一定程度的掌握。因此可由学生单独完成“课程表管理系统”的任务划分,教员在各小组完成划分后进行讲评,具体划分结果见表2。
4.3任务攻关
学生首先在课下完成部分需要复习和强化的已有知识,然后将遇到的难以解决的问题带到课堂,师生采用讨论式授课模式进行分析和化解。在授课过程中,我们发现很多小组在数据表的结构设计上遇到了困难,主要是初学数据库对数据表之间的关系把握不够,经过讨论和教员启发,学生对关系数据库的理解更加深刻了。针对以往学生难以掌握的开发平台使用问题,教员提供充足的参考资料和视频教程,学生通过努力自学并实践,本次教学过程中未成为妨碍项目进度的因素。
4.4结果评价
通过课上和课下共一周左右的时间,学生按组提交项目开发结果并自评成绩。在课上每组指定1~2人进行汇报。教员和其他学生为该组评定成绩,讲评优缺点,各组学生再根据讲评结果有针对性地进行修正,最后教员给出总评成绩。
5结语
随着信息技术的爆炸式发展,计算思维能力的重要性不断凸显。在我军信息化建设不断深化的背景下,努力转变老旧的教育观念,采用先进的教学模式,设计合理的教学案例,使计算思维能力的培养更有效、更高效,是培育适应新时期军事斗争准备人才的必由之路。笔者以“软件设计基础”为研究对象,分析研究了计算思维培养的知识切入点和具体教学方法,并给出了具体职称论文发表的教学案例,教学结果表明学生的学习效果更好、理解更深入、学习兴趣更浓厚。总而言之,学生的计算思维能力得到了锻炼和提高。
作者:韩庆龙 李瑛 王凤芹 单位:海军航空工程学院 基础部