“数据结构与算法”是问题求解的基础,主要体现经典的知识体系,培养学生问题分析、问题的数学模型建立和问题的逻辑模型建立能力,即分析问题的能力。对于经典数据结构和算法的实习,采用ACM/ICPC(ACM程序竞赛)在线提交评测系统(POJ,由北京大学李文新教授主持开发),并采用该系统进行算法能力测试实地测试。
经典课程内容与现代学科前沿有效结合的教学改革措施,培养了学生扎实的理论基础,帮助学生灵活地运用问题抽象、数据抽象、算法抽象来分析问题,应用数据结构和算法来设计和实现相应的程序,完成创新能力和实践能力的训练。
《数据结构与算法实习》网站
着眼于数据结构原理和应用的结合点,引导学生应用书本知识解决实际问题,提高学生的实际动手能力和团队合作能力。通过动手实验,使得课程的涉及的数据结构理论、存储技术、算法技术变得“鲜活”起来,起到深化理解和灵活掌握教学内容的目的。
设计了验证型、综合型、设计型的实验,力求提高学生的动手能力,做到理论和实践相结合。使学生在实验过程中进一步掌握典型数据结构的逻辑结构、存储结构及算法的程序实现,并训练学生分析问题的能力和编程解决问题的能力。
经过多年的建设,形成了精巧而具前瞻性的实习题库。
从企业合作项目和学科前沿研究中提炼大规模的设计和综合型实习题,满足线性表、字符串、二叉树/树、图、排序、索引、检索等数据结构综合训练需求;ACM/ICPC实习题涵盖图搜索、枚举、贪心、递归分治、动态规划等经典算法练习。
对培养学生分析和解决问题、创造性思考和团队合作的能力起到了很好的作用,为学生学习后续课程,将来进行科学研究、工作创业等,打下了厚实的基础。实习课程受到学生尤其是毕业生的广泛好评。
配合“数据结构与算法”进行问题求解能力训练,注重实践能力和工程能力的培养,使得学生遵从软件开发的规范性。以项目驱动,从软件工程的角度对学生系统地进行需求分析、数学建模、数据结构与算法设计、程序实现测试调试、文档编写训练。不仅要求进行简单的实现,更要求进行工程实现的设计。学生不仅仅能完成自己承担的开发任务,还能从系统级认识整个项目,积累重大项目的组合、合作协调经验,培养项目组织和管理能力,能够创造性地解决工程中遇到的问题。
通过典型案例教学,引导学生深入思考,激发创新思想火花,充分调动学生学习的主动性,实现教与学的互动。学生从案例中进行研究型学习,并在学习过程中主动运用所学知识来分析问题、解决问题,根据问题的需求来主动获取新知识,从而强化创新意识和创新能力,相应地提高理论联系实际能力、实践动手能力和科研能力。
“数据结构与算法实习”是针对计算机和智能专业学生开设的,强化计算机类学生的实践能力训练。对于电子微电子的学生,只需要掌握“数据结构与算法”理论课程所介绍的基本数据结构和算法,编写简单的小程序。
序号
课堂教学
学时
知识点内容摘要
1
简介
2小时
数据结构与算法实习简介、C/C++基本程序技巧、界面排错和测试、问题空间和典型的算法思路、基本数学建模
2
设计风格
程序的良好风格、程序设计和实现技巧
3
对象技术
面向对象技术、STL的基本概念和常用容器
4
界面技术
人机界面基本原则、排错的技巧
5
测试
测试、性能、可扩展性
6
项目管理
项目需求分析、项目开发计划、软件项目的实施(控制)
7
基本算法与枚举法
问题状态空间的建立、枚举的原则
教学案例:百钱百鸡、猴子分桃、宴会彩灯、质数方阵
8
回溯法
递归强化、搜索解空间、DFS和BFS搜索、分枝限定原理
教学案例:八皇后,0-1背包,火车进出栈
9
贪心法
最优子结构分解、最优解的正确性证明
教学案例:活动安排、可分割背包、区间覆盖
10
分治法
“分-治-合”的分治法原理、算法复杂性问题
教学案例:统计逆序对、导线与开关、二进制大整数乘法
11
动态规划
最优子结构和重复子问题、备忘录方法、各种算法的比较
教学案例:最优二叉搜索树、最长子序列、邮局问题
12
问题建模
问题建模专题讨论、数学模型
13
图的应用
图模型的建立、图的有效搜索、回溯高级技巧
14
数据结构综合应用
搜索引擎和数据库等应用系统中的线性表、字符串、图等基本数据结构;散列、索引和排序等数据结构技术的综合应用
15
习题讨论
4小时
对课程综合习题进行交流讨论,习题讲评
POJ实习
题目网址
参考解答
二叉树
图
8小时
排序
穷举法
综合实习
字符串练习
10小时
XML文档DOM树处理
20小时
背包问题
并查集与等价类
基于字典的综合应用
文本文件的搜索引擎
30小时
除上述题目外,鼓励优秀学生和本科生科研基金项目学生自己组队选题。以合作学习的“文献调研—开题—项目分析—项目设计—成果汇报—总结评价”模式为主线,以学生自主探究和开发活动为主体,以教师点拨为主导,以培养学生学习的兴趣和能力为中心。强化创新意识和创新能力,相应地提高理论联系实际能力、实践动手能力和科研能力,也提高了学生的学习和研究积极性,优化实践教学的效果。