跳转到内容

PPCA 2024

来自ACM Class Wiki

简介

文件:2024 PPCA介绍.pptx

时间

  • 2024.06.24 ~ 2024.08.04,周一~周五,共六周
  • 机考日:上午 9:00~11:00 下午 13:00~18:00
  • 非机考日:上午 9:00~12:00 下午 14:00~17:00

地点

  • 东上院 508(1-2周,周一、三、五)
  • 东上院 408(1-2周,周二、四)
  • 东下院 402(3-6周)

分数构成

  • 分组项目四选一(第 1 周到第 4 周)
    • Pacman AI 吃豆人
    • Coq 形式化定理证明
    • Ray Tracer 光线追踪
    • DHT 分布式哈希表
    • Raft 分布式一致性协议
    • Network 网络协议
  • RISC-V CPU 模拟器(第 5 周、第 6 周)
  • Verilog 硬件描述语言 小作业(第 5 周、第 6 周)
  • 机考(第 2 周起,共 5 次)
  • 自选主题演讲 (bonus)
  • 签到扣分:有事请提前与当班助教请假,有签到,无故缺席将被扣除分数。

机考

  • 第 2 周周四、第 3 周起每周三下午 13:00~18:00,5 小时,可提前离场,共 5 次
  • A 卷为传统算法题,赛制同程序设计/数据结构课,工科前三题,ACM 班后三题
  • B 卷为创新综合应用题,包含一道题
  • A/B 二选一,最终评分只与每个人在两组试卷的答题者中的排名有关,二者取 min
  • 对于 B 卷,分数将根据答案的优劣评判(这意味着,任何格式正确的答案大都是有点分数的)
  • 如果某道题提交的答案得分达到了一条预先设定的 Ground Truth 的线(如果真的有的话),则此次机考这位参赛者可以不参加排名,成绩按满分计
  • 机考允许并鼓励:
    • 思考创新
    • 寻找规律
  • 机考严禁:
    • 联网查询资料(有要求除外)
    • 使用 OJ 上曾写过的代码
    • 使用预先准备的模版
    • 查看其它同学代码
    • 把自己代码给同学看
    • 帮助同学计算答案
    • 其它一切不诚实行为

自选主题演讲

  • 主动向助教报名,自定主题
  • 限制主题类主题演讲,每人 20 分钟左右
  • 要求
    • 如果是针对某个特定的领域,限制为综述
    • 如果是技术类的演讲,需要完整从背景到方法
  • 可以参考的主题有:
    • Some C++ features and design models: RAII, smart pointer, rvalue reference
    • Concurrency: mutex, lock, conditional variable, etc.
    • Common types of ISA
    • Other programming languages
  • PPCA 是一个非常好的交流想法的时机,希望有想法的同学积极报名演讲

Pacman AI

项目介绍:文件:PacMan(2024).pptx

项目仓库:https://github.com/ACMClassCourse-2023/PPCA-AIPacMan-2024

Coq (Formal Verification)

项目介绍:文件:Coq(2024).pdf

项目仓库:https://github.com/ACMClassCourse-2023/PPCA-Formal-Verification-2024

Ray Tracer

项目介绍:文件:Raytracing(2024).pptx

项目仓库:https://github.com/ACMClassCourse-2023/Raytracing-2024

Tasks

Task 0: Preparation

Just do some preparation work, including:

  • Read the README carefully, so that you know how to start your project
  • Correctly install Rust and Cargo
  • Figure out how to compile rust code, using rustc or cargo
  • Learning Rust language. Read a few chapters of the Rust Programming Language book
    • The first 6 chapters are enough for you to start your project
    • Chapter 10, 15, 16... the more, the better
    • Maybe at first you just know how to write a Hello World program or how to output the first image in the book, as long as you can complete the current task, it is enough

Task 1 (20 pts): Ray Tracing In One Weekend

Task 2 (20 pts): Ray Tracing: The Next Week

Task 3 (20 pts): Ray Tracing: The Rest of Your Life

  • Complete the third book
  • Save each output image in the output folder
  • Write a simple report about the PDF method in this book, at least 2 pages

Task 4 (20 pts): Advanced features

  • Multi-threading to accelerate your ray tracer (strongly recommended)
  • Make a benchmark for your ray tracer
  • Support for .obj file
    • An obj-loader is needed
    • Polygons are supported (optional)
  • CG-related techniques
    • Edge detection, normal mapping, interpolation, texture mapping, rasterization, etc.
    • Lens flare, depth of field, axis shift, exposure, etc.
    • Read interesting books(e.g. 《Unity Shader 入门精要》) and implement other fancy features
  • Exploring some Rust features
  • Some other interesting features. Please contact TAs if you have any ideas
  • You can refer to artworks in raytracer-2022

Task 5 (10 pts): Final scene

  • Complete a final scene, which should be more complex than the scenes in the books. If your work looks pretty or has aesthetic value, you will get extra points
  • Or, your final scene can just be a banner or a logo of our project `Ray Tracing`. Look at the current banner at the top of this page, you can make a better one, with your own ray tracer

Distributed Hash Table

项目介绍:文件:DHT(2024).pptx

项目仓库:https://github.com/ACMClassCourse-2023/DHT-2024

安排

Week 1: Learn GoLang and start working on Chord.

Week 2: Debug Chord and pass the test. (Debugging concurrent programs takes a lot of time!)

Week 3: Start working on Kademlia.

Week 4: Finish Kademlia. Write an application (Optional).

评分政策

  • Implement Chord Protocol (40%)
  • Implement Kademlia Protocol (40%)
  • Code Review & Report (20%)
  • Bonus: a DHT-based application (No more than 10%)

Raft

项目介绍:文件:Raft(2024).pptx

项目仓库:https://github.com/ACMClassCourse-2023/Raft-2024

Network

项目介绍:文件:Networking(2024).pptx

项目仓库:https://github.com/ACMClassCourse-2023/PPCA-Networking

助教

Name Email
潘屹 conlesspan@sjtu.edu.cn
王冠杰 irfnfnkemed@sjtu.edu.cn
张世奇 zsq259@sjtu.edu.cn
王鲲鹏 kunpengwang@sjtu.edu.cn
陈圣尧 sjtu15060022751@sjtu.edu.cn
徐子绎 xzy2022@sjtu.edu.cn
刘泳霖 sjtu18612959637@sjtu.edu.cn
陈轶凡 cyf13312236090@sjtu.edu.cn
吴硕 Wushuo123@sjtu.edu.cn
王宇澄 duang2000@sjtu.edu.cn
万彤 vaniusyyds@sjtu.edu.cn