跳转到内容

Programming 2024

来自ACM Class Wiki

上机课安排

  • 时间:每周四晚上18:30
  • 地点:软件学院一楼 5-104 机房

分数构成

  • 期末考试(笔试+期末机考) 50%
  • 机考 10%
  • 小作业 10%
  • 大作业:Minesweeper 4%
  • 大作业:ICPC Ranking 6%
  • 大作业:Integer 6%
  • 大作业:Python 解释器 / Basic 解释器 7%
  • 大作业:Bookstore 7%

时间表

第 0 周

第 1 周

第 2 周

第 3 周

第 4 周

第 5 周

第 6 周

第 7 周

第 8 周

第 9 周

第 10 周

第 11 周

第 12 周

第 13 周

第 14 周

第 15 周

  • 期末机考模拟

机考

每 2~3 周开展一次机考,每次机考共 5 题。B 班做第 1~3 题,A班做第 3~5 题。每次机考后会发布对应的补题,一般要求 2 周内补完规定题目。

作业

小作业

每 2~3 周布置一次小作业,每次小作业持续约 2 周。

  • 第 2 次小作业(Oct-10-2024 20:30:00 ~ Oct-24-2024 18:30:00)
  • 第 3 次小作业 (Oct-24-2024 20:30:00 ~ Nov-07-2024 18:30:00)
  • 第 4 次小作业 (Nov-7-2024 20:30:00 ~ Nov-21-2024 18:30:00)
  • 第 5 次小作业 (Nov-21-2024 20:30:00 ~ Dec-21-2024 18:30:00)

大作业

大作业 1 :Minesweeper

  • 作业要求详见作业仓库
  • 作业时间:(Sep-26-2024 20:30:00 ~ Oct-13-2024 23:59:00)
分数构成
  • 基础任务 - 实现 server(参考 OJ 测评 得分给出)
    • A 班:60%
    • B 班:80%
  • 进阶任务 - 实现 client(根据 OJ 测评 得分给出)
    • A 班:35%
    • B 班:15%
  • Code Review - 20%

大作业 2 :ICPC Ranking

作业要求详见GitHub 作业页面

发布 slides: 文件:ICPC发布.pptx

截止时间
A 班
  • ICPC Management System (2024 A) 与分析报告:第 7 周周四(10 月 31 日)18:00
B 班
  • STL 练习:第 6 周周一(10 月 21 日)20:00
  • 前置作业:第 6 周周四(10 月 24 日)18:30
  • 中期检查:第 7 周周五(11 月 1 日)答疑时间 20:30 ~ 22:30
  • ICPC Management System (2024 B) 与分析报告:第 8 周周四(11 月 7 日)18:00
  • bonus:ICPC Management System (2024 A) 与分析报告:第 8 周周日(11 月 10 日)21:00
分数构成
A 班
B 班

大作业 3 :int2048

GitHub 作业页面

截止时间
A 班
  • 第 9 周周四(11 月 14 日)18:00
B 班
  • 第 10 周周四(11 月 21 日)18:00
分数构成

code review 中若码风较差将酌情扣分。

PS:Bonus 部分对代码性能也有要求,需要通过对应的测试数据点才能得到分数。且 Bonus 上限为 5%,超过不溢出。

B 班
  • 构造函数以及关系运算符: 10%
  • 无符号高精度加减法: 10%
  • 有符号高精度加减法: 10%
  • 高精度乘法: 10%
  • 高精度除法: 15%
  • 压位高精度加、减、乘法: 30%
  • 压位高精度除法: 15%
  • BONUS:压位快速高精度除法(分治乘法): 1%
  • BONUS:压位快速高精度除法(快速傅里叶变换): 3%
  • BONUS:压位快速高精度除法(二分加速试商/分治除法): 3%
A 班
  • 构造函数以及关系运算符 10%
  • 无符号高精度加减法 5%
  • 有符号高精度加减法 10%
  • 高精度乘法 10%
  • 高精度除法 10%
  • 压位高精度加、减、乘法 20%
  • 压位高精度除法(二分加速试商) 15%
  • 压位快速高精度乘法(快速傅立叶变换) 20%
  • BONUS:压位快速高精度除法(分治除法/牛顿迭代法) 5%

大作业 4A :Python 解释器

  • GitHub 作业页面
  • 使用 OOP 实现 Python Interpreter,锻炼 OOP 能力。若不按照要求会在 code review 时扣除一定分数。
  • 作业不低于按数据总的通过比例线性给分。助教会下发部分数据在作业仓库中,还有另一部分数据不会提供。 这意味着你需要自己手写测试数据给自己测试,如果你对自己造的数据是否满足要求有疑问,请及时向助教询问。
  • 首先完成 Prework 里面的前置任务。前置任务不计分,但要求必做。如果不完成前置任务则 Python 解释器将没有分数。
截止时间
  • 第 12 周周四(12 月 5 日)23:59

大作业 4B :Basic 解释器

  • GitHub 作业页面
  • 锻炼大家读文档的能力,以及对边界情况的考察。
  • 锻炼大家对派生类等的语言特性的运用和理解。
分数构成
  • 基础任务 80%
  • Code Review 20%
  • 增强程序鲁棒性 1% (bonus)
  • 测试点成功攻击他人程序 2% (bonus)
  • 四则运算计算器 3% (bonus)

得分上限为105%,超过不溢出。

截止时间
  • 攻击数据点提交时间:第 11 周周六(11 月 30 日)23:59
  • 第 12 周周四(12 月 5 日)23:59

大作业 5 : Bookstore

助教

Name Email
潘屹 conlesspan@sjtu.edu.cn
范晓泽 jasonfxz@sjtu.edu.cn
李林璋 blemiade_qinchuan@sjtu.edu.cn
罗锦彬 luojinbin@sjtu.edu.cn
王瑞天 skywong14@sjtu.edu.cn
周宸源 zhouchenyuan@sjtu.edu.cn
曾济 zeng_ji@sjtu.edu.cn
胡瑞岩 xiaoh105@sjtu.edu.cn
王思瀚 wangsihan_leo@sjtu.edu.cn
黄文宾 hartmann_psi@sjtu.edu.cn
张博涵 zhangbohan_wx@sjtu.edu.cn
章子涵 tiancaizhangdaxian@sjtu.edu.cn
邱雨航 qiuyuhang@sjtu.edu.cn
徐为先 hz.czar@sjtu.edu.cn
李方可 lifangke@sjtu.edu.cn