EN.601.727 Machine Programming

Johns Hopkins University — Fall 2025

Instructor: Ziyang Li   |   Email: ziyang@cs.jhu.edu

Assignments

Overview: There are 3 programming assignments in this course ranging from traditional program synthesizer to coding LLMs and coding LLM Agents. The assignment skeleton code is hosted on Github. The links below will lead you to Github repositories. Please follow the instructions in readme.md for each of the assignment.

Policy: All assignments can be submitted through GradeScope anytime and multiple times before the deadline. Late submissions will be penalized 10% per day for up to 3 days. Collaboration is allowed, but you must cite your collaborators in the submission, and the submission must be your own work.

Extensions are allowed, but you must request an extension in advance via email to the instructor (ziyang@cs.jhu.edu) or the TA (fwang60@jh.edu). The maximum extension is 2 days, and late submission can still be used on extended deadlines. No extensions will be granted after the normal deadline.

API keys for LLM use: Each enrolled and auditing student is granted an API key for a large language model for the assignments. You can use the API key to access the language model in your assignments; the code that setup the client is provided in the assignment skeleton code.

Use of AI for programming assignment: In light of the theme of the course, we encourage you to use LLMs to help you with the coding assignments. However, you should not rely on LLMs to do the entire assignment for you. You should understand the code you write, and be able to explain it to others. In case an LLM is used, you should keep a record of the conversation with the LLM, and include it in the submission (usually under a file named `acknowledgements.md`). Please refer to the detailed instruction in each assignment.