Assignments
All assignment code lives in the assignments/ directory of the course
repository, fplaunchpad/cs3300_m26.
Clone it once and git pull for updates, rather than downloading files
individually:
$ git clone https://github.com/fplaunchpad/cs3300_m26
Each assignment ships a skeleton (RollNo_P<n>) to work in, sample inputs, and
the grammar of the language it consumes.
Before submitting, check your work with the self-test: selftest/ for
assignments 2 to 6, 01_macro_to_mini/selftest/ for assignment 1. It runs the
same program that marks you, over the tests you can see, and catches packaging
mistakes that would otherwise cost you marks.
Each assignment is tested against three sets of testcases: a public set you can read and run yourself, a private set behind an online checker that reports only how many passed, and a hidden set used for marking that you never see. You are marked on all three together, with every test counting equally, so passing the public and private sets is necessary and not sufficient. A submission that does not build scores zero.
For the tools you need (JDK, flex, bison, a C compiler, and spim for assignment
6), see Development
environment. The repository
includes a Dockerfile with all of them, which saves installing them yourself.
Submit through the course Moodle. Assignments are due at 11:59 PM on the due date.
| # | Topic | Release | Take-home due | Lab session | Points | Link |
|---|---|---|---|---|---|---|
| 1 | MacroJava to MiniJava | 27/07/2026 | 14/08/2026 | 18/08/2026 | 15 | macro_to_mini |
| 2 | Type Checker | 17/08/2026 | 07/09/2026 | 08/09/2026 | 15 | typechecker |
| 3 | MiniJava to miniIR | 07/09/2026 | 18/09/2026 | 22/09/2026 | 15 | mini_to_miniIR |
| 4 | miniIR to microIR | 21/09/2026 | 12/10/2026 | 13/10/2026 | 15 | miniIR_to_micro |
| 5 | microIR to miniRA | 12/10/2026 | 26/10/2026 | 27/10/2026 | 15 | micro_to_miniRA |
| 6 | miniRA to MIPS Assembly | 19/10/2026 | 02/11/2026 | 03/11/2026 | 15 | miniRA_to_mips |
How each assignment is graded
Each assignment carries 15 points: 9 for the take-home part and 6 for an extension implemented in the lab. Six assignments add up to 90 points and constitute 40% of the course grade.
The lab extension is written during the Q-slot lab session on DCF machines, which have no network access other than the locally hosted Moodle. You extend the code you submitted for the take-home part. The extension is not announced in advance.
- The lab task comes in three variants, assigned by the full numeric suffix
of your roll number modulo 3: 0 → a, 1 → b, 2 → c. Use all digits after the
final letter as a decimal number:
CS23B009gets a andCS23B010gets b. The task itself is announced at the start of the session. - For assignments 1 and 2, the lab handout gives a breakdown of the 6 marks by task component. A submission that does not compile receives zero.
- For assignments 3-6, the 6 lab marks are awarded as 6 if your extension works, 3 if your code compiles and you have made a real attempt at the change in the place the task names, and 0 if it does not compile or the named place is unchanged. A partial attempt counts, so get it compiling before the session ends even if the change is incomplete.
- If you cannot work from your own submission, you may ask for the reference implementation and extend that instead. Your total for that assignment is then capped at 50%.
- Attendance at the six in-lab evaluation sessions is mandatory. That is where the 6 lab marks are decided. If you miss one without an institute-approved reason, your take-home marks for that assignment are capped at 20%. With an institute-approved reason, you sit a makeup session at the end of the semester, taking a fresh extension on the assignment you missed; tell us as early as you can so it can be scheduled.
The take-home part is where you learn the material; the lab is where you show that you did. Do the take-home yourself: code you did not write will cost you the lab marks.
Assignment late penalties
We are flexible about submitting assignments late. The penalty applies to the 9 take-home marks only; the 6 lab marks are unaffected, since those are decided in the lab session:
- 1 day late: −25% of your take-home marks
- 2 days late: −50% of your take-home marks
- > 2 days late: the take-home part is not graded, so 0 out of 9
Submitting late does not excuse you from the lab session, and it does not stop you earning the 6 lab marks. Even if your take-home scores 0, attend: you extend the code you submitted, and the lab marks are still yours to earn.
Academic Integrity
You’re in college; you’re expected and encouraged to discuss your work with others. That said, everything you write for this course (code, written assignments, quizzes, exams and everything else) must be your own original work.
Properly attribute any work that you use. It is part of your job as a scholar to understand what counts as plagiarism, and make sure you avoid it.
No LLM use is permitted in this course, for any part of any assignment or evaluation. Using one is treated as plagiarism.
Plagiarism is punished under the Institute’s graded punishments for unfair means (Academic Section Circular 2B, dated 04.02.2025). For plagiarism in graded assignments, a first instance carries zero marks for the copied assignment, one grade lower in the course, and 50 hours of library work; if the grade obtained is E, U or P, that grade is retained. Repeated plagiarism carries a U grade in the course. In either case the student is not eligible to seek a supplementary exam or contact course in this subject.
Submissions are checked with MOSS.