《算法竞赛与编程实践》课程通过对与竞赛相关的计算机算法的学习和研究,全面掌握和完善算法的知识体系,为独立设计算法和对算法进行复杂性分析奠定坚实的理论基础。同时,算法思维和编程能力可以在分析解决问题的过程中,培养学生抽象思维和缜密概括的能力,提高学生的软件开发能力。内容包括子集生成和组合问题、BFS、八数码问题和状态图搜索、A*算法、双向广搜、回溯与剪枝、迭代加深搜索、IDA*、二叉搜索树、Treap树、Splay树、线段树、树状树组、基础DP、区间DP、树形DP、数位DP、状态压缩DP、数论、组合数学、公平组合游戏、图论(有向图的连通性算法、最短路算法、最大流算法、最小费用最大流)、计算几何等内容。