计算机科学与技术应用有一个贯穿始终的主线,那就是“分析问题=》建立数学模型=》建立计算模型(即算法设计和编程过程)=》通过电路到器件到CPU到接口形成硬件计算平台=》通过操作系统、编译以及网络软件的叠加形成支撑程序运行的计算平台=》最终高效、正确地运行得到结果”。这条主线可以用“计算机问题求解”概括。问题求解的能力以及在解题的过程中持续追求更优的能力,是计算机专业人才的基本能力。但是现行的计算机专业教学体系在完成上述能力培养上,无论教学内容还是教学方式方面,均有待优化和改革:
在教学内容的组织上,现行计算机科学与技术专业基础课程基本上都是按照知识的性质如数学类、算法类、器件类等进行横向切割封装而成,而课程体系则是根据知识的递进关系设计为层次式结构并以综合设计或毕业设计为最后环节。在教学方式上依然采用课堂讲授、课后练习、考试检查的传授型教学方式。这样的人才培养模式无形中造成了“知识传递重,能力培养轻”的现象:基础课程以知识点教学为主,同期开设的课程之间缺乏纵向关联,学生在低年级被迫学习一些“没有什么关联和用处”的基础知识,课后练习不能完成知识综合运用的任务,能力培养被建立在高年级阶段的综合设计或毕业设计环节,基础课程蜕变为知识传递环节,在能力培养过程中的作用被轻视。学生对基础课失去兴趣进而学习效果欠佳的现象较为普遍。我们从2000年起关注到这个现象并开展了针对性的研究,并尝试进行基础课程教学的改革。
以问题抽象为核心的计算机算法设计能力和以平台支撑为核心的计算机系统设计能力是问题求解的两个关键。其中,传统的离散数学和数据结构不仅是算法设计的基础,同时也是重要的工具,以问题为核心重新组织上述内容的教学能够十分有效地“学而致用”;而系统设计则十分注重纵向贯穿软硬件的综合系统观。因此,我们在改革中打破了原来课程的封装方式和层次递进,在基础课程中引入问题求解,在兼顾基础知识学习的同时,纵向优先,重构计算机专业基础课程体系,在算法设计和系统设计两个方面强化解题能力训练。
此外,计算机专业发展速度相当快速、涉及的领域非常之多,跨领域学习、终身学习成为专业人才的必备能力,善于提出问题并有效组织知识体系解决问题是创新能力的基本表现,学生的自我学习和知识的自我组织能力对学生今后发展更重要,对于刚从中学进入大学的同学尤其重要。
基于以上分析,我们设定了《计算机问题求解》课程体系的指导思想:课程内容上,围绕问题的纵向知识体系组织和充分的实践训练是课程重构的两个重点,教学环节上,学生的自我探索是“学”的主要手段,教师对学生的深度引导是“教”的主要方式。进一步,确定了《计算机问题求解》课程目标:
1) 意识:在计算机科学领域建立持续追求效率更高、质量更好算法和平台的创新意识。
2) 知识:掌握能支持在计算机科学领域进行探索创新所需的算法设计和系统设计专业基础知识,并形成系统观。
3) 能力:
● 具备自我探索学习与凝练问题的能力;
● 具备分析问题和采用一定策略进行算法设计的能力,并能对算法进行基本分析;
● 具备从程序员角度对计算机系统的全局认识和基本的计算机系统设计能力。
4) 技能:
● 能熟练使用C++语言及其开发环境实现可以正确运行的程序;
● 较为熟练地掌握和使用硬件描述语言进行软核计算机系统设计。
|