Weekly Readings/Slides
- Week 1
- How to Think Like a Computer Scientist: General Introduction
- Lecture Slides
- Week 2
- How to Think Like a Computer Scientist: Simple Python Data
- Optional: CSC - Variables
- Lecture Slides
- week2_grade.py Our grade calculation example
- week2_functions.py Some sample functions
- Inverted Lecture Slides
- week2_errors.py Exploring different types of errors
- week2_calories.py Calorie calculation example
- Week 3
- How to Think Like a Computer Scientist: Functions
- Optional: CSC - Functions
- Lecture Slides
- week3_functions.py Practicing the design recipe
- week3_functions.test Test file for can_i_drive
- week3_swap.py Inverted Lecture - Swapping variables
- week3_buggy_scope.py Inverted Lecture - Buggy Scope
- week3_confusion.py Inverted Lecture - Confusing tracing example
- Week 4
- How to Think Like a Computer Scientist: String
- How to Think Like a Computer Scientist: Lists
- How to Think Like a Computer Scientist: Selection
- Optional: CSC - If statements
- Lecture Slides
- week4_lists_and_strings.py Playing with our new data type
- week4_selection.py Solving a problem using different types of if statements
- week4_selection.test Test file for our selection function
- week4_findmax.py Inverted Lecture - Find max example
- week4_findmax.test Inverted Lecture - Find max example
- week4_leapyear.py Inverted Lecture - Leap year example
- week4_leapyear.test Inverted Lecture - Leap year example
- Week 5
- How to Think Like a Computer Scientist: Turtle Graphics
- How to Think Like a Computer Scientist: More About Iteration
- Optional: CSC - Loops
- Lecture Slides
- week5_loops.py Playing with loops
- week5_more_loop_examples.py More fun stuff to do with loops
- week5_loop_comparison.py Comparing the different types of loops
- week5_list_vs_string.py Inverted lecture - Comparing lists and Strings
- week5_calculator.py Inverted lecture - Calculator Example
- week5_calculator.test Inverted lecture - Calculator Example
- Week 6
- How to Think Like a Computer Scientist: Debugging
- How to Think Like a Computer Scientist: Files
- Optional: Wing IDE Debugging Manual
- Lecture Slides
- week6_files_reading.py Reading from files
- week6_files_writing.py Writing to files
- week6_mad_libs.py Mad-Libs game
- week6_memory_model.py Playing with lists in the memory model
- week6_mutation.py Aliasing vs cloning
- week6_cards.py Inverted Lecture - Card games
- Week 7
- How to Think Like a Computer Scientist: Dictionaries
- Lecture Slides
- week7_tuples.py Playing with tuples
- week7_sets.py Playing with sets
- week7_time_comparison.py Comparing time to check membership in lists vs sets
- week7_dicts.py Playing with dicts
- week7_buggy_transcript_1.py Inverted Lecture - Buggy Transcript 0
- week7_buggy_transcript_0.py Inverted Lecture - Buggy Transcript 1
- week7_grades_0.txt Inverted Lecture - Data File
- week7_grades_1.txt Inverted Lecture - Data File
- Week 8
- How to Think Like a Computer Scientist: Classes and Objects: The Basics
- Lecture Slides
- week8_classes_intro.py Playing around with classes, figuring out how they work
- week8_person.py A person class with system methods
- week8_import.py Some code that uses our person class
- week8_lazy_poet_starter.py Inverted Lecture - Starter code for lazy poet
- week8_lazy_poet.py Inverted Lecture - Completed code for lazy poet
- Week 9
- How to Think Like a Computer Scientist: Classes and Objects: Digging a Little Deeper
- Lecture Slides
- Inverted Lecture Slides
- week9_dog_toy.py Dog and Toy Classes - Association
- week9_building.py Building and Room Classes - Composition
- week9_person_inheritance.py Student and Person Classes - Inheritance
- week9_car_dealer.py Inverted Lecture - Car Dealership Classes
- Week 10
- How to Think Like a Computer Scientist: Exceptions
- Lecture Slides
- week10_person.py An improved Person class with better abstraction
- week10_stack1.py An implementation of a Stack
- week10_stack2.py Another implementation of a Stack
- week10_stack3.py Yet another implementation of a Stack
- week10_test_stack.py Some code that uses our stacks and doesn't care which implementation we have
- week10_inheritance.py Inverted Lecture - File Structure Inheritance
- Week 11
- Programs, Information, and People Test Cases
- Programs, Information, and People Debugging
- Optional: Why your code sucks
- Lecture Slides
- week11_exceptions.py Catching Exceptions
- week11_test_stack.py Testing our Improved Stacks
- week11_stack1.py Improved stack v1
- week11_stack2.py Improved stack v2
- week11_stack3.py Improved stack v3
- week11_functions.py Some functions to test
- week11_functions_test.py Example UnitTests
- week11_multi_level_inheritance.py Inverted Lecture - Multi Level Inheritance
- week11_multiple_inheritance.py Inverted Lecture - Multiple Inheritance
- Week 11
- Lecture Slides
- week12_product.py Inverted Lecture - Products