程序设计实习(实验班)2024
时间地点:
每周三 3 - 4节(10:10 - 12:00),单周周五 7 - 8节(15:10 - 17:00),燕园三教303 燕园三教304
上机课:每周六15:30 - 17:30(从3月9日开始),地点在理科⼀号楼1235,请使用编号在41-187,190-213的机器
主讲教师: 姜少峰 (shaofeng.jiang at pku.edu.cn)
助教: 冯施源 (2200013060 at stu.pku.edu.cn),吴天意 (wuty at stu.pku.edu.cn)
课下答疑交流渠道: 上机课、微信群(群二维码见第一次课的slides的最后一页;若二维码过期可以联系助教进群、在群同学邀请进群)
课程简介
本课程为实验班课程,主要面向已经具备良好的编程基础的同学。本课从程序设计的科学性和工程性两大主线切入。
本课的风格偏向于以某种逻辑来“展示”一众前沿的主题,而不是传统的教授知识点为主。
- 程序设计的科学性:介绍若干蕴含重要思想的现代算法,包括大数据、随机性、高维性等主题,让学生尝试实现这些算法,体会这些算法背后的设计思路,开阔学生眼界。
- 程序设计的工程性:以C++为载体,介绍面向对象编程的原理、设计模式,并辅以实例来加深理解。
课程要求: 本课程需要对C++程序设计较为熟悉,具有很好的C++编程和解题能力。数学上,需要具备基本的概率论、单元函数微积分和基本的线性代数知识。
成果评估:
- 作业合计50分:含若干次小作业(约占40分)和一次大作业(约占10分)
- 期末上机考试占50分
学术道德: 鼓励讨论,但绝不允许抄袭等违反学术道德的行为。例如,几个同学可以通过讨论得出相似的解法,但是最后每个同学必须独立完成作业的写作/程序的编写。
课程材料
课堂讲义幻灯片将在课前更新。
日期 | 讲义 |
---|---|
2月21日 | 课程介绍 & 绪论;随机算法概述 |
2月23日 | 随机算法概述 (cont.) |
2月28日 | 随机算法概述 (cont.); 哈希方法 |
3月6日 | 哈希方法 (cont.) |
3月8日 | 距离度量 |
3月13日 | 距离度量 (cont.); 距离度量:欧氏空间 |
3月20日 | 距离度量:欧氏空间 (cont.) |
3月22日 | 距离度量:欧氏空间 (cont.) |
3月27日 | 距离度量:欧氏空间 (cont.); 面向对象:简介 |
4月3日 | 面向对象:类与对象 |
4月7日 (因放假调整) | 面向对象:类与对象 (cont.); 重载 |
4月10日 | 面向对象:继承 |
4月17日 | 面向对象:继承 (cont.); 面向对象:泛型 |
4月19日 | 面向对象:泛型; 面向对象:设计模式选讲 |
4月24日 | |
5月1日(放假) | --- |
5月3日(放假) | --- |
5月8日 | |
5月15日 | |
5月17日 | |
5月22日 | |
5月29日 | |
5月31日 | |
6月5日 | |
6月12日 | 期末考试(上机) |
作业
编程作业请提交到openjudge上,实验报告作业请提交电子版到https://course.pku.edu.cn(如只有纸质版本,请拍照/扫描提交图片并确保清晰度)。
大作业 (6月1日截止),辅助测试数据下载
作业一(实验报告) (3月13日截止)
作业二(编程) (3月13日截止)
作业三(编程) (3月15日截止)
作业四(编程) (3月15日截止)
作业五(编程) (3月15日截止)
作业六(编程) (3月20日截止)
作业七(编程) (3月27日截止)
作业八(编程) (3月29日截止)
作业九(编程) (4月3日截止)
作业十(编程) (4月10日截止)
作业十一(编程) (4月12日截止)
作业十二(编程) (4月12日截止)
作业十三(编程) (4月17日截止)
作业十四(编程) (4月17日截止)