Announcements
Course Info
Welcome to CS91R. Despite modern computers being largely driven by graphical interfaces, text-based user-interfaces---programs that get their input via human-readable text and provide their output via human-readable text---are incredibly powerful and pervasive. With the rise of large language models, the notion of commanding computers with natural language seems groundbreaking; however, computer scientists have long employed structured text that lives somewhere between general-purpose programming languages (e.g., C++ or Python) and natural languages (e.g., English or Chinese). This course will empower students to design, implement, and critique text-driven computer programs. Topics like the command-line (e.g., shells, redirection, pipes), scripting, scraping, text parsing & understanding, information retrieval, prompt engineering, searching with regular expressions, semi-structured data formats (e.g. HTML, XML, JSON), and other data formats will be covered. Students will learn how to prototype text-heavy applications with real-world data.
External links
Meeting Times
Class/Lab | Day | Time | Room | Instructor |
---|---|---|---|---|
Class |
Mon, Wed |
9:00am - 10:15am |
Singer 34/35 |
Keith and Rich |
Lab A |
Thu |
1:05pm - 2:35pm |
Science Center 256 |
Keith |
Lab B |
Thu |
1:05pm - 2:35pm |
Science Center 240 |
Rich |
Lab C |
Thu |
2:45pm - 4:15pm |
Science Center 240 |
Rich |
Office Hours
Name | Office Hours | Location |
---|---|---|
M 1:15pm-2:45pm; W 2:30pm-4:00pm |
SCI 251 |
|
M 10:30-11:30am; W 1:15-2:15pm |
SCI 205C |
Textbooks
-
Efficient Linux at the Command Line by Daniel J. Barrett. O’Reilly Media, Inc.
-
The Linux Command Line by William Shotts.
-
Speech and Language Processing (3rd ed. draft) by Jurafsky and Martin.
-
The AWK Programming Language (1st Edition) by Aho, Kernighan and Weinberger.
See the Schedule for each week’s reading assignment.
Here are a few other useful online resources:
Course Goals
By the end of the course, we hope that you will have developed the following skills:
-
Understand the utility of text-based user interfaces.
-
Design and critique text-intensive programs.
-
Master the command-line making use of common UNIX utilities, pipes and redirection.
-
Use scripting languages like
bash
,python
, andawk
to automate computational tasks. -
Search and process text using tools such as parsers and regular expressions.
-
Store and process data in semi-structured data formats (e.g., HTML, XML, JSON).
-
Implement common text processing and information retrieval algorithms.
-
Effectively navigate, critique and design Application Program Interfaces (APIs).
Schedule
WEEK | DAY | ANNOUNCEMENTS | TOPIC & READING | LABS |
1 | Jan 22 | Course Introduction
| Lab 0 | |
2 | Jan 27 | UNIX|REGEX
| Lab 1 | |
Jan 29 | ||||
3 | Feb 03 | Counting & Shells
| Lab 2 | |
Feb 05 | QUIZ 1 | |||
4 | Feb 10 | Unigrams, Bigrams, and Codes
| Lab 3 | |
Feb 12 | ||||
5 | Feb 17 | Guest lecture: Joe Wicentowski | Sentences & XML
| Lab 4 |
Feb 19 | QUIZ 2 | |||
6 | Feb 24 | Text-based User Interfaces
| no lab | |
Feb 26 | ||||
7 | Mar 03 | TUI part 2
| Lab 5 | |
Mar 05 | QUIZ 3 | |||
Mar 10 | Spring Break | |||
Mar 12 | ||||
8 | Mar 17 | Scraping
| Lab 6 | |
Mar 19 | ||||
9 | Mar 24 | Scripting
| Lab 7 | |
Mar 26 | QUIZ 4 | |||
10 | Mar 31 | Visualization
| Lab 8 | |
Apr 02 | ||||
11 | Apr 07 | Word Vectors
| Lab 9 | |
Apr 09 | QUIZ 5 | |||
12 | Apr 14 | Norvig
| Lab 10 | |
Apr 16 | ||||
13 | Apr 21 | Interactive Fiction
| Lab 11 | |
Apr 23 | QUIZ 6 | |||
14 | Apr 28 | Generation
| Lab 12 | |
Apr 30 | ||||
May 17 | Final meeting somewhere around here |