CSCI 050 PO: Fundamentals of Computer Programming

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:

Course Details

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.

Course Personnel

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:

Course Schedule

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

Other Resources

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: