This course is an 8-week introduction to computer programming using the Python programming language. Each week is built around in-class exercises (on pen and paper) meant to teach concepts and a take-home assignment which will solidify the key skills of:
This course meets twice weekly (on Tuesdays and Thursdays) in Edmunds 114 until fall break, and each meeting will have a brief quiz called a check-in. Each student will also be assigned a learning community of roughly 5 students with a dedicated TA and mandatory weekly meeting time sometime on Thursday or Friday. Assignments will be always be given out on Tuesdays and will be due the following Tuesday night.
Laptops or tablets are not necessary for the Tuesday and Thursday lectures, much of which will take place on pencil and paper. Lecture notes will be provided on the course website. Each exercise will only require writing a few dozen words, but in case you have difficulty writing by hand you are allowed to bring electronics; even so, please use them only during exercises. Audio recorders or other note-taking aides are allowed.
Course Q&A and announcements will be on a dedicated Slack channel: #csci-050-po-2526-fa. We will use Gradescope for turning in assignments.
The grading breakdown is as follows:
Retakes: Any check-in grade can be improved by an oral retake during office hours. The in-class exam grade can be improved on October 16 during the normal class period for your section.
The instructor of CS50 is Prof. Osborn (he/they). I look like this:
You can find me in Edmunds 110 (my lab) or Edmunds 113 (my office) most of the time. You can specifically find me during my office hours, which are Tuesdays and Wednesdays 10:00am-12:00pm in Edmunds 113. I'm happy to discuss course content, retro videogames, progress through the CS major, my hopes to coach a competitive Pomona Splatoon 3 team, or anything of interest to you.
We have six TAs for CS50:
Week | Date | Lecture Notes | Check-in | Assignment |
---|---|---|---|---|
Week 1 | 8/26 | Values, expressions, and variables | Recap of values and expressions | Your First Function (due 9/2 end of day) |
8/28 | Tuples and Functions | Expressions, recap of variables and functions | ||
Week 2 | 9/2 | Booleans and Conditionals | Functions, recap of booleans and conditionals | Picking and Choosing (due 9/9 end of day) |
9/4 | From Functions to Programs | Variables, functions | ||
Week 3 | 9/9 | Loops | Conditionals | Credit Cards (due 9/16 end of day) |
9/11 | Building Up Solutions | Loops | ||
Week 4 | 9/16 | String Processing | Loops and functions | Text Processing (due 9/23 end of day) |
9/18 | Files and Errors | String processing | ||
Week 5 | 9/23 | Lists | Files | Movie Hangman (due 9/30 end of day) |
9/25 | Building and Breaking Down Lists | Lists, loops | ||
Week 6 | 9/30 | Dictionaries | Functions, variables | Review Sentiment Analysis (due 10/7 end of day) |
10/2 | Modeling Problems | Dictionaries | ||
Week 7 | 10/7 | Wrap-Up | DIY Check-In | study guide |
10/9 | In-class Exam |
Prof. Papoutsaki has developed a brief guide to Python syntax for CSCI 051 PO, which you may find helpful as a quick reference.
The course notes should stand on their own; but if you prefer to read a book, these are pretty good ones and are freely available online: