# https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204

[CS224n Home](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/index.html)
  * [Coursework](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/index.html#coursework)
  * [Schedule](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/index.html#schedule)
  * [Office Hours](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/office_hours.html)
  * [Lecture Videos](https://canvas.stanford.edu/courses/111053/external_tools/3367)
  * [Project Reports](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project.html)
  * [Piazza](https://piazza.com/stanford/winter2020/cs224n)


[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/stanford-nlp-logo-new.jpg) ](http://nlp.stanford.edu/) [ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/stanfordlogo.jpg) ](http://stanford.edu/)
# CS224n: Natural Language Processing with Deep Learning
### Stanford / Winter 2020
Natural language processing (NLP) is a crucial part of artificial intelligence (AI), modeling how people share information. In recent years, deep learning approaches have obtained very high performance on many NLP tasks. In this course, students gain a thorough introduction to cutting-edge neural networks for NLP. 
## Logistics
  * **Lectures:** are on Tuesday/Thursday 4:30-5:50pm Pacific Time in [NVIDIA Auditorium](https://goo.gl/maps/hRjQYd6MqxB2).
  * **Lecture videos for enrolled students:** are posted on [Canvas](https://canvas.stanford.edu/) (requires login) shortly after each lecture ends. Unfortunately, it is not possible to make these videos viewable by non-enrolled students. 
  * **Publicly available lecture videos and versions of the course:** Complete videos from the 2019 edition are available (free!) on [the Stanford Online Hub](http://onlinehub.stanford.edu/cs224) and on [the CS224N YouTube channel](https://www.youtube.com/playlist?list=PLoROMvodv4rOhcuXMZkNm7j3fVwBBY42z). Anyone is welcome to enroll in [XCS224N: Natural Language Processing with Deep Learning](https://online.stanford.edu/courses/xcs224n-natural-language-processing-deep-learning), the Stanford Artificial Intelligence Professional Program version of this course, throughout the year (medium fee, community TAs and certificate). You can enroll in [CS224N via Stanford online](https://online.stanford.edu/courses/cs224n-natural-language-processing-deep-learning) in the (northern hemisphere) Autumn to do the course in the Winter (high cost, gives Stanford credit). The lecture slides and assignments are updated online each year as the course progresses. We are happy for anyone to use these resources, but we are happy to get acknowledgements.
  * **Office hours** : Information [here](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/office_hours.html).
  * **Contact** : Students should ask _all_ course-related questions in the [Piazza forum](https://piazza.com/stanford/winter2020/cs224n), where you will also find announcements. For external enquiries, emergencies, or personal matters that you don't wish to put in a private Piazza post, you can email us at _cs224n-win1920-staff@lists.stanford.edu_.
  * **Sitting in on lectures** : In general we are happy for guests to sit-in on lectures if they are a member of the Stanford community (registered student, staff, and/or faculty). If the class is too full and we're running out of space, we ask that you please allow registered students to attend. Due to high enrollment, we cannot grade the work of any students who are not officially enrolled in the class.
  * **Academic accommodations** : If you need an academic accommodation based on a disability, you should initiate the request with the [Office of Accessible Education (OAE)](https://oae.stanford.edu/accommodations/academic-accommodations). The OAE will evaluate the request, recommend accommodations, and prepare a letter for faculty. Students should contact the OAE as soon as possible and at any rate in advance of assignment deadlines, since timely notice is needed to coordinate accommodations.


### Instructors
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/manning.jpg) Chris Manning ](https://nlp.stanford.edu/~manning/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/MattLamm.jpg) Matthew Lamm  
Head TA ](http://stanford.edu/~mrc214/)
#### Course Coordinator
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/AmelieByun.jpg) Amelie Byun ](https://www.linkedin.com/in/aebyun/)
### Teaching Assistants
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/ArnaudAutef.jpg) Arnaud Autef ](https://www.linkedin.com/in/arnaud-autef-3aa5aa12b/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/EmmaChen.jpg) Emma Chen ](https://www.linkedin.com/in/emma-ying-chen-34126113b/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/PrernaDhareshwar.jpg) Prerna Dhareshwar ](https://www.linkedin.com/in/prernamd)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/JohnHewitt.jpg) John Hewitt ](https://nlp.stanford.edu/~johnhew/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/NicholasHirning.jpg) Nicholas Hirning ](https://www.linkedin.com/in/nphirning/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/HaoshenHong.jpg) Haoshen Hong ](https://www.linkedin.com/in/haoshen-hong-266652118/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/HangJiang.jpg) Hang Jiang ](https://www.linkedin.com/in/hjian42/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/AmitaKamath.jpg) Amita Kamath ](https://www.linkedin.com/in/amitakamath/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/KushKhosla.jpg) Kush Khosla ](https://www.linkedin.com/in/kushkhosla1/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/MinaLee.jpg) Mina Lee ](https://minalee.info)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/PeiyuLiao.jpg) Peiyu (Rachel) Liao ](https://www.linkedin.com/in/peiyu-liao/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/VeraLin.jpg) Vera Lin ](https://www.linkedin.com/in/veraxlin/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/CeciliaLiu.jpg) Cecilia Liu ](https://www.linkedin.com/in/kuangcong-liu-07809931/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/MandyLu.jpg) Mandy Lu ](https://www.linkedin.com/in/mandy-lu-9b41a861)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/AlexandreMatton.jpg) Alexandre Matton ](https://www.linkedin.com/in/alexandre-matton-73042b170/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/SarahNajmark.jpg) Sarah Najmark ](https://www.linkedin.com/in/sarah-najmark-706b80131/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/AmaurySabran.jpg) Amaury Sabran ](https://www.linkedin.com/in/amaury-sabran-99a9a1129)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/RohanSampath.jpg) Rohan Sampath ](https://www.linkedin.com/in/rohansampath/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/DilaraSoylu.jpg) Dilara Soylu ](https://www.linkedin.com/in/dilarasoylu)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/MiYu.jpg) Mi Yu ](https://www.linkedin.com/in/mi-yu-356421170/)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/HughZhang.jpg) Hugh Zhang ](https://www.linkedin.com/in/hughbzhang)
[ ![](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/images/XianzheZhang.jpg) Xianzhe Zhang ](https://www.linkedin.com/in/xianzhe-zhang)
## Content
### What is this course about?
Natural language processing (NLP) or computational linguistics is one of the most important technologies of the information age. Applications of NLP are everywhere because people communicate almost everything in language: web search, advertising, emails, customer service, language translation, virtual agents, medical reports, etc. In recent years, deep learning (or neural network) approaches have obtained very high performance across many different NLP tasks, using single end-to-end neural models that do not require traditional, task-specific feature engineering. In this course, students will gain a thorough introduction to cutting-edge research in Deep Learning for NLP. Through lectures, assignments and a final project, students will learn the necessary skills to design, implement, and understand their own neural network models. As piloted last year, CS224n will be taught using [**PyTorch**](https://pytorch.org) this year. 
### Previous offerings
This course was formed in 2017 as a merger of the earlier **[CS224n](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1162)** (Natural Language Processing) and **[CS224d](http://cs224d.stanford.edu/)** (Natural Language Processing with Deep Learning) courses. Below you can find archived websites and student project reports.   
|  **CS224n Websites** : [Winter 2019](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194) / [Winter 2018](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1184) / [Winter 2017](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1174) / [Autumn 2015](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1162) / [Autumn 2014](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1152) / [Autumn 2013](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1142) / [Autumn 2012](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1132) / [Autumn 2011](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1122) / [Winter 2011](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1114) / [Spring 2010](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1106) / [Spring 2009](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1096) / [Spring 2008](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1086) / [Spring 2007](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1076) / [Spring 2006](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1066) / [Spring 2005](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1056) / [Spring 2004](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1046) / [Spring 2003](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1036) / [Spring 2002](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1026) / [Spring 2000](https://web.stanford.edu/class/archive/cs/cs224n/manning.499)  |  
| --- |  
|  **CS224n Lecture Videos** : [Winter 2019](https://www.youtube.com/playlist?list=PLoROMvodv4rOhcuXMZkNm7j3fVwBBY42z) / [Winter 2017](https://www.youtube.com/playlist?list=PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6)  |  
|  **CS224n Reports** : [Winter 2019](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/project.html) / [Winter 2018](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1184/reports.html) / [Winter 2017](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1174/reports.html) / [Autumn 2015 and earlier](http://nlp.stanford.edu/courses/cs224n/)  |  
|  **CS224d Reports** : [Spring 2016](http://cs224d.stanford.edu/reports_2016.html) / [Spring 2015](http://cs224d.stanford.edu/reports_2015.html)  |  
### Prerequisites
  * **Proficiency in Python**
All class assignments will be in Python (using NumPy and PyTorch). If you need to remind yourself of Python, or you're not very familiar with NumPy, you can come to the Python review session in week 1 (listed in the [schedule](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/#schedule)). If you have a lot of programming experience but in a different language (e.g. C/C++/Matlab/Java/Javascript), you will probably be fine.
  * **College Calculus, Linear Algebra** (e.g. MATH 51, CME 100) 
You should be comfortable taking (multivariable) derivatives and understanding matrix/vector notation and operations.
  * **Basic Probability and Statistics** (e.g. CS 109 or equivalent) 
You should know basics of probabilities, gaussian distributions, mean, standard deviation, etc.
  * **Foundations of Machine Learning** (e.g. CS 221 or CS 229) 
We will be formulating cost functions, taking derivatives and performing optimization with gradient descent. If you already have basic machine learning and/or deep learning knowledge, the course will be easier; however it is possible to take CS224n without it. There are many introductions to ML, in webpage, book, and video form. One approachable introduction is Hal Daumé’s in-progress [_A Course in Machine Learning_](http://ciml.info). Reading the first 5 chapters of that book would be good background. Knowing the first 7 chapters would be even better!


### Reference Texts
The following texts are useful, but none are required. All of them can be read free online. 
  * Dan Jurafsky and James H. Martin. [Speech and Language Processing (3rd ed. draft)](https://web.stanford.edu/~jurafsky/slp3/)
  * Jacob Eisenstein. [Natural Language Processing](https://github.com/jacobeisenstein/gt-nlp-class/blob/master/notes/eisenstein-nlp-notes.pdf)
  * Yoav Goldberg. [A Primer on Neural Network Models for Natural Language Processing](http://u.cs.biu.ac.il/~yogo/nnlp.pdf)
  * Ian Goodfellow, Yoshua Bengio, and Aaron Courville. [Deep Learning](http://www.deeplearningbook.org/)
  * Delip Rao and Brian McMahan. [Natural Language Processing with PyTorch](http://library.stanford.edu/sfx?genre=book&atitle=&title=Natural%20language%20processing%20with%20PyTorch%20:%20build%20intelligent%20language%20applications%20using%20deep%20learning%20/&isbn=9781491978207&volume=&issue=&date=20190101&aulast=Rao,%20Delip,,%20author.&spage=&pages=&sid=EBSCO:VLeBooks:edsvle.AH35866319) (requires Stanford login). 


If you have no background in neural networks but would like to take the course anyway, you might well find one of these books helpful to give you more background: 
  * Michael A. Nielsen. [Neural Networks and Deep Learning](http://neuralnetworksanddeeplearning.com)
  * Eugene Charniak. [Introduction to Deep Learning](https://mitpress.mit.edu/books/introduction-deep-learning)


  

## Coursework
### Assignments (54%)
There are five weekly assignments, which will improve both your theoretical understanding and your practical skills. All assignments contain both written questions and programming parts. 
  * **Credit** : 
    * Assignment 1 (6%): Introduction to word vectors
    * Assignment 2 (12%): Derivatives and implementation of word2vec algorithm
    * Assignment 3 (12%): Dependency parsing and neural network foundations
    * Assignment 4 (12%): Neural Machine Translation with sequence-to-sequence and attention
    * Assignment 5 (12%): Neural Machine Translation with ConvNets and subword modeling
  * **Deadlines** : All assignments are due on either a Tuesday or a Thursday _before class_ (i.e. before 4:30pm). All deadlines are listed in the [schedule](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/#schedule).
  * **Submission** : Assignments are submitted via [Gradescope](https://www.gradescope.com/courses/77592). If you need to sign up for a Gradescope account, please use your _@stanford.edu_ email address. Further instructions are given in each assignment handout. _Do not email us your assignments_.
  * **Collaboration** : Study groups are allowed, but students must understand and complete their own assignments, and hand in one assignment per student. If you worked in a group, please put the names of the members of your study group at the top of your assignment. Please ask if you have any questions about the collaboration policy. 
  * **Honor Code** : We expect students to not look at solutions or implementations online. Like all other classes at Stanford, we take the student [Honor Code](https://ed.stanford.edu/academics/masters-handbook/honor-code) seriously. 


### Final Project (43%)
The Final Project offers you the chance to apply your newly acquired skills towards an in-depth application. Students have two options: the **Default Final Project** (in which students tackle a predefined task, namely textual Question Answering) or a **Custom Final Project** (in which students choose their own project involving human language and deep learning). Examples of both can be seen on [last year's website](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1194/project.html). 
#### Important information
  * **Credit** : For both default and custom projects, credit for the final project is broken down as follows: 
    * Project proposal (5%) [[instructions](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project/project-proposal-instructions.pdf)] 
    * Project milestone (5%) [[instructions](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project/project-milestone-instructions.pdf)] 
    * Project poster/video (3%) [[instructions](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project/project-postervideo-instructions.pdf)] 
    * Project report (30%) [[instructions](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project/project-report-instructions.pdf)] 
  * **Deadlines** : The project proposal, milestone and report are all due at 4:30pm. All deadlines are listed in the [schedule](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/#schedule).
  * **Default Final Project** [[handout](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project/default-final-project-handout.pdf)] [[lecture slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture10-QA.pdf)]: In this project, students explore deep learning solutions to the [SQuAD (Stanford Question Asking Dataset) challenge](https://rajpurkar.github.io/SQuAD-explorer/). This year's project is similar to last year's, on SQuAD 2.0 with baseline code in PyTorch. 
  * **Project advice** [[lecture slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2019-lecture09-final-projects.pdf)] [[lecture notes](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/final-project-practical-tips.pdf)]: The _Practical Tips for Final Projects_ lecture provides guidance for choosing and planning your project. To get project advice from staff members, first look at each staff member's areas of expertise on the [office hours page](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/office_hours.html#staff). This should help you find a staff member who is knowledgable about your project area. 


#### Practicalities
  * **Team size** : Students may do final projects solo, or in teams of up to 3 people. We strongly recommend you do the final project in a team. Larger teams are expected to do correspondingly larger projects, and you should only form a 3-person team if you are planning to do an ambitious project where every team member will have a significant contribution.
  * **Contribution** : In the final report we ask for a statement of what each team member contributed to the project. Team members will typically get the same grade, but we may differentiate in extreme cases of unequal contribution. You can contact us in confidence in the event of unequal contribution.
  * **External collaborators** : You can work on a project that has external (non CS224n student) collaborators, but you must make it clear in your final report which parts of the project were your work.
  * **Sharing projects** : You can share a single project between CS224n and another class, but we expect the project to be accordingly bigger, and you must declare that you are sharing the project in your project proposal.
  * **Mentors** : Every custom project team has a mentor, who gives feedback and advice during the project. Default project teams do not have mentors. A project may have an external (i.e., not course staff) mentor; otherwise, we will assign a CS224n staff mentor to custom project teams after project proposals. 
  * **Computing resources** : All teams will receive credits to use the cloud computing service Azure.
  * **Using external resources** : The following guidelines apply to all projects (though the default project has some more specific rules, provided in the _Honor Code_ section of the [handout](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project/default-final-project-handout.pdf)): 
    * You can use any deep learning framework you like (PyTorch, TensorFlow, etc.)
    * More generally, you may use any existing code, libraries, etc. and consult and any papers, books, online references, etc. for your project. However, you must cite your sources in your writeup and clearly indicate which parts of the project are your contribution and which parts were implemented by others.
    * Under no circumstances may you look at another CS224n group’s code, or incorporate their code into your project.


### Participation (3%)
We appreciate everyone being actively involved in the class! There are several ways of earning participation credit, which is capped at 3%: 
  * **Attending guest speakers' lectures** :
    * In the second half of the class, we have three invited speakers. Our guest speakers make a significant effort to come lecture for us, so (both to show our appreciation and to continue attracting interesting speakers) we do not want them lecturing to a largely empty room.
    * For on-campus students, your attendance at lectures with guest speakers is expected! You will get 0.5% per speaker (1.5% total) for attending.
    * Since SCPD students can’t (easily) attend classes, they can instead get 0.83% per speaker (2.5% total) by writing a ‘reaction paragraph’ based on listening to the talk; details will be provided. Non-SCPD students with an unavoidable absence _who ask in advance via a private Piazza post_ can also do this option. Non-SCPD students with a clashing course may only submit this request if the other course is a lab, or is not recorded.
  * **Attending two random lectures** : At two randomly-selected (non-guest) lectures in the quarter, we will take attendance. Each is worth 0.5% (total 1%).
  * **Completing feedback surveys** : We will send out two feedback surveys (mid-quarter and end-of-quarter) to help us understand how the course is going, and how we can improve. Each of the two surveys are worth 0.5%.
  * **Piazza participation** : The top ~20 contributors to Piazza will get 3%; others will get credit in proportion to the participation of the ~20th person.
  * **Karma point** : Any other act that improves the class, which a CS224n TA or instructor notices and deems worthy: 1%


### Late Days
  * Each student has 6 late days to use. A late day extends the deadline 24 hours. You can use up to 3 late days per assignment (including all five assignments, project proposal, project milestone, project final report, but not poster).
  * Teams can **share** late days between members. For example, a group of three people must have at least six late days between them to extend the deadline by two days. _If any late days are being shared, this must be clearly marked at the beginning of the report, and fill out the form linked in[this Piazza post](https://piazza.com/class/k4ja8ockewb2yg?cid=1658)._
  * Once you have used all 6 late days, the penalty is 1% off the final course grade for each additional late day.


### Regrade Requests
If you feel you deserved a better grade on an assignment, you may submit a regrade request on Gradescope within 3 days after the grades are released. Your request should briefly summarize why you feel the original grade was unfair. Your TA will reevaluate your assignment as soon as possible, and then issue a decision. If you are still not happy, you can ask for your assignment to be regraded by an instructor. 
### Credit/No credit enrollment
If you take the class credit/no credit then you are graded in the same way as those registered for a letter grade. The only difference is that, providing you reach a C- standard in your work, it will simply be graded as CR. 
### Sexual violence
Academic accommodations are available for students who have experienced or are recovering from sexual violence. If you would like to talk to a confidential resource, you can schedule a meeting with the Confidential Support Team or call their 24/7 hotline at: 650-725-9955. Counseling and Psychological Services also offers confidential counseling services. Non-confidential resources include the Title IX Office, for investigation and accommodations, and the SARA Office, for healing programs. Students can also speak directly with the teaching staff to arrange accommodations. Note that university employees – including professors and TAs – are required to report what they know about incidents of sexual or relationship violence, stalking and sexual harassment to the Title IX Office. Students can learn more at [https://vaden.stanford.edu/sexual-assault](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/are%20recovering%20from). 
  

## Schedule
Updated lecture **slides** will be posted here shortly before each lecture. Other links contain last year's slides, which are mostly similar. 
Lecture **notes** will be uploaded a few days after most lectures. The notes (which cover approximately the first half of the course content) give supplementary detail beyond the lectures.   
| Date  | Description  | Course Materials  | Events  | Deadlines  |  
| --- | --- | --- | --- | --- |  
| Tue Jan 7  | Introduction and Word Vectors   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture01-wordvecs1.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=b2acdfb7-8038-49fb-941e-ab25012bd9ec)] [[notes](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-2019-notes01-wordvecs1.pdf)]   
  
Gensim word vectors example:   
[[code](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/materials/Gensim.zip)] [[preview](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/materials/Gensim%20word%20vector%20visualization.html)]   |  Suggested Readings: 
  1. [Word2Vec Tutorial - The Skip-Gram Model](http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/)
  2. [Efficient Estimation of Word Representations in Vector Space](http://arxiv.org/pdf/1301.3781.pdf) (original word2vec paper)
  3. [Distributed Representations of Words and Phrases and their Compositionality](http://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf) (negative sampling paper)

 |  Assignment 1 **out**   
[[code](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/assignments/a1.zip)] [[preview](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/assignments/a1_preview/exploring_word_vectors.html)]   |   |  
| Thu Jan 9  | Word Vectors 2 and Word Senses   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture02-wordvecs2.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=68213ef7-af13-4e96-b154-ab25012bda54)] [[notes](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-2019-notes02-wordvecs2.pdf)]   |  Suggested Readings: 
  1. [GloVe: Global Vectors for Word Representation](http://nlp.stanford.edu/pubs/glove.pdf) (original GloVe paper)
  2. [Improving Distributional Similarity with Lessons Learned from Word Embeddings](http://www.aclweb.org/anthology/Q15-1016)
  3. [Evaluation methods for unsupervised word embeddings](http://www.aclweb.org/anthology/D15-1036)

Additional Readings: 
  1. [A Latent Variable Model Approach to PMI-based Word Embeddings](http://aclweb.org/anthology/Q16-1028)
  2. [Linear Algebraic Structure of Word Senses, with Applications to Polysemy](https://transacl.org/ojs/index.php/tacl/article/viewFile/1346/320)
  3. [On the Dimensionality of Word Embedding.](https://papers.nips.cc/paper/7368-on-the-dimensionality-of-word-embedding.pdf)

 |   |   |  
| Fri Jan 10  | Python review session   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-python-review-20.pdf)] [[video](https://stanford.box.com/s/50i2a4w29adk0vfc075cuguv3tlu4t1x)] [[code](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/python-review-demo.py)]   |  2:30 - 4:20pm  
160-124 [[map](https://campus-map.stanford.edu/)]   |   |   |  
| Tue Jan 14  | Word Window Classification, Neural Networks, and PyTorch   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture03-neuralnets.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=bd799d65-6da2-4bef-b075-ab25012bda8c)] [[code (notebook)](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/materials/ww_classifier.ipynb)] [[code (html)](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/materials/ww_classifier.slides.html)]   
[[matrix calculus notes](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/gradient-notes.pdf)]   
[[notes (lectures 3 and 4)](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-2019-notes03-neuralnets.pdf)]   |  Suggested Readings: 
  1. [Review of differential calculus](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/review-differential-calculus.pdf)

Additional Readings: 
  1. [Natural Language Processing (Almost) from Scratch](http://www.jmlr.org/papers/volume12/collobert11a/collobert11a.pdf)

 |  Assignment 2 **out**   
[[code](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/assignments/a2.zip)] [[handout](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/assignments/a2.pdf)]   | Assignment 1 **due**  |  
| Thu Jan 16  | Matrix Calculus and Backpropagation   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture04-neuralnets.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0661dbaa-3726-40f7-89d2-ab25012bdab6)]   
[[notes (lectures 3 and 4)](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-2019-notes03-neuralnets.pdf)]   |  Suggested Readings: 
  1. [CS231n notes on network architectures](http://cs231n.github.io/neural-networks-1/)
  2. [CS231n notes on backprop](http://cs231n.github.io/optimization-2/)
  3. [Learning Representations by Backpropagating Errors](http://www.iro.umontreal.ca/~vincentp/ift3395/lectures/backprop_old.pdf)
  4. [Derivatives, Backpropagation, and Vectorization](http://cs231n.stanford.edu/handouts/derivatives.pdf)
  5. [Yes you should understand backprop](https://medium.com/@karpathy/yes-you-should-understand-backprop-e2f06eab496b)

 |   |   |  
| Tue Jan 21  | Linguistic Structure: Dependency Parsing   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture05-dep-parsing.pdf)]   
[[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0607b355-903d-4b4b-ad42-ab25012bdadc)] [[notes](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-2019-notes04-dependencyparsing.pdf)]   |  Suggested Readings: 
  1. [Incrementality in Deterministic Dependency Parsing](https://www.aclweb.org/anthology/W/W04/W04-0308.pdf)
  2. [A Fast and Accurate Dependency Parser using Neural Networks](https://www.emnlp2014.org/papers/pdf/EMNLP2014082.pdf)
  3. [Dependency Parsing](http://www.morganclaypool.com/doi/abs/10.2200/S00169ED1V01Y200901HLT002)
  4. [Globally Normalized Transition-Based Neural Networks](https://arxiv.org/pdf/1603.06042.pdf)
  5. [Universal Stanford Dependencies: A cross-linguistic typology](http://nlp.stanford.edu/~manning/papers/USD_LREC14_UD_revision.pdf)
[ ](http://nlp.stanford.edu/~manning/papers/USD_LREC14_UD_revision.pdf)
  6. [](http://nlp.stanford.edu/~manning/papers/USD_LREC14_UD_revision.pdf)[Universal Dependencies website](http://universaldependencies.org/)

 | Assignment 3 **out**   
[[code](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/assignments/a3.zip)] [[handout](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/assignments/a3.pdf)]   | Assignment 2 **due**  |  
| Thu Jan 23  | The probability of a sentence? Recurrent Neural Networks and Language Models   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture06-rnnlm.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=e021c806-efe5-42cb-9f40-ab25012bdb01)]   
[[notes (lectures 6 and 7)](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-2019-notes05-LM_RNN.pdf)]   |  Suggested Readings: 
  1. [N-gram Language Models](https://web.stanford.edu/~jurafsky/slp3/3.pdf) (textbook chapter)
  2. [The Unreasonable Effectiveness of Recurrent Neural Networks](http://karpathy.github.io/2015/05/21/rnn-effectiveness/) (blog post overview)
  3. [Sequence Modeling: Recurrent and Recursive Neural Nets](http://www.deeplearningbook.org/contents/rnn.html) (Sections 10.1 and 10.2)
  4. [On Chomsky and the Two Cultures of Statistical Learning](http://norvig.com/chomsky.html)

 |   |   |  
| Tue Jan 28  | Vanishing Gradients and Fancy RNNs   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture07-fancy-rnn.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=1420d65f-bf04-46b2-a8af-ab25012bdb27)]   
[[notes (lectures 6 and 7)](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-2019-notes05-LM_RNN.pdf)]   |  Suggested Readings: 
  1. [Sequence Modeling: Recurrent and Recursive Neural Nets](http://www.deeplearningbook.org/contents/rnn.html) (Sections 10.3, 10.5, 10.7-10.12)
  2. [Learning long-term dependencies with gradient descent is difficult](http://ai.dinfo.unifi.it/paolo//ps/tnn-94-gradient.pdf) (one of the original vanishing gradient papers)
  3. [On the difficulty of training Recurrent Neural Networks](https://arxiv.org/pdf/1211.5063.pdf) (proof of vanishing gradient problem)
  4. [Vanishing Gradients Jupyter Notebook](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1174/lectures/vanishing_grad_example.html) (demo for feedforward networks)
  5. [Understanding LSTM Networks](http://colah.github.io/posts/2015-08-Understanding-LSTMs/) (blog post overview)

 | Assignment 4 **out**   
[[code](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/assignments/a4.zip)] [[handout](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/assignments/a4.pdf)] [[Azure Guide](https://docs.google.com/document/d/12J7zn2fBG3ra1Q2prxzSc2LIvNo7Va0ptgoRFzaIS7I/edit)] [[Practical Guide to VMs](https://docs.google.com/document/d/1z9ST0IvxHQ3HXSAOmpcVbFU5zesMeTtAc9km6LAPJxk/edit)]   | Assignment 3 **due**  |  
| Thu Jan 30  | Machine Translation, Seq2Seq and Attention   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture08-nmt.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=d951e69f-00b9-4f32-9856-ab25012bdb48)] [[notes](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-2019-notes06-NMT_seq2seq_attention.pdf)]   |  Suggested Readings: 
  1. [Statistical Machine Translation slides, CS224n 2015](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1162/syllabus.shtml) (lectures 2/3/4)
  2. [Statistical Machine Translation](https://www.cambridge.org/core/books/statistical-machine-translation/94EADF9F680558E13BE759997553CDE5) (book by Philipp Koehn)
  3. [BLEU](https://www.aclweb.org/anthology/P02-1040.pdf) (original paper)
  4. [Sequence to Sequence Learning with Neural Networks](https://arxiv.org/pdf/1409.3215.pdf) (original seq2seq NMT paper)
  5. [Sequence Transduction with Recurrent Neural Networks](https://arxiv.org/pdf/1211.3711.pdf) (early seq2seq speech recognition paper)
  6. [Neural Machine Translation by Jointly Learning to Align and Translate](https://arxiv.org/pdf/1409.0473.pdf) (original seq2seq+attention paper)
  7. [Attention and Augmented Recurrent Neural Networks](https://distill.pub/2016/augmented-rnns/) (blog post overview)
  8. [Massive Exploration of Neural Machine Translation Architectures](https://arxiv.org/pdf/1703.03906.pdf) (practical advice for hyperparameter choices)

 |   |   |  
| Tue Feb 4  |  Practical Tips for Final Projects   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture09-final-projects.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=4879f76a-c6df-4f8b-bba5-ab25012bdb6d)] [[notes](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/final-project-practical-tips.pdf)]   |  Suggested Readings: 
  1. [Practical Methodology](https://www.deeplearningbook.org/contents/guidelines.html) (_Deep Learning_ book chapter)

 | Project Proposal **out**   
[[instructions](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project/project-proposal-instructions.pdf)]   
  
Default Final Project **out** [[handout](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project/default-final-project-handout.pdf)] [[code](https://github.com/minggg/squad)]   |   |  
| Thu Feb 6  | Question Answering, the Default Final Project, and an introduction to Transformer architectures  
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture10-QA.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=d3863106-4554-4ee5-bdad-ab25012bdb93)] [[notes](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-2019-notes07-QA.pdf)]   |  Suggested Readings: 
  1. [Project Handout](http://web.stanford.edu/class/cs224n/project/default-final-project-handout.pdf)
  2. [Attention Is All You Need](https://arxiv.org/abs/1706.03762.pdf)
  3. [The Illustrated Transformer](https://jalammar.github.io/illustrated-transformer/)
  4. [Transformer (Google AI blog post)](https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html)
  5. [Layer Normalization](https://arxiv.org/pdf/1607.06450.pdf)
  6. [Image Transformer](https://arxiv.org/pdf/1802.05751.pdf)
  7. [Music Transformer: Generating music with long-term structure](https://arxiv.org/pdf/1809.04281.pdf)

 |   | Assignment 4 **due**  |  
| Tue Feb 11  | ConvNets for NLP   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture11-convnets.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=24790026-1fb3-4e53-bde0-ab25012bdbc2)] [[notes](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-2019-notes08-CNN.pdf)]   |  Suggested Readings: 
  1. [Convolutional Neural Networks for Sentence Classification](https://arxiv.org/abs/1408.5882.pdf)
  2. [Improving neural networks by preventing co-adaptation of feature detectors](https://arxiv.org/abs/1207.0580)
  3. [A Convolutional Neural Network for Modelling Sentences](https://arxiv.org/pdf/1404.2188.pdf)

 |  Assignment 5 **out**   
[[original code (requires Stanford login)](https://stanford.box.com/s/z5taomzoxnhm9kwy928l5igudh2k9n5a) / [public version](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/assignments/a5_public.zip)] [[handout](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/assignments/a5_updated.pdf)]   |   |  
| Thu Feb 13  | Information from parts of words (Subword Models)   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture12-subwords.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=796bb4dc-fabf-4cc4-8b31-ab25012bdbec)]   | Suggested readings: 
  1. [Achieving Open Vocabulary Neural Machine Translation with Hybrid Word-Character Models](https://arxiv.org/abs/1604.00788.pdf)
  2. [Revisiting Character-Based Neural Machine Translation with Capacity and Compression](https://arxiv.org/pdf/1808.09943.pdf)

 |   | Project Proposal **due**  |  
| Tue Feb 18  | Contextual Word Representations: BERT _(guest lecture by[Jacob Devlin](https://research.google/people/106320/))_   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/Jacob_Devlin_BERT.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=5a2ffb20-113f-4d8d-bb77-ab25012bdc20)]  | Suggested readings: 
  1. [BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding](https://arxiv.org/pdf/1810.04805.pdf)

 |   |   |  
| Thu Feb 20  | Modeling contexts of use: Contextual Representations and Pretraining. ELMo and BERT.   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture14-contextual-representations.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=7f471f99-ebf5-4477-a700-ab25012bdc4a)]   | Suggested readings: 
  1. [Contextual Word Representations: A Contextual Introduction](https://arxiv.org/abs/1902.06006.pdf). 
  2. [The Illustrated BERT, ELMo, and co.](http://jalammar.github.io/illustrated-bert/)

 |  Project Milestone **out** [[instructions](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project/project-milestone-instructions.pdf)]   | Assignment 5 **due**  |  
| Tue Feb 25  |  Natural Language Generation   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture15-nlg.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=5b83adc9-8aed-49b4-82ba-ab25012bdc6c)]   |  Suggested readings: 
  1. [The Curious Case of Neural Text Degeneration](https://arxiv.org/abs/1904.09751.pdf). 
  2. [Get To The Point: Summarization with Pointer-Generator Networks](https://arxiv.org/abs/1704.04368.pdf). 
  3. [Hierarchical Neural Story Generation](https://arxiv.org/abs/1805.04833.pdf). 
  4. [How NOT To Evaluate Your Dialogue System](https://arxiv.org/abs/1603.08023.pdf). 

 |   |   |  
| Thu Feb 27  | Reference in Language and Coreference Resolution   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2019-lecture16-coref.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=6b685084-c0f5-4a3e-ac1b-ab25012bdc9a)]   | Suggested readings: 
  1. [Coreference Resolution chapter of Jurafsky and Martin](https://web.stanford.edu/~jurafsky/slp3/22.pdf)
  2. [End-to-end Neural Coreference Resolution](https://arxiv.org/pdf/1707.07045.pdf)

 |   |   |  
| Tue Mar 3  | Fairness and Inclusion in AI _(guest lecture by[Vinodkumar Prabhakaran](https://www.cs.stanford.edu/~vinod/))_   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/Vinodkumar_Prabhakaran_Socially_Responsible_NLP.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=7d9ff3e4-8240-4dcf-8b36-ab25012bdcbb)]   |   |   | Project Milestone **due**  |  
| Thu Mar 5  |  Constituency Parsing and Tree Recursive Neural Networks   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture18-TreeRNNs.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=42213860-265e-46c8-a16d-ab25012bdcf8)] [[notes](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/readings/cs224n-2019-notes09-RecursiveNN_constituencyparsing.pdf)]   |  Suggested Readings: 
  1. [Parsing with Compositional Vector Grammars.](http://www.aclweb.org/anthology/P13-1045)
  2. [Constituency Parsing with a Self-Attentive Encoder](https://arxiv.org/pdf/1805.01052.pdf)

 |   |   |  
| Fri Mar 6  |  Virtual Office Hours with HuggingFace   
[[video](https://drive.google.com/file/d/16jNWI2HHEet6Jc8jD-FgpAkHNGZ13eHP/view?usp=sharing)] (requires Stanford login)   |   |   |   |  
| Tue Mar 10  | Recent Advances in Low Resource Machine Translation _(guest lecture by[Marc'Aurelio Ranzato](https://ranzato.github.io))_   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/MarcAurelio_Ranzato_Low_Resource_MT.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=7e2323b5-c044-4a48-9d37-ab7b00f1fbc9)]   |   |   |   |  
| Thu Mar 12  |  Analysis and Interpretability of Neural NLP   
[[slides](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/slides/cs224n-2020-lecture20-interpretability.pdf)] [[video](https://stanford-pilot.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=e5926c50-b6b1-4339-bc06-ab7d006ffdea)]   |   |   |   |  
| Canceled  |  **Final project poster session**   
 | 5:30 - 10pm   
McCaw Hall at the Alumni Center [[map](https://alumni.stanford.edu/get/page/resources/alumnicenter/directions)]   |   |  **Project Poster/Video~~due~~** [[instructions](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project/project-postervideo-instructions.pdf)]   |  
| **March 23**  |  **Final project report submission (OPTIONAL)**   
[[instructions](https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1204/project/project-report-instructions.pdf)] [[select grading option](https://piazza.com/class/k4ja8ockewb2yg?cid=2260)]   |   |   |  **Final Project Report (OPTIONAL) due**  |
