EN.601.727 Machine Programming

Johns Hopkins University — Fall 2026

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. A link to each assignment's repository will be posted here when that assignment is released. 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), the TA (qsun28@jh.edu), and the CA (yfeng97@jh.edu) — please include all three on the email. 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: LLM access for this course goes through Amazon Bedrock. Every enrolled and auditing student is expected to register with Bedrock, which comes with $200 in credits. We will hand out the first set of API keys ourselves; after those, each student obtains their own subsequent keys through their Bedrock account. The code that sets up the client is provided in the assignment skeleton code. Follow our AWS account setup tutorial (PDF · Markdown source) to register, earn credits, and generate your API key.

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.