EN.601.727 Machine Programming

Johns Hopkins University — Fall 2026

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

Oral Presentations

Format

Six lectures in the second half of the semester are dedicated to student-led presentations — see the course calendar for the dates. Each presentation topic includes three related research papers, with two students assigned to each paper — so each session has six presenters.

Each paper is led by two students, who split the discussion between them:

Sign-Up

The sign-up form is now open! Please complete it to indicate your topic preferences, your preferred role (Defender/Attacker), and your availability. Topic and role assignments will consider your preferences; in case of conflicts, earlier submissions will receive priority, so sign up early. We will announce the assignments after collecting everyone’s responses.

Sign-up Form: EN.601.727 Oral Presentation Sign-Up

Deadline: Tuesday, October 20, at 11:59 PM

Grading Policy

This oral presentation is graded on a completion basis, contributing 10% of your final course grade:

Important: If you do not submit the form by the deadline, you’ll be automatically assigned to a topic and presentation slot at the instructor’s discretion. Failure to present in your assigned slot without prior approval will result in a zero for the presentation component.

Attendance Notice

Attendance during the student-led sessions will be recorded strictly. If you must miss a session due to external circumstances, please notify the instructor or the TA in advance.

Paper Presentation Topics

The following eight topics explore different aspects of Machine Programming, with a focus on how AI can assist, automate, and advance programming and software development. These descriptions provide examples of research directions within each topic rather than an exhaustive list. The specific presentation papers will be assigned by the course staff.

Topic 1. LLM Training, Fine-Tuning, and Adaptation for Programming

How can we train and adapt AI models to better understand and generate code? This topic explores pre-training and fine-tuning on code-related data, reinforcement learning with coding feedback, and techniques such as LoRA, quantization, and knowledge distillation to improve the efficiency and effectiveness of models for programming tasks.

Topic 2. Multi-Agent Systems for Programming

How can multiple AI agents collaborate to accomplish complex programming tasks? This topic explores how coding agents divide responsibilities (e.g., planning, implementation, testing, and reviewing), how different organizational structures and communication topologies affect their performance, and how agents coordinate through communication protocols to develop software collaboratively.

Topic 3. Recursive Self-Improvement for Machine Programming

Can AI systems improve their own programming capabilities? This topic explores how AI agents can iteratively improve their coding workflows and harnesses, automatically search for better model or agent architectures, and conduct machine learning research by generating, executing, and evaluating code with limited human intervention.

Topic 4. AI Applications in Software Engineering

How can AI automate different stages of the software development lifecycle? This topic covers AI-powered coding and computer-use agents, program understanding and transformation (e.g., decompilation, transpilation, and reverse engineering), and automated software testing, static and dynamic analysis, debugging, and program repair.

Topic 5. AI Applications in Cybersecurity

How can AI assist with programming tasks in cybersecurity? This topic explores AI-driven vulnerability detection and code analysis, automated generation and testing of exploits, and security agents that write and execute scripts for penetration testing, red teaming, and vulnerability remediation.

Topic 6. AI Applications in Cyber-Physical Systems

How can AI help develop programs that control and interact with physical systems? This topic explores AI-assisted generation, adaptation, and testing of software for autonomous vehicles, robots, and humanoid systems, including generating robot control code, planning executable actions, and validating programs through simulation and real-world feedback.

Topic 7. AI Applications in Mathematics and Scientific Computing

How can AI assist with programming for mathematical reasoning and scientific discovery? This topic explores AI-assisted formalization and theorem proving, generation of programs for scientific modeling and simulation (e.g., Navier–Stokes equations), and automated optimization of numerical algorithms and high-performance computing code.

Topic 8. AI Applications in Human-Computer Interaction (HCI)

How can AI make programming more accessible and interactive for human users? This topic explores natural-language, visual, and graphical programming, AI-assisted development interfaces, human-AI collaborative coding, educational systems for STEM students, and systems that help users create, understand, and modify programs with minimal programming expertise.