<commit_before>---
layout: page
title: "Assignments"
excerpt: "Assignments"
tags: ["assignment"]
context: assign
# image:
#    feature: assignments.jpg
#    credit: Delft University of Technology
#    creditlink: http://repository.tudelft.nl/view/MMP/uuid:785a7433-f8b0-40b8-b420-b59d88fc2254
---

In the practical part of the course, you build an IDE for MiniJava, a small subset of Java.
We split this task into three milestones of weekly individual assignments:


1. MiniJava editor (syntax analysis, pretty-printing, code templates, syntax highlighting, outline view)
2. MiniJava analyser (name analysis, type analysis, constraint checking, code completion)
3. MiniJava compiler (Java bytecode generation)

All assignments are publicly available on GitHub:

* [Milestone 1: Syntax Analysis](ms1)
  1. [Testing Syntax Analysis](assignments/ms1/lab1.html) (due to ~~22 September~~ **24 September**)
  2. [Syntax Definition](assignments/ms1/lab2.html) (due to ~~29 September~~ **01 October**)
  3. [Syntactic Editor Services](assignments/ms1/lab3.html) (due to 08 October)
  4. [Simple Term Rewriting](assignments/ms1/lab4.html) (due to 15 October)
* [Milestone 2: Semantic Analysis](assignments/ms2)
  5. [Testing Name Analysis](assignments/ms2/lab5.html) (due to 22 October)
  6. [Name Analysis](assignments/ms2/lab6.html) (due to 12 November)
  7. [Testing Type Analysis](assignments/ms2/lab7.html) (due to 19 November)
  8. [Basic Type Analysis](assignments/ms2/lab8.html) (due to 26 November)
  9. [Inheritance and Subtyping](assignments/ms2/lab9.html) (due to 3 December)
* [Milestone 3: Code Generation](assignments/ms3)
  10. [Compiling Minimal Programs](assignments/ms3/lab10.html) (due to 10 December)
  11. [Compiling Expressions and Statements](assignments/ms3/lab11.html) (due to 17 December)
  12. [Compiling, Fields, Parameters, and Variables](assignments/ms3/lab12.html) (due to 7 January)

## Submitting Assignments

We rely on GitHub for assignment submissions.
We assign a private GitHub repository to each student and encourage students to commit and push their work frequently.
To submit your assignment, you need to file a pull request.
There are two kinds of submissions.

To check your progress on an assignment, you can submit a *prelimanary solution*.
We will provide limited feedback on preliminary solutions.
This feedback typically comes with a tentative grade and points out areas where your solution is incomplete or insufficient, without giving any details on the reasons.<commit_msg>Update index.md<commit_after>---
layout: page
title: "Assignments"
excerpt: "Assignments"
tags: ["assignment"]
context: assign
# image:
#    feature: assignments.jpg
#    credit: Delft University of Technology
#    creditlink: http://repository.tudelft.nl/view/MMP/uuid:785a7433-f8b0-40b8-b420-b59d88fc2254
---

In the practical part of the course, you build an IDE for MiniJava, a small subset of Java.
We split this task into three milestones of weekly individual assignments:


1. MiniJava editor (syntax analysis, pretty-printing, code templates, syntax highlighting, outline view)
2. MiniJava analyser (name analysis, type analysis, constraint checking, code completion)
3. MiniJava compiler (Java bytecode generation)

All assignments are publicly available on GitHub:

* [Milestone 1: Syntax Analysis](ms1)
  1. [Testing Syntax Analysis](ms1/lab1.html) (due to ~~22 September~~ **24 September**)
  2. [Syntax Definition](ms1/lab2.html) (due to ~~29 September~~ **01 October**)
  3. [Syntactic Editor Services](ms1/lab3.html) (due to 08 October)
  4. [Simple Term Rewriting](/ms1/lab4.html) (due to 15 October)
* [Milestone 2: Semantic Analysis](assignments/ms2)
  5. [Testing Name Analysis](assignments/ms2/lab5.html) (due to 22 October)
  6. [Name Analysis](assignments/ms2/lab6.html) (due to 12 November)
  7. [Testing Type Analysis](assignments/ms2/lab7.html) (due to 19 November)
  8. [Basic Type Analysis](assignments/ms2/lab8.html) (due to 26 November)
  9. [Inheritance and Subtyping](assignments/ms2/lab9.html) (due to 3 December)
* [Milestone 3: Code Generation](assignments/ms3)
  10. [Compiling Minimal Programs](assignments/ms3/lab10.html) (due to 10 December)
  11. [Compiling Expressions and Statements](assignments/ms3/lab11.html) (due to 17 December)
  12. [Compiling, Fields, Parameters, and Variables](assignments/ms3/lab12.html) (due to 7 January)

## Submitting Assignments

We rely on GitHub for assignment submissions.
We assign a private GitHub repository to each student and encourage students to commit and push their work frequently.
To submit your assignment, you need to file a pull request.
There are two kinds of submissions.

To check your progress on an assignment, you can submit a *prelimanary solution*.
We will provide limited feedback on preliminary solutions.
This feedback typically comes with a tentative grade and points out areas where your solution is incomplete or insufficient, without giving any details on the reasons.
{'fraction_non_alphanumeric': 0.09540990178392464, 'fraction_numerical': 0.04008819402685909, 'mean_word_length': 4.940476190476191, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2929912', 'n_tokens_mistral': 1572, 'n_tokens_neox': 1447, 'n_words': 582}