Advanced Natural Language Processing / Spring 2026


Advanced natural language processing is a graduate-level course on natural language processing aimed at students who are interested in doing cutting-edge research in the field. The course focuses on modern methods using neural networks, covering the fundamentals of generative models with a particular focus on the foundations of large language models. This includes the modeling, learning, and inference algorithms required for building cutting-edge NLP systems. The class culminates in an open-ended, creative research project on a cutting-edge topic in NLP.


Course Details

Instructor


Teaching Assistants

Ibrahim Aldarmaki

Logistics

  • Class times: TR 3:30pm - 4:50pm
  • Room: TEP 1403
  • Course identifier: LTI 11-711
  • Piazza: Piazza
  • Code: GitHub
  • Office hours:
    Location Day Time
    Weihua Du GHC 6711 Monday 10:30am - 11:30am
    Dareen Alharthi GHC 5417 Monday 11:00am - 12:00pm
    Ibrahim Aldarmaki TBD Monday 4:00pm - 5:00pm
    Daniel Chechelnitsky GHC 5701 Thursday 2:00pm - 3:00pm
    Andy Liu GHC 6601 Thursday 5:00pm - 6:00pm
    Zhen Wu GHC 6717 Friday 10:30am - 11:30am
    Sean Welleck GHC 6513 Friday 11:00am - 12:00pm
    Arnav Yayavaram GHC 5417 Friday 3:00pm - 4:00pm
    Siddharth Yayavaram GHC 5417 Friday 5:00pm - 6:00pm

Grading

  • Quizzes: 5 in-class quizzes.
  • Exam: 1 in-class exam.
  • Assignments: 4 assignments (the final one being the project).

Grade weights

Component Weight
Assignment 1 10%
Assignment 2 10%
Assignment 3 15%
Assignment 4 (Final Project) 25%
Exam 20%
Quizzes 15%
In-class Participation 5%

The final grades will be determined based on the weighted average of the components above. Cutoffs for final grades will be approximately 97+ A+, 93+ A, 90+ A-, 87+ B+, 83+ B, 80+ B-, etc., although we reserve some flexibility to change these thresholds slightly.

Course description

The course covers key algorithmic foundations and applications of advanced natural language processing. While there are no hard course pre-requisites, programming experience in Python and knowledge of probability and linear algebra are expected. In practice, prior experience with deep learning is highly recommended.

Acknowledgements. This semester's course is based on previous versions: Advanced NLP Fall 2025 (Sean Welleck), Advanced NLP Spring 2025 (Sean Welleck), Advanced NLP Fall 2024 (Graham Neubig).

Class format

Lectures: For each class there will be:
  • Reading: Most classes will have associated reading material. You are expected to read the main readings. Topics within the main readings that are covered in the lecture are eligible for quizzes and the exam. The Additional References provide additional content that is either related to the lecture or referenced in the lecture; you may find the additional references useful for gaining a better understanding of the lecture content.
  • Lecture and Interactive Activities: There will be a lecture about the class materials, including interactive elements such as discussions and polls.
  • Code/Data Walkthrough: Some classes will involve looking through code or data.
Quizzes: There will be 5 in-class quizzes throughout the semester. Quizzes take place in the first 20 minutes of the lecture. See the Quizzes section for details.

Exam: There will be 1 in-class exam. See the Exam section for details.

Questions and Discussion: Ideally in class or through Piazza so we can share information with the class, but coming to office hours is also encouraged.

Schedule

Quizzes

All quizzes are closed-book. All quizzes are in-person. They take place in the first 20 minutes of the lecture (15 minutes for the quiz, 5 minutes for handing out and collecting the quizzes). You are required to attend all quizzes.

Quizzes cover content from the preceding lectures, not including lectures that have already been covered by a quiz.

When computing your final average quiz grade, we will drop your lowest quiz grade score.

Exam

The exam is closed-book. It is in-person and occurs in the time and place of the lecture. You are required to attend the exam.

Assignments

The aim of the assignment and project is to build basic understanding and advanced implementation skills needed to build cutting-edge systems or do cutting-edge research using neural networks for NLP, culminating in a project that demonstrates these abilities.

Read all the instructions on this page carefully
You are responsible for reading these instructions and following them carefully. If you do not, you may be marked down as a result.

Assignment Policies

Working in Teams:

There are 4 assignments in the class. Assignments 1 and 2 must be done individually, while Assignments 3 and 4 must be done in teams of 2-3 (individual submissions will not be accepted for these assignments). If you are having trouble finding a group, the instructor and TAs will help you find one after the first initial survey.

Submission Information:

To submit your assignment you must submit via Canvas a zip file containing:

  • your code (A1, A2, A3.2, A4): This should be in a directory "code" in the top directory unless specified otherwise.
  • system outputs (A1, A2): The format will be specified separately for each assignment.
  • a report (A2, A3.1, A3.2, A4, optional for A1): This should be named "report.pdf" in the top directory. The report can be up to 7 pages for A2, 5 pages for A3.1 and A3.2, and 9 pages for A4. References are not included in the page count, and it is OK to submit appendices that include supplementary information such as hyperparameter settings or additional output examples, although there is no guarantee that the TAs will read them. Submissions that exceed the page count will be penalized one third grade for each page over (e.g., A to A- or A- to B+). You may also submit report.pdf for assignment 1 if you have any interesting information to convey to the TAs, for example, if you did anything interesting above and beyond the minimal requirements.
  • a link to a GitHub repository containing your code (A2, A3.2, A4): This should be a single line file "github.txt" in the top directory. Your GitHub repository must be viewable to the TAs in charge of the assignment by the submission deadline. If your repository is private, make it accessible to the TAs by the submission deadline. If your repository is not visible to the TAs, your assignment will not be considered complete, so if you are worried, please submit well in advance of the deadline so we can confirm the submission is visible. For group assignments (A3, A4), we use this repository to check contributions of all team members.

Late Day Policy:

In case there are unforeseen circumstances that don't let you turn in your assignment on time, 3 late days total for assignments 1, 2, 3.1, and 3.2 will be allowed. Note that other than these late days, we will not be making exceptions and extending deadlines except for documented health reasons, so please try to be frugal with your late days and use them only if necessary. Assignments that are late beyond the allowed late days will be graded down one third-grade per day late (e.g., A to A- for one day, and A to B+ for two days).

Plagiarism/Code Reuse Policy:

All assignments are expected to be conducted under the CMU policy for academic integrity. All rules here apply and violations will be subject to penalty including zero credit on the assignment, failing the course, or other disciplinary measures. In particular, in your implementation:

  • Code or pseudo-code provided by the TAs or instructor may be used freely without restriction.
  • For assignment 2, you may not just re-use an existing implementation written by someone else. The implementation should basically be your own.
  • Code written by other students in the class cannot be used (except, obviously, you can share code within your group for assignments 3 and 4).
  • If you are doing a similar project for a graded class at CMU (including independent studies or directed research), you must declare so on your report, and note which parts of the project are for 11-711, and which parts are for the other class. Consult with the Instructor during office hours or on Piazza if you are unsure.

Consulting w/ Instructors/TAs:

For assignments and projects, you are free to consult with the TAs and instructors during office hours, project hours, and through Piazza. If you don't have much experience with NLP, it will be helpful to consult with the instructors and TAs to learn about how to do the assignments and course project.

Because this is a project-based course, we assume that many of the students taking the course will be interested in turning their assignments or project into research papers. In this case, if you have received useful advice from the instructor or TAs that made the project significantly better, consider inviting them to be co-authors on the paper. Of course, you do not need to do so just because the paper is a result of the class, only if you feel that their advice or help made a contribution.

Details of Each Assignment

  1. Assignment 1: Build Your Own LLaMa (Individual assignment)
    • Released: Jan 27
    • Due: Feb 12
  2. Assignment 2: End-to-end NLP System Building (Individual assignment)
    • Released: Feb 12
    • Due: Feb 26
  3. Assignment 3: Project Proposal & State-of-the-art Reimplementation (Group assignment)
    • Assignment 3.1: Literature Review & Project Proposal
      • Released: Feb 26
      • Due: Mar 24
    • Assignment 3.2: Baseline Reproduction
      • Released: Feb 26
      • Due: Apr 2
  4. Assignment 4: Final Project (Group assignment)
    • Released: Feb 26
    • Due: Apr 27

Assignment details to be provided later. For an idea of the course project (Assignments 3.1, 3.2, 4), you can see the Fall 2025 version of the course.

Poster Presentation

Time/Location

  • Time: During class time (3:30pm - 4:50pm), April 21 and April 23
  • Location: TBD
We will announce which teams will be presenting on which days during the course. If you have a major, immovable conflict that will prevent your team from presenting on one day please contact us via piazza and we will try to make accommodations.

Goals and Grading

The intention of the poster is several-fold:
  • That you share your preliminary results with the TAs and instructor so we can give feedback to make any last adjustments to improve your final project report.
  • That you can see the other projects in the class to learn from them and get any ideas that may improve your final project report.
  • That you can practice explaining the work that you did.
Posters are graded pass/fail based on (a) whether you completed a poster; (b) whether you attended your poster session. No exceptions will be made; you must attend your poster session in order to receive a grade.

What information should be included in a poster? It should be mostly:
  • What is the problem you’re solving
  • What is your method for solving that problem
  • What are the results
There is not a set format for creating a poster, but if you would like some guidance, I would suggest creating three columns, where the left one describes “1”, the middle one describes “2”, and the right one describes “3”. The middle one can be a bit wider.

Poster Printing

If you are a member of SCS, we suggest that you use SCS poster printing. If you are not a member of SCS, you can send your PDF to the TAs no less than 5 days before your presentation, and we will print it for you.