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: CS23B009 gets a and CS23B010 gets 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.