# CS124 - From Languages to Information (Winter 2026)

https://web.stanford.edu/class/cs124/#schedule

[CS 124: From Languages to Information](https://www.stanford.edu/class/cs124/)
  * [Schedule](https://web.stanford.edu/class/cs124/#schedule)
  * [Office Hours](https://calendar.google.com/calendar/embed?src=e9b9ce5594db1de4d10617cdb6732dfd6a950702525751e0e987a55553aea4b7%40group.calendar.google.com&ctz=America%2FLos_Angeles)
  * [Discussion (Ed)](https://edstem.org/us/courses/89674)


# CS 124: From Languages to Information
[**Dan Jurafsky**](https://www.stanford.edu/~jurafsky/)  
**Winter 2026, Tu/Th 3:00-4:20 in Hewlett 200.**
This course (**which will not be taught in AY 2026-2027, so take it now!**) is a broad introduction to LLMs and other algorithms for dealing with text, speech, and networks, including the tasks of tokenizing, classifying, searching, recommending, and transcribing information. Topics include LLMs themselves as well as logistic regression, information retrieval, collaborative filtering, neural networks, transformers, speech recognition, social networks, pagerank, and other large language model components and tools. This class is the broad undergrad intro to numerous grad classes like cs224N/S/U/C/V, cs246, cs276, cs336, and cs329R/X. 
[Schedule](https://web.stanford.edu/class/cs124/#schedule) [Ed Discussion](https://edstem.org/us/courses/89674/discussion)
  

### *Special Note*: CS124 will not be taught in Winter 2027 (or anytime in AY 2026-2027) because I will be on sabbatical. So if you need to take cs124 before Winter 2028, you should take it next quarter, Winter 2026! I look forward to seeing you!   
Also FYI that cs124 has no enrollment cap, so everyone is admitted!
### Welcome to CS124!! Some FAQ
    1. **When do I need to come to class?**   
  
**TL;DR: Tuesdays! All 10 Tuesdays we have one of the 5 live lectures or 5 labs!**   
  
**More nuanced answer** : CS124 is a flipped class. This means there are mainly recorded lectures and we mostly do labs in class! Note that the 5 live lectures and the 5 labs are **not recorded**. 
       * **Required attendance in Hewlett 200:** **6 days** : 4 of the 5 live lectures (Tuesday of weeks 1, 5, 6, 10); not the Speech lecture in week 7. Lab #1 (week 2), and Lab #4 (Week 8). These are in blue on the schedule below!! These lectures and labs will not be recorded and the material is fair game for the quizzes. 
       * **Recommended attendance in Hewlett 200 (and required completion):** Lab #2, Lab #3, Lab #5, and the Speech Lecture. Attendence at these (non-recorded) labs gives you **extra credit** but if you want you can skip the extra credit and do them yourself at home. 
       * **Completely optional attendance in Hewlett 200** : 
         * The 2 Thursday **tutorial** sessions on Jupyter and Numpy/linear algebra. No extra credit, but you should come if you want help with getting set up with PA0 and getting a refresher on jupyter and numpy. 
         * Special office hours in Hewlett 200 all the other Thursdays! 
       * There is no final exam and midterm. We will not use the scheduled final exam time at all. The last class requirement is the final programming assignment which is due Wednesday March 11 at 5pm. The last time you have to come to class in person is Tuesday Mar 10 for my last lecture. 
       * **Should I come to class if I am sick?** Absolutely not! Stay home and get better and don't make everyone else sick! Mail the staff in advance (see the email below) and they will note that you are sick and give you advice about attendance credit and more importantly how to keep up. 
    2. **Can I take this class asynchronously, i.e., if i have another class at the same time?**
**No.** The class **must be taken synchronously** , so that you have the ability to come to all the 12 in-person class sessions; we have found over the years that the labs are necessary and result in everyone learning more. **However** , if you have a medical reason why you cannot take the class synchronously, or because you are required to take another class at the same time and you need the classes or else **you cannot graduate this quarter,** you can ask Dan for explicit permission to take the class asynchronously. The in-person material is not recorded, so if you are taking the class asynchronously, you must do the labs yourself at home, but won't get the extra credit that the folks who come in person will get. Note: this is only for people with medical or must-graduate-this-quarter excuses. 
Another exception: since the required events are **all on Tuesdays** , if you have a class at this time that happens to meet **only on Thursdays** , that's ok! 
    3. **Can I audit this class?**
**No and yes.** No because the TAs are very hard-working and their workload helping the almost 400 students each year is assigned by the University based on enrollment, so auditors are asking the TAs to work for free, which isn't reasonable or sustainable. Yes because all the course material is public, and we encourage anyone who wants to learn the material to go through it on their own, as long as they don't ask the TAs to work for them! So that means if you're not in the class we encourage you to watch the videos on YouTube, and do the programming homeworks, but don't submit homeworks or quizzes to be graded, and don't ask questions on Ed that the TAs will need to spend time answering. 
    4. **What are the prereqs? Prerequisites: CS106B, Python (at the level of CS106A), CS109 (or equivalent background in probability), and programming maturity and knowledge of UNIX equivalent to CS107 (or taking CS107 or CS1U concurrently).** In some previous years CS107 and CS109 were optional. Many students advised us that it would have been helpful to have 107 and 109 first. So now both are required. You may take them concurrently, and if you have equivalent knowledge that's fine. It's also useful to have had Math 51, but not required; we'll try to give you pointers to places to make up missing background. Note: Because this class often functions as an introduce to text data science for PhD students in other areas, we will definitely make exceptions for PhD students in other departments who haven't taken 107 and 109, just talk to us! 
    5. **Can I take this course as a PhD student in a department that isn't CS?** : Yes, we'd love to have non-CS PhDs! This course is not appropriate for CS grad students (because there are CS graduate versions of all the material in this course, i.e. CS224N, 224U, 224V, 224W, 224C, CS246, CS276), but it's very commonly taken by PhD students in the social sciences or humanities who plan to use text processing methods in their research. Feel free to contact us if you're worried whether you have the right background as a PhD student from another department. 
    6. **If I have permission to take the course despite not having CS107 (for example because I am a PhD student in another department), what should I do to catch up with the UNIX background I've missed** : Watch some of the "getting start with UNIX" mini-videos from [this old cs107 archive](https://web.stanford.edu/class/archive/cs/cs107/cs107.1186/unixref/): (1) The "Logging in" videos that are relevant for whatever computer you are using (mac/windows/linux), (2) the first 7 "File System" videos, (3) the first 7 "Useful Commands" videos, (4) the first 3 "Shell/Productivity" videos, and (5) the "Vim" section from "Editors". 
    7. **More details?[below](https://web.stanford.edu/class/cs124/#information)**. You are responsible for **reading this entire syllabus before the 2nd day of class, January 9**! The **textbook is free online pdfs mostly[here](https://web.stanford.edu/~jurafsky/slp3/)**
    8. **Who do I email if I have OAE accommodations, or have questions about personal issues or missing class?** For OAE, any other personal issues, or extenuating circumstances, mail cs124_requests@lists.stanford.edu. This address will be read by Dan and the head TA and the course manager and coordinator to get you answers about missing classes, or about personal issues like OAE. If you have questions that are in any way technical in nature post them on Ed. 
    9. **Most important** : Have fun and learn lots!!!! 


##  Course Staff 
![](https://web.stanford.edu/class/cs124/images/jurafskysquare.jpeg)
Dan Jurafsky 
Professor 
![](https://web.stanford.edu/class/cs124/images/linda_headshot.jpeg)
Linda Liu 
Head TA 
![](https://web.stanford.edu/class/cs124/images/belinda_headshot.jpeg)
Belinda Yeung 
TA / Student Liaison 
![](https://web.stanford.edu/class/cs124/images/amelie_headshot.jpg)
Amelie Byun 
Course Manager 
![](https://web.stanford.edu/class/cs124/images/adi_headshot.jpeg)
Adi Badlani 
TA 
![](https://web.stanford.edu/class/cs124/images/karan_headshot.png)
Karan Bhasin 
TA 
![](https://web.stanford.edu/class/cs124/images/julia_headshot.jpeg)
Julia Biswas 
TA 
![](https://web.stanford.edu/class/cs124/images/Sri.png)
Sri Jaladi 
TA 
![](https://web.stanford.edu/class/cs124/images/riya_headshot.jpeg)
Riya Karumanchi 
TA 
![](https://web.stanford.edu/class/cs124/images/ishan_headshot.jpg)
Ishan Khare 
TA 
![](https://web.stanford.edu/class/cs124/images/susan_headshot.jpeg)
Susan Lee 
TA 
![](https://web.stanford.edu/class/cs124/images/isabel_headshot.jpeg)
Isabel Sieh 
TA 
![](https://web.stanford.edu/class/cs124/images/isha_headshot.jpeg)
Isha Sinha 
TA 
![](https://web.stanford.edu/class/cs124/images/sunny_headshot.jpeg)
Sunny Yu 
TA 
![](https://web.stanford.edu/class/cs124/images/esi_headshot.jpeg)
Esidore Eneinyang 
Ethics TA 


##  Schedule   
| Week   | Date   | Homework   | Quiz   | In-class   | Video Lectures and Readings (to be done by the Monday of the week unless I specify another date)   |  
| --- | --- | --- | --- | --- | --- |  
| 1   | Jan 6 and 8   |  PA 0: _Setup and Tutorial_   
[[starter code](https://github.com/cs124/pa0-jupyter-tutorial)]  Due Fri Jan 9, 5:00pm (We'll also go over this in Thursday Jan 8's in-person tutorial )  |  -   | 
  * **Tue Jan 6: Dan in-person Lecture: Intro (required not recorded)** [[slides pptx](https://web.stanford.edu/class/cs124/lec/intro26.pptx)] [[slides pdf](https://web.stanford.edu/class/cs124/lec/intro26.pdf)] 
  * **Thurs Jan 8: In-person tutorial: Jupyter notebooks and PA0 (Optional!)**

 |  (Optional) Watch before Thursday: 
  * [PA 0 Windows Setup Video](https://canvas.stanford.edu/courses/217991/modules/items/2397764)
  * [PA 0 Mac Setup Video](https://canvas.stanford.edu/courses/217991/modules/items/2424933)

 |  
|  2   |  Jan 13 and 15   |  PA 1: _Regular Expressions and Tokenization_   
[[starter code](https://github.com/cs124/pa1-regular-expressions/)]  Due Fri Jan 16, 5:00pm   |  Quiz 1: _Tokenization and N-gram Language Modeling_ [[quiz 1 on gradescope](https://www.gradescope.com/courses/1198205/assignments/7382412/)]  Due Tue Jan 13, 11:59pm   | 
**Tue Jan 13: Lab #1: Unix Text Processing and N-gram Language Modeling** (Slides: Solutions are generally on the following slide; don't look at each solution til you've done the problem :)  
[[Lab 1 pptx](https://www.stanford.edu/class/cs124/lec/Lab1_UnixText_2026_upload.pptx)] [[Lab 1 pdf](https://www.stanford.edu/class/cs124/lec/Lab1_UnixText_2026_upload.pdf)] [[secret_ec.txt](https://www.stanford.edu/class/cs124/lec/secret_ec.txt)]  
**Thur Jan 15: In-person Tutorial on NumPy (Optional)** [[numpy tutorial](https://github.com/cs124/numpy-tutorial)]  
 | 
##### Words and Tokenization Canvas Videos  (watch videos before Mon Jan 12) [[canvas slides pptx](https://www.stanford.edu/class/cs124/lec/tokens_jan26.pptx)] [[ canvas slides pdf](https://www.stanford.edu/class/cs124/lec/tokens_jan26.pdf)] 
  * [J+M 3rd Chapter 2 "Words and Tokens", pages 1-26](https://web.stanford.edu/~jurafsky/slp3/2.pdf)


##### Edit Distance Canvas Videos  (watch videos before Mon Jan 12) [[canvas slides pptx](https://www.stanford.edu/class/cs124/lec/med25.pptx)] [[ canvas slides pdf](https://www.stanford.edu/class/cs124/lec/med25.pdf)] 
  * [J+M 3rd Chapter 2 "Words and Tokens", pages 27-32](https://web.stanford.edu/~jurafsky/slp3/2.pdf)


#####  N-gram Language Modeling Canvas Videos (watch before Monday Jan 12)  [[canvas slides pptx](https://www.stanford.edu/class/cs124/lec/lm_jan25.pptx)] [[canvas slides pdf](https://www.stanford.edu/class/cs124/lec/lm_jan25.pdf)] 
  * [J+M (3ed) Chapter 3, "N-gram Language Modeling "](https://web.stanford.edu/~jurafsky/slp3/3.pdf) pages 1-14 

 |  
|  3   |  Jan 20 and 22   |  PA 2: _Logistic Regression and Text Classification_!   
[[starter code](https://github.com/cs124/pa2-logistic-regression/tree/main)]  Due Fri Jan 23, 5:00pm  |  Quiz 2: _Logistic Regression and Text Classification_ [[quiz 2 on gradescope](https://www.gradescope.com/courses/1198205/assignments/7441951)]  Due Tuesday Jan 20, 11:59pm  | 
**Tue Jan 20: Lab #2: Logistic Regression and Classification (required. You may do at home, but extra credit for in-person)**   
watch LR videos beforehand)   
(don't look at the solution until you've completed all the questions!)   
[[lab intro pptx](https://www.stanford.edu/class/cs124/lec/lab2logreg_lecture.pptx)] [[lab intro pdf](https://www.stanford.edu/class/cs124/lec/lab2logreg_lecture.pdf)]  
[[Lab 2](https://github.com/cs124/labs/blob/main/Lab2_LogisticRegression.md)] [[Lab 2 Solutions](https://github.com/cs124/labs/blob/main/Lab2_LogisticRegression_Solutions.md)]    
  

Thu Jan 22: No class: extra in-person TA office hours during class time in Hewlett 200 
  
  
 | 
**Logistic Regression Canvas Videos** (watch/read before Mon Jan 19)  [[canvas slides pptx](https://www.stanford.edu/class/cs124/lec/logreg26jan.pptx)] [[canvas slides pdf](https://www.stanford.edu/class/cs124/lec/logreg26jan.pdf)]  

  * [J+M (3ed) Chapter 4, "Logistic Regression"](https://web.stanford.edu/~jurafsky/slp3/4.pdf) pages 1-17. Page 18 and 21 may also be useful! 

 |  
|  4   |  Jan 27 and Jan 29   |  PA 3: _Information Retrieval_   
[[starter code](https://github.com/cs124/pa3-information-retrieval)]  Due Fri Jan 30, 5:00pm  |  Quiz 3: _Information Retrieval_ [[quiz 3 on gradescope](https://www.gradescope.com/courses/1198205/assignments/7511031/)]  Due Tuesday Jan 27, 11:59pm  | 
**Tuesday: Lab #3: Information Retrieval (required. You may do at home, but extra credit for in-person)** [[lab intro pptx](https://www.stanford.edu/class/cs124/lec/labeirupload.pptx)] [[lab intro pdf](https://www.stanford.edu/class/cs124/lec/lab3irupload.pdf)]  
[[Lab 3](https://github.com/cs124/labs/blob/main/Lab3_InformationRetrieval.md)] [[Lab 3 Solutions](https://github.com/cs124/labs/blob/main/Lab3_InformationRetrieval_Solutions.md)]    
  
  

Thursday: No class: extra in-person TA office hours during class time in Hewlett 200 (3-4:30) and Hewlett 201 (4:30-6) 
  
  
 | 
**Information Retrieval Canvas Videos** (watch/read before Mon Jan 26)  [[canvas slides pptx](https://www.stanford.edu/class/cs124/lec/ir_jan17_2026.pptx)] [[canvas slides pdf](https://www.stanford.edu/class/cs124/lec/ir_jan17_2026.pdf)]  

  * [J+M (3ed) Chapter 11, "Information Retrieval and Retrieval-Augmented Generation"](https://web.stanford.edu/~jurafsky/slp3/11.pdf). 

 |  
|  5   |  Feb 3 and 5   |  PA 4: _Embeddings_   
[[starter code](https://github.com/cs124/pa4-embeddings)]  Due Fri Feb 6, 5:00pm   |  Quiz 4: _Embeddings_ [[quiz 4 on gradescope](https://www.gradescope.com/courses/1198205/assignments/7545193/)]  Due Tuesday Feb 3, 11:59pm  | 
  * **Tuesday: Dan in-person Lecture (required and not recorded): "Social NLP/ NLP for Computational Social Science"**   
[[slides pdf](https://www.stanford.edu/class/cs124/restricted/css_cs124_26.pdf)] [[slides pptx](https://www.stanford.edu/class/cs124/restricted/css_cs124_26.pptx)]-    
  

    * Thursday: No class: extra in-person TA office hours during class time in Hewlett 200 

 | 
  * **Embeddings Canvas Videos** (watch/read before Mon Feb 2)  [[slides pptx](https://www.stanford.edu/class/cs124/lec/vector26jan.pptx)] [[slides pdf](https://www.stanford.edu/class/cs124/lec/vector26jan.pdf)] 


  * [ J+M (3ed) Chapter 5: Embeddings, 1-12, 17-21](https://web.stanford.edu/~jurafsky/slp3/5.pdf) Plus [Chapter 10](https://web.stanford.edu/~jurafsky/slp3/10.pdf) pages 9-12. 

 |  
|  6   | Feb 10 and 12   |  PA 5: _Neural Networks_ [[starter code](https://github.com/cs124/pa5-neural-networks)]  Due **Fri Feb 13, 5:00pm.**  |  Quiz 5: _Neural Networks_ [[quiz 5 on gradescope](https://www.gradescope.com/courses/1198205/assignments/7598973/)]  Due Tue Feb 10, 11:59pm  |  **Tuesday: Dan live Lecture (required and not recorded): "LLMs and Transformers!"** [[llm slides pptx](https://www.stanford.edu/class/cs124/lec/llm_cs124_26.pptx)] [[llm slides pdf](https://www.stanford.edu/class/cs124/lec/llm_cs124_26.pdf)] [[transformer slides pptx](https://www.stanford.edu/class/cs124/lec/transformer_cs124_26.pptx)] [[transformer slides pdf](https://www.stanford.edu/class/cs124/lec/transformer_cs124_26.pdf)]  Thursday: No class: extra in-person TA office hours during class time in Hewlett 200    
  
  
 | 
  * **Neural Networks Video** [[slides pptx](https://www.stanford.edu/class/cs124/lec/7_NN.pptx)] [[slides pdf](https://www.stanford.edu/class/cs124/lec/7_NN.pdf)] 


  * [ J+M (3ed) Chapter 6: Neural Networks](https://web.stanford.edu/~jurafsky/slp3/6.pdf). 

 |  
|  7   |  Feb 17 and 19   |  PA 6a: _Transformers_   
[[starter code](https://github.com/cs124/pa6a-transformers)]  Due **Fri Feb 20** , **5:00pm**  |  Quiz 6: _Transformers_ [[quiz 6 on gradescope](https://www.gradescope.com/courses/1198205/assignments/7644562/)]  Due **Tue Feb 17, 11:59pm.**  |  **Tuesday: Dan live Lecture (not recorded): "Speech Processing" (attendence is optional/extra credit, you can choose to read the chapters instead)** [[slides pptx](https://www.stanford.edu/class/cs124/lec/speech_cs124_26.pptx)] [[slides pdf](https://www.stanford.edu/class/cs124/lec/speech_cs124_26.pdf)]    
Thursday: No class: extra in-person TA office hours during class time in Hewlett 200 (3-4:30) and Hewlett 201 (4:30-6)   
  
  
 | 
    * For Quiz 6: transformers, The lecture material is the **LLM/Transformer lecture that I gave live on Feb 10**. There is no recording, but the slides are listed above in week 6 and the reading (which is similar to the lecture) is: 
    * [ J+M (3ed) Chapter 7: Large Language Models (only pages 1-11 and page 17)](https://web.stanford.edu/~jurafsky/slp3/7.pdf)
    * [ J+M (3ed) Chapter 8: The Transformer](https://web.stanford.edu/~jurafsky/slp3/8.pdf). 

 |  
|  8   |  Feb 24 and Feb 26   |  PA 6b: _Speech_   
[[starter code](https://github.com/cs124/pa6b-speech)]  Due **Wed Feb 25** , **5:00pm**  |  Quiz 7: _Speech_ [[quiz 7 on gradescope](https://www.gradescope.com/courses/1198205/assignments/7685746/)]  Due **Tue Feb 24, 11:59pm.**  |  **Tuesday: Lab #4: PA7 and Git (required in-person)** [[Lab 4](https://github.com/cs124/labs/blob/main/Lab4_Agent.md)]  Thursday: No class: extra in-person TA office hours during class time in Hewlett 200   |    

  * [J+M 3rd Chapter 14 "Phonetics and Speech Feature Extraction", pages 1-6, 10-25](https://web.stanford.edu/~jurafsky/slp3/14.pdf)
  * [J+M 3rd Chapter 15 "Automatic Speech Recognition", pages 1-12 plus sect 15.6 (pages 21-24)](https://web.stanford.edu/~jurafsky/slp3/15.pdf)

 |  
|  9   |  Mar 3 and 5   |  PA 7: _Agent_   
[[starter code](https://github.com/cs124/pa7-agent)]  Due **Wed Mar 11** , **5:00pm**  |  _Quiz 8: Recommendation Systems_ [[quiz 8 on gradescope](https://www.gradescope.com/courses/1198205/assignments/7735341/)]  Due Tues Mar 3, 11:59pm  |  **Tuesday Lab #5: Collaborative Filtering and Ethical Use of LLMs in the Classroom (required. You may do at home, but extra credit for in-person)**   
[[Lab 5](https://github.com/cs124/labs/blob/main/Lab5_LargeLanguageModels.md)] [[Lab 5 solutions](https://github.com/cs124/labs/blob/main/Lab5_LargeLanguageModels_Solutions.md)]    
  
Thursday: No class: extra in-person TA office hours during class time in Hewlett 200   | 
#####  Recommender systems and Collaborative Filtering Canvas videos (watch by Monday Mar 2)  [[slides pptx](https://web.stanford.edu/class/cs124/lec/collaborativefiltering26.pptx)] [[slides pdf](https://web.stanford.edu/class/cs124/lec/collaborativefiltering26.pdf)] 
    * Jure Leskovec, Anand Rajaraman, Jeff Ullman. 2014. [ Mining of Massive Datasets. Chapter 9](http://infolab.stanford.edu/~ullman/mmds/ch9.pdf) 3rd edition. pages 319-339 (sections 9.1, 9.2, 9.3; you can skip 9.2.7). 

 |  
|  10   |  Mar 10 and 12   |  Reminder: PA 7: _Agent_ Due **Wed Mar 11** , 5:00pm   |  Quiz 9: _Pagerank and Networks_ [[quiz 9 on gradescope](https://www.gradescope.com/courses/1198205/assignments/7776558)]  Due Tues Mar 10, 11:59pm  |  **Tuesday: Dan Live Lecture (required and not recorded)**   
[[slides pdf](https://www.stanford.edu/class/cs124/lec/final124_26.pdf)] [[slides pptx](https://www.stanford.edu/class/cs124//lec/final124_26.pptx)]    
  
  
Thursday: No class **(but no extra office hours)**  | 
#####  Web graphs, Links, and PageRank (watch by Mon Mar 9)  [[slides pptx](https://spark-public.s3.amazonaws.com/cs124/slides/web.pptx)] [[slides pdf](https://spark-public.s3.amazonaws.com/cs124/slides/web.pdf)] 
  * [MR+S](https://site.ebrary.com/lib/stanford/docDetail.action?docID=10240274) Chapter 21: Link Analysis, just pages 421-433 (Skip section 21.3 and 21.4) 


#####  Social Networks Canvas Videos (watch by Mon Mar 9)  [[slides pptx](https://www.stanford.edu/class/cs124/lec/socialnetworks21.pptx)] [[slides pdf](https://www.stanford.edu/class/cs124/lec/socialnetworks21.pdf)] 
  * David Easley and Jon Kleinberg. 2010. [ Networks, Crowds, and Markets: Reasoning About a Highly Connected World](https://www.cs.cornell.edu/home/kleinber/networks-book/). Chapter 2, Sections 3.1-3.3 and Secs 18.1-18.5. Cambridge

 |  
###  Logistics  

Instructor 
     **Dan Jurafsky** (jurafsky@stanford.edu)   
Office: Margaret Jacks 117   
Office Hours: Book an appointment for Thursdays 3-4:20 (except week 2, in which case they are Tues Jan 13, 4:30-5:30).   


TA Office Hours
     [Google Calendar](https://calendar.google.com/calendar/embed?src=e9b9ce5594db1de4d10617cdb6732dfd6a950702525751e0e987a55553aea4b7%40group.calendar.google.com&ctz=America%2FLos_Angeles) (Subject to change)  

Class Time 
    
Tuesday and Thursday 3:00-4:20  

Attendance 
    
See the note at the top of the page.  

Email 
    
**Alas, we can't reply to email sent to individual staff members.** If you have a question that is not confidential or personal, post it on the [Ed Discussion forum](https://edstem.org/us/courses/89674/discussion)! Responses are quicker and you'll also be helping others with the same question! To contact the teaching staff directly, come see us in office hours! 
If that is not possible, you can also email (non-technical questions) to the course staff list, cs124_requests@lists.stanford.edu. For urgent requests: We check the staff email list very frequently, but please don't worry if you don't hear from us right away. We will do our best to get back to you within a day or so. Just make sure to send an email as soon as you have the request so it's timestamped! 
If you have a matter to be discussed privately, come to office hours or use cs124_requests@lists.stanford.edu to make an appointment. For grading questions, please talk to us after class or during office hours. 
Class announcements will be on Ed Discussion (although we will occasionally try Canvas and mailing lists). We will assume that everyone reads all announcements.  

Honor Code 
    
Since we occasionally reuse homeworks from previous years, we expect students not to copy, refer to, or look at the solutions in preparing their answers. It is an honor code violation to intentionally refer to a previous year's solutions. This applies both to the official solutions and to solutions that you or someone else may have written up in a previous year. It is also an honor code violation to find some way to look at the test set, or to interfere in any way with programming assignment scoring or tampering with the submit script. It's also an honor code violation to use ChatGPT or any automatic coding system to write your code for you. You should use language models like you use a TA, to improve your understanding. You may not paste code directly from an LLM into your programming assignment. 
Unlike prior years, students **are** allowed to collaborate on quizzes. However, you must each do your own work and only discuss after; each person will be uploading their own work in addition to the answers. 
CS124 follows the general Stanford policy on generative AI which is that "use of or consultation with generative AI shall be treated analogously to assistance from another person. In particular, using generative AI tools to substantially complete an assignment or quiz (e.g. by entering quiz or assignment questions) is not permitted", just as having someone do your homework or quizzes for you is not permitted.  

Textbook 
    
  * The required reading is from this free online textbook. I'll expect you to know the material listed above, and will test it on the quizzes. Most of the chapters are: 
    * Online chapters from [Jurafsky and Martin. third edition August 2025 release. _Speech and Language Processing_.](https://web.stanford.edu/~jurafsky/slp3/)



Course Description
    
This course is a broad introduction to LLMs and other algorithms for dealing with text, speech, and networks online, including the tasks of tokenizing, classifying, searching, recommending, and transcribing information. Topics include LLMs themselves as well as logistic regression, information retrieval, collaborative filtering, neural networks, transformers, speech recognition, social networks, safety and bias, and other large language model components, tools, and issues. This class is the broad undergrad intro to numerous grad classes like cs224N/S/U/C/V, cs246, cs276, cs336, and cs329R/X.  

Prerequisites
    
CS106B, Python (at the level of CS106A), CS109 (or equivalent background in probability), and programming maturity and knowledge of UNIX equivalent to CS107 (or taking CS107 or CS1U concurrently). 
###  Required Work 
_From Languages to Information_ is a **flipped class** with much of the material online. Before class I recorded all the lectures (except 5 live lectures), and you can watch them at home. The weekly quizzes and programming homeworks will be automatically uploaded and graded. Lectures are available in the Modules section on [Canvas](https://canvas.stanford.edu/courses/186110). Quizzes and homeworks are on Gradescope and github, but you can find them all on this webpage!!  

Prerecorded Video Lectures
    
Most weeks, we will ask you to watch a set of video lectures (2 to 2.5 hours total). Most videos will have some in-video questions embedded in them, which you should answer. You are required to watch the videos but the embedded quizzes are not counted toward the final grade.  

In-class Lectures
    
5 lectures will be live, and are required (except Week 7 Speech lecture is only Strongly Recommended). For all 5 the material will be on the quizzes.  

Labs
    
There are 5 in-class labs are in which we do group problem-solving activities. The labs are **required** and will be tested on the quizzes, meaning that if you can't make a particular in-person lab, you must still do the exercises at home instead. But Lab 1 and Lab 4 are required to be attended in-class; the other 3 you can do at home. In-person for Labs 2, 3, 5 is worth extra credit.  

Automated Review Quizzes
    
After watching a week's video lectures, we will ask you to answer an open-notes, open-book review quiz (about 5-6 questions) on the content that you just learned. These quizzes are **not timed** , they are **open book** , and they may be attempted an **infinite** number of times. The questions, as well as the options for each question, may change and be randomly selected from a larger pool each time you take a quiz. You will not see your quiz grade/correct answers until after the due date, but the system will take the the score from the **last submission** of all your infinitely-allowed submissions for the quiz. So if you worry you might have got something wrong, just submit another one! Review Quizzes for each week are due 11:59pm Tuesday of the following week **There are no late days for review quizzes.** Because of the strict no-late-day policy, we will drop your lowest scoring quiz (i.e. we will only count your best 8 of the 9 quizzes in your final grade). 
**Can I work with my friends on the quiz?** Yes, you can work with your pair programming partner. But you must each do the problem yourselves, and only then discuss with your partner, and you each submit separately (and you will have to show your own work in the "show your work" section when you upload the quiz answers).  

Class Participation
    
You have to watch all lectures, and attendance for the 5 live lectures is required (except for the Speech lecture, which is only Strongly Recommended). The labs are **required** and we will test material from them on the quizzes, and labs 1 and 4 must be attended in person. However, **attendance** for labs 2,3,4 is only strongly recommended; you may do them yourself at home if you really cannot come to class. **You can get extra credit for class participation and other things by:** Coming to labs 2/3/5 in person; particularly helpful answers on the class Ed forum, helping out other students in office hours or labs, being the first person to find typos in the Jurafsky and Martin textbook (not counting bugs in figure or chapter numbering, since those don't appear in the full book), speaking up in the labs. Plus there will be extra credit problems on some of the labs and possibly PAs.  

Programming Assignments
    
7 Python programming assignments. All are due Fridays at 5pm except the last one, PA7, is due on a Wednesday at 5pm. 
**Programming Assignment Collaboration for PA 1-6:** You may talk to anybody you want about the assignments and bounce ideas off each other. And if you want, you can also choose a partner and do pair programming for PA 1-6. Pair programming has many advantages for learning!!! You and your pair-partner can discuss code, but it's important that each of you work on each part of the assignment so that you're comfortable with the whole assignment, since assignments build on each other (and we will test concepts from the assignments on the quizzes). If you choose to pair-program, you should specify in the submission who your partner is. We will use the normal automatic checks for overlap between your code and other students' code who are not your pair partner. You must describe in your writeup exactly who did what in your code. 
**Programming Assignment Collaboration for PA 7:** PA7 is a group homework that must be done in groups. You will work together with your group, and write code together. Groups must be of size 3 or 4. To work in a group of size 2, you must get special permission from the staff. You cannot work by yourself on PA 7, because part of the goal of this homework is to learn to work on group projects. You must describe in your writeup in detail exactly who in your group did what, and who worked on which parts of the assignment/code.  

Late homeworks
    
You have a total of 4 free late (calendar) days to use on programming assignments 0-6. If you are pair programming, late days are still individual (i.e if one of you has used up late days, and one has not, and you submit a homework late one day, only the student without remaining late days will be penalized). **You cannot use late days on PA 7.** Once late days are exhausted, any PA turned in late will be penalized 20% per late day. Each 24 hours or part thereof that a homework is late uses up one full late day. However, no assignment will be accepted more than four days after its due date.  

Readings
    
This class has a significant amount of textbook reading. Most weeks have around 25 textbook pages. The homeworks and quizzes are based heavily on the readings.  

Final grade computation
    
  * 3% attendance at mandatory lectures and labs 
  * 97% homeworks and quizzes: 
    * 73% of 97%: homeworks (PAs 1-6 are each worth the same, 9% (ignore the different point values for each homework). PA7 is worth 18%, double the others, PA0 is worth 1%.) 
    * 27% of 97%: weekly review quizzes, each identically worth 27%/8, because the lowest quiz is dropped) 



Final letter grades
  
(the numerator will include your extra credit, the denominator does not include possible extra credit (otherwise it wouldn't be extra credit))     
  * A+: It is very easy to get an A in this class but hard to get an A+. For an A+ you must do **all** of the following: 
    * Have perfect scores on all the PAs and quizzes 
    * Have perfect attendance at 10 Tuesday classes (that means all lectures and labs, i.e., even the non-required labs) 
    * Have given at least 5 **substantive** and helpful answers to students on the class Ed forum 
    * Have turned in and gotten credit on extra credit problems on at least 3 of the labs, quizzes, or PAs 
  * A: 93% and above of the total points 
  * A-: 90% and above of the total points 
  * B+: 87% and above of the total points 
  * B: 83% and above of the total points 
  * B-: 80% and above of the total points 
  * C+: 77% and above of the total points 
  * C: 73% and above of the total points 
  * C- (= Credit): 70% and above of the total points 
  * etc. 


* * *
