程序设计实习(实验班)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日 | 降维:JL方法 |
5月1日(放假) | --- |
5月3日(放假) | --- |
5月8日 | 降维:JL方法 (cont.) |
5月15日 | 降维:PCA方法 |
5月17日 | 降维:PCA方法 (cont.) |
5月22日 | 压缩感知、LP |
5月29日 | 压缩感知、LP (cont.); Sparse Recovery与数据流 |
5月31日 | Sparse Recovery与数据流 (cont.) |
6月5日 | Sparse Recovery与数据流 (cont.); 期末安排与课程总结 |
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日截止)
作业十五(实验报告) (5月15日截止)
作业十六(编程) (5月29日截止)
作业十七(编程) (6月5日截止)
作业十八(实验报告) (6月12日截止)
作业十九(编程) (6月21日截止)