CS 111: Introduction to Computer Science

Spring 2024

Instructor: Michael Reynolds

Please message me on Microsoft Teams (mtr26@byu.edu) using your BYU account or message me on Discord (michaeltreynolds).

You can also book time with me: https://calendly.com/mtr26

Course Discord

Date Lecture Textbook Lab Links Homework & Project Due Dates
Week 1
Mon
Apr 29
Tue
Apr 30
Welcome!
Basic Python Syntax
Lab 00: Getting Started
Lab 01: Python Setup
Self Assessment - Canvas Quiz
Wed
May 1
Conditionals, Loops, Lists, & Files Lab 02: Variables, Functions, and Control
Thur
May 2
Strings, Slicing, Ranges, & Comprehensions
Environments, Tuples, Dictionaries, & Incremental Development
Lab 03: Functions Lists, & File I/O Homework 1: College Admissions Algorithms
Fri
May 3
Iterators & Generators Lab 04: Debugging Python Programming Checklist
Week 2
Mon
May 6
Tue
May 7
Libraries and Images
Abstraction & Naming
Lab 05: Picture Puzzles & Filters Homework 2: Image Manipulation
Wed
May 8
Command-line arguments & Errors Lab 06: Command Line Arguments Project 1: Image Processor
Thur
May 9
Classes
More Classes
Lab 07: Classes
Fri
May 10
Dunder Functions & Random numbers Lab 08: Starting the Grid class
Week 3
Mon
May 13
Tue
May 14
Exceptions & Decomposition Lab 09: Exceptions
Wed
May 15
Functional Programming
& Higher-order Functions
Lab 10: Functional Programming Homework 3: The Grid Class
Project 2A: Falling Sand
Thur
May 16
Composition, Lambdas, & Decorators Lab 11: Higher Order Functions Homework 4: The Sand Class
Project 2B: Falling Sand
Fri
May 17
Mutability
Testing
Lab 12: Testing Midterm 1 Opens
Week 4
Mon
May 20
Midterm 1 Closes
Tue
May 21
Recursion Lab 13: Recursion
Wed
May 22
Recursion & Linked Lists Lab 14: Linked List
Thur
May 23
Tree Recursion
Tree Recursion & Mergesort
QA/Help with Recursion Homework 5: Merge sort
Fri
May 24
Trees Lab 15: Trees
Week 5
Mon
May 27
No Class - Memorial Day
Tue
May 28
Calculator language & Language Syntax Lab 16: Parsing
Wed
May 29
Langauge Parsing & Evaluation QA/Help with Homework 6 and Project 3 Homework 6: Parsing
Thur
May 30
Regular Expressions Lab 17: Regular Expressions Project 3: Calculator Interpreter
Fri
May 31
Intro to the World Wide Web & HTML Lab 18: HTML & Web Fundamentals Midterm 2 Opens
Week 6
Mon
Jun 3
Midterm 2 Closes
Tue
June 4
Requests & Beautiful Soup Libraries Lab 19: Using Beautiful Soup
Wed
Jun 5
Hyperlinks
Data Scraping - Robots and Tags
Lab 20: Url Structure and Library
Thur
Jun 6
More Data Scraping - Tables and Images Lab 21: Web crawl Scavenger hunt Homework 7 - Robots
Fri
Jun 7
Data Visualization Lab 22: Plotting
Week 7
Mon
Jun 10
Tue
Jun 11
Efficiency QA Project 4: Web Crawler
Wed
Jun 12
Machine Learning QA Project 4: Web Crawler Project 4: Web Crawler
Thur
Jun 13
Cryptography Extra Credit Ideas Discussion
Fri
Jun 14
Iterview Prep, QA, or Extra Credit: Free Coding Project
Conclusion
TA Choice
Week 8
Mon
Jun 17
Tue
Jun 18
Exam Prep Day
Wed
Jun 19
Juneteenth
Thur
Jun 20
Finals Final Opens
Fri
Jun 21
Finals Final Closes