CS 111: Introduction to Computer Science
Winter 2025
Instructors:
- Sections 1 (online) & 2 (MW 12:30pm) - Tom Stephens (email: tstephen@cs.byu.edu)
- Office Hours: Schedule a time: https://calendly.com/byu-cs-tstephen/office-hours
- Sections 3 (MW 9:30am) & 4 (MW 11:00am) - Steve Richardson (email: srichardson@byu.edu)
- Office Hours: 2:00pm-4:00pm Tuesdays and Thursdays in 3372 TMCB, or by appointment (send me an email)
- Section 5 (MW 2:00pm) - Nancy Fulda (email: nfulda@cs.byu.edu)
- Office Hours: ??? in 2218 TMCB, or by appointment
- Section 16 (TTh 4:00pm) - Bruce Hansen (email: Bruce.Hansen@byu.edu)
- Section 17 (MW 5:30pm) - Andrew Cluff (email: Andrew_Cluff@byu.edu)
- Section 18 (T 5:15pm SLC) - Bryce Perkins (email: brycej.perkins+byu@gmail.com)
- Section 20 (MWF 8:00am) - Steven Giles (email: Steven.Giles@byu.edu)
Due Dates may not reflect your SectionThis schedule is approximate and dates may shift slightly as the semester goes on.
Additionally, it is schedule for the MW lectures and TTh lab sessions. If your lab or lecture section is a different day, some of the deadlines will be different.
Refer to Canvas for your exact dates.
Week's Lecture Topics & Slides | Date | Related Readings | Lab Links | Homework & Project Due Dates / Test Dates |
---|---|---|---|---|
Week 1 | ||||
Mon Jan 6 |
||||
Tue Jan 7 |
||||
|
Wed Jan 8 |
First day of classes. | ||
Thur Jan 9 |
Getting Started Python Environments |
Lab 00: Getting Started & Python Setup | ||
Fri Jan 10 |
Things As They Really Are 2.0 |
Canvas Quiz: CS111 or CS110? Readiness Self-Assessment | ||
Week 2 | ||||
Mon Jan 13 |
Introduction Standard Types Operators Input Files Formatting Text |
|||
Tue Jan 14 |
Lab 01: Basic Python, Booleans, Conditionals, & Console I/O | |||
Wed Jan 15 |
Defining Functions Built-in Functions More on Lists Loops |
University Add/Drop Deadline | Homework 0: Pizza! | |
Thur Jan 16 |
Lab 02: Functions, While loops, & File I/O | |||
Fri Jan 17 |
||||
Week 3 | ||||
Mon Jan 20 |
Martin Luther King Holiday | |||
Tue Jan 21 |
Programming Environment Passoff | |||
Wed Jan 22 |
Strings and Slicing Ranges List Comprehensions |
Programming Environment Passoff | ||
Thur Jan 23 |
Lab 03: For loops, Strings, & Comprehensions | |||
Fri Jan 24 |
||||
Week 4 | ||||
Mon Jan 27 |
Scopes Python Tutor VS Code Debugging PyCharm Debugging |
|||
Tue Jan 28 |
Lab 04: Debugging | |||
Wed Jan 29 |
Pytest Doctests |
Homework 1: College Admissions Algorithms | ||
Thur Jan 30 |
Lab 05: Computational Thinking | |||
Fri Jan 31 |
||||
Week 5 | ||||
Mon Feb 3 |
Tuples Dictionaries Overview Dictionary Methods Exceptions |
|||
Tue Feb 4 |
Lab 06: Testing | |||
Wed Feb 5 |
Iterators Generators More on Generators |
Project 0: Grade Calculator | ||
Thur Feb 6 |
Lab 07: Exceptions | |||
Fri Feb 7 |
||||
Week 6 | ||||
Mon Feb 10 |
Take Midterm 1 in the Testing Center |
|||
Tue Feb 11 |
Lab 08: Picture Puzzles & Filters | Take Midterm 1 in the Testing Center |
||
Wed Feb 12 |
Command Line Arguments Explanation of Classes Classes Overview |
Homework 2: Image Manipulation Take Midterm 1 in the Testing Center |
||
Thur Feb 13 |
Lab 09: Command Line Arguments | Take Midterm 1 in the Testing Center - $5 late fee |
||
Fri Feb 14 |
Free Coding Project Proposal Due | |||
Week 7 | ||||
Mon Feb 17 |
President's Day Holiday | |||
Tue Feb 18 |
Monday Instruction Day - Go to Monday classes! | |||
Wed Feb 19 |
Modules Dunder Methods Inheritance |
Project 1: Image Processor | ||
Thur Feb 20 |
Lab 10: Classes | |||
Fri Feb 21 |
||||
Week 8 | ||||
Mon Feb 24 |
Higher Order Functions |
|||
Tue Feb 25 |
Lab 11: Starting the Grid class | |||
Wed Feb 26 |
Lambda Functions |
Homework 3: The Grid Class | ||
Thur Feb 27 |
Lab 12: Functional Programming | |||
Fri Feb 28 |
||||
Week 9 | ||||
Mon Mar 3 |
Mutability |
|||
Tue Mar 4 |
Lab 13: Higher Order Functions | |||
Wed Mar 5 |
Intro To Recursion Khanacademy Recursion Python Tutor Comparing Iteration with Recursion |
Homework 4: The Sand Class | ||
Thur Mar 6 |
Lab 14: Recursion | |||
Fri Mar 7 |
||||
Week 10 | ||||
Mon Mar 10 |
Linked Lists |
|||
Tue Mar 11 |
Lab 15: Linked List | |||
Wed Mar 12 |
Visualizing Mergesort Mergesort |
Project 2: Sand | ||
Thur Mar 13 |
Lab 16: Trees | |||
Fri Mar 14 |
||||
Week 11 | ||||
Mon Mar 17 |
Intro to Trees |
|||
Tue Mar 18 |
Midterm Review | |||
Wed Mar 19 |
Homework 5: Merge sort | |||
Thur Mar 20 |
Lab 17: Parsing | |||
Fri Mar 21 |
Spring Break Day | |||
Week 12 | ||||
Mon Mar 24 |
RegExr Regex101 W3Schools Regex Regex Python Docs |
Take Midterm 2 in the Testing Center | ||
Tue Mar 25 |
Lab 18: Regular Expressions | Take Midterm 2 in the Testing Center | ||
Wed Mar 26 |
Big O Notation Big O Guide |
Homework 6: Parsing Take Midterm 2 in the Testing Center |
||
Thur Mar 27 |
Project 3 Work Lab | Take Midterm 2 in the Testing Center - $5 late fee | ||
Fri Mar 28 |
Free Coding Project Pass-off Deadline | |||
Week 13 | ||||
Mon Mar 31 |
How the web works HTML |
|||
Tue Apr 1 |
Lab 19: HTML & Web Fundamentals | |||
Wed Apr 2 |
Requests Beautiful Soup Docs |
Project 3: Calculator Interpreter | ||
Thur Apr 3 |
Lab 20: Using Beautiful Soup | University Withdrawal Deadline | ||
Fri Apr 4 |
||||
Week 14 | ||||
Mon Apr 7 |
Urllib Robots.txt Files |
|||
Tue Apr 8 |
Lab 21: URLlib | |||
Wed Apr 9 |
Homework 7 - Robots | |||
Thur Apr 10 |
Lab 22: Web crawl Scavenger hunt | |||
Fri Apr 11 |
||||
Week 15 | ||||
Mon Apr 14 |
Matplotlib Matplotlib Quick Start Docs |
|||
Tue Apr 15 |
Lab 23: Plotting | |||
Wed Apr 16 |
Last day of classes. Deadline for all late assignments. |
|
||
Thur Apr 17 |
Exam Preparation Day | |||
Fri Apr 18 |
Final exam in Testing Center | |||
Sat Apr 14 |
||||
Week 16 | ||||
Mon Apr 21 |
Final exam in Testing Center | |||
Tue Apr 22 |
||||
Wed Apr 23 |
||||
Thur Apr 24 |
School's out - Go home for the Summer!! |