Students can work in groups. But once groups are formed, collaboration is only allowed within the group. More specifically, inter-group collaboration is prohibited. Each group can have no more than 3 people.
- Mid-term report/presentation (40%): Formal survey of the technology with no less than 5 pages (format: 12-point font size on single-spaced 8.5" x 11” pages)
- Group with good mid-term report will be given an opportunity to do presentation in class. And in-class presentation will be awarded with bonus grades (extra 30%)
- Final report (20%): Formal survey of the technology and project design \& implementation, no less than 10 pages (the same format to mid-term report).
- Final program/demo (40%): Demo needs to allow other people to reproduce your results.
|Week 1-4||form group and choose topic|
|Week 8||mid-term report|
|Week 13||final report/demo|
Choose just one of the following topics.
- Page table and page-fault: intercept and analyze page-fault [link]
- Return-oriented programming (ROP): formulate a working ROP attack [link]
- Program data-dependency analysis
- SGX: understand SGX/CLS, write user-land code [link]
- AVX: understand AVX/SIMD, write data-parallel program that demonstrates perf speedup [link].
- Other ideas: TrustZone by ARM[link], MPX [link]
- Amazon AWS: set up AWS services in cloud and write a client program to interact cloud, [link]
Proposing a new topic
Alternatively, you can propose a project of your own interest. If you take this option, you have to:
- Write a full-fledged project proposal, of at least two full pages (in the same format to mid-term report, see above), detailed in its relavence to "computer architecture," and why it is a cutting-edge technology.
- Submit a hello-world program and demonstrate its working. This is to prevent you from choosing unrealistic topics, such as "studying quantum computer", that in near future there will be no real system allowing you to implement any working code on it.