Skip to the content.

Syllabus

CS2520R: Advanced Topics in Programming Languages …

This term (Fall 2025): … Neurosymbolic Programming …

Class meeting time: TR 11:15 – 12:30

Class meeting room: SEC TBD

Course website: https://neurosymbolic.metareflection.club

Instructor: Nada Amin (namin@seas.harvard.edu)

Teaching Fellow: Matthew Retchin (mretchin@g.harvard.edu)

Course description

The topic for CS2520R Fall 2025 is Neurosymbolic Programming. Large language models have had remarkable performance among a variety of tasks, but when applied to the synthesis and evaluation of programs and proofs, these models often generalize poorly beyond their training distribution, violate syntactic or semantic constraints, and produce outputs that cannot be verified. In contrast, symbolic AI can easily reason about symbolic abstractions, but it has problems with brittleness and learning at scale. To bridge this gap, this course examines how hybrid systems combining both neural and symbolic components can learn to synthesize and evaluate formal logic proofs and programs, solve constraint satisfaction problems, and enforce syntactic and semantic guarantees ranging from strict invariants to probabilistic constraints.

We will study neurosymbolic systems with applications that include theorem proving, program synthesis, structured language generation, visuolinguistic reasoning, and planning and constraint satisfaction problem solving. These case studies will ground foundational questions: What inductive biases support symbolic generalization? How can discrete symbolic structures interface with continuous neural representations without sacrificing formal correctness? How can neurosymbolic models advance scientific and mathematical discovery?

As a student, you will present a neurosymbolic paper of your choice, implement a common warm‑up assignment, and complete a semester‑long final project taking an original idea from design through implementation. By the end of the term, you’ll have both the theoretical foundations and hands‑on experience needed to design and implement AI systems that formally reason with rigor and flexibility.

Teaching Philosophy

Learning by doing is fun and rewarding.

Course objectives

By the end of the course, the students will be able to use principled programming methods to design and implement systems. Students will practice studying programming language and system papers and artifacts critically, as well as developing their own.

Course policies and expectations

Students are expected to attend and participate in the class meetings twice a week. Students will have to complete some pre-defined assignments. In addition, they are expected to lead a presentation and discussion in meetings on the paper/system/approach of their choice. There will be one meeting per student. If we exhaust the presentation meetings, we will use class time to discuss thematics all together. Each presenting student is expected to post a thread on Ed a few days prior to the meeting, and each other student is expected to answer that thread before the meeting. Finally, students are expected to work early and often on their final projects. They can find times to discuss their topic with the course staff. Ideally but not necessarily, the topic of a student’s presentation will be related to their final project. We might also use class time to discuss projects. Projects can be done in group, with each individual making a substantial contributions. Group projects will be expected to be more substantial than solo projects. We expect students to share their work privately with the class or publically on the web.

Materials and Access

We seeded suggestions for papers and systems. Students are also welcome to suggest other papers/systems/approaches.

We use a shared private Github repository, where students can send pull requests with their work or a pointer to their publically available work.

We use Ed for discussions and Sciwheel for annotated readings.

Assignments and Grading Procedure

Feedback will be given on pre-defined assignments, lead meetings, on participation and on final project progress throughout the semester.

Template for paper discussion and presentation

Template for project

Academic Integrity

Please see the Honor Code.

Accommodations for students with disabilities

Students needing academic adjustments or accommodations because of a documented disability must present their Faculty Letter from the Accessible Education Office (AEO) and speak with the professor by the end of the second week of the term. Failure to do so may result in the Course Head’s inability to respond in a timely manner. All discussions will remain confidential, although Faculty are invited to contact AEO to discuss appropriate implementation.