在北京大学信息科学技术学院,本科生程序设计类基础课程体系包含了四门课,按修课顺序分别为:计算概论、程序设计实习、数据结构与算法、算法分析与设计。其中“程序设计实习”课程是一门连接“计算概论”和“数据结构与算法”、承上启下的课程。
课程的主要内容主要分为两个方面:(1) C++语言面向对象的程序设计,约占课时量的65%;(2) 基本算法思想,约占课时量的35%。
在第一部分中,讲授C++语言中和面向对象有关的概念和语法,如类和对象、运算符重载、继承和多态、类模板和算法模板、标准模板库等。目标是使得学生能够用C++语言,以面向对象的方法编写可维护性、可扩充性好的,较大规模的程序,初步领会面向对象程序设计方法的优势所在。
在第二部分中,讲授一些基本的算法思想(如枚举、递归、搜索、动态规划等),并进行大量的高强度的编程训练。训练的方式是在“在线程序评测平台”上提交程序,系统立即判定程序是否正确。此种形式能够有效促使学生全面细致地思考问题,提高编程的准确性,增强程序查错、调试的能力。通过训练,学生能够打下较为坚实的程序设计基础,为进一步学习其他计算机专业课程,或在其他专业领域运用计算机编程解决问题,创造良好的条件。
另外,本课程将ACM国际大学生程序设计竞赛中一些优秀的基础题引入课程教学,增加内容的趣味性,并提高学生学习的积极性和成就感。