Materials
Course Resources
- Course Policies
- Textbook: Problem Solving with Algorithms and Data Structures using Python, 3rd edition, by Bradley N. Miller, David L. Ranum, Roman Yasinovskyy
- Textbook videos by Garry Jenkins [YouTube]
- Making Backups
- Installing Bash on Windows
- Installing Miniconda Python3
- Installing and using VS Code
- Turning in Work to our course server
- Taking Notes in a text editor using Markdown
- Videos of some classroom presentations
- Zoom: https://us02web.zoom.us/j/3975309786?pwd=WWVKSUxRTnZrYzQ5ekN0S1B0elE2dz09
Unit 0 - Orientation
- Discussion notes: Unit 0
- Encapsulation and Binary
- Organizing Files
- Files and Folders
- Navigating with the Command Line
Unit 1 - Python Bootcamp
- Discussion notes: Unit 1
- Daily Programming Problems: Show/hide problems
- Activity - Guessing Game, a variation, and the variation commented
- sowpods.txt (2.7MB file, download with ctrl-click or right-click)
- Activity-Zipf's Law
- AliceInWonderland.txt
- AliceInWonderland-words.txt
- Project: Wardrobe [PDF]
- Object-Oriented Programming in Python, part 1
- Object-Oriented Programming in Python, part 2
Unit 2 - Algorithm Analysis; Big O-Notation
- Discussion notes: Unit 2
- Daily Programming Problems: Show/hide problems
- anagram_runner.py - a Runner to use with your anagram.py module containing a boolean areAnagrams(word1, word2) function
Unit 3 - Recursion
- Discussion notes: Unit 3
- Daily Programming Problems: Show/hide problems
- recursive_loop
- recursive_sum
- recursive_factorial
- recursive_fibonacci
- turtle_basics
- turtle_recursion
- recursive_tree, template, walkthrough [YouTube]
- towers_of_hanoi
- Recursive Maze Solver maze.zip
- coding_bat.zip - Six recursion activities in Python, adapted from codingbat.org, with testers included
Unit 4 - Linear Data Structures
- Discussion notes: Unit 4
- Daily Programming Problems: Show/hide problems
- Stack class, stack_tester.py
- paren_checker, paren_tester.py
- html_parser.zip
- Documents Stack
- Queue class
- hot_potato
- london_bridge
- Deque class
- palindrome_checker
- atds_tester.py (tests the Stack, Queue, and Deque classes)
- Node class
- UnorderedList class, UnorderedList class tester
- UnorderedList exercises
- Workday
- Activity: The Stack class [PDF]
- Activity: The Queue class [PDF]
- Workflow: Intro to git
- Workflow: Intro to GitHub
- Activity: Stack Comparison [PDF]
- Southern CA Linux Expo!
- Related: Open Source
- Related: Attending Conferences
Unit 5 - Sorting, Searching, and Hashing
- Discussion notes: Unit 5
- Daily Programming Problems: Show/hide problems
- Activity: Pi Day
- Introduction to Sorting: What's the Fastest Way to Alphabetize Your Bookshelf? [KQED, YouTube video]
- 15 Sorting Algorithms in Six Minutes
- Project: Sorting Algorithm Analysis [PDF], Linearizing your Sorting time graph [YouTube], Logarithms & Comp Sci (including how to use
matplotlib
to have your Python program create graphs) - Hash Tables [CS50, YouTube video]
- Project: Elevator
Unit 6 - Trees
- Discussion notes: Unit 6
- Daily Programming Problems: Show/hide problems
- Back from Spring Break: workday, Template
- binary_tree_list, binary_tree_list_tester.py
- binary_tree_class, binary_tree_class_tester.py
- create_this_tree, create_this_tree.py
- parse_tree, parse_tree_template.py
- binary_traversal_demo
- prettyprint
- binary_heap, binary_heap-template.py, binary_heap-tester.py
- binary_search_tree, Reading (7.11 - 7.14), binary_search_tree-template.py
- binary_search_tree_mods
- map_performance, map_performance.py demo
- Video Lectures: Binary Tree class
- Activity: MaxHeap
- Reference: Using matplotlib to graph data in Python
- Steve Jobs at D8
Unit 7 - Graphs
- Discussion notes: Unit 7
- Daily Programming Problems: Show/hide problems
Projects
- Final, Independent Project
- README.TXT examples (.zip download), including what_is_a_readme_file.txt
- json_demo.py
- openweather_app.py (RW's version)
Other
- Matrix Transforms [YouTube, 7 min]