Lectures & Readings
All lectures are audio recorded and can be found here.
Week 0. Introduction to Computing
- Fri, Jan 4, 2019 [Lecture Slides] Problem solving, algorithms, comments and output
- Example: Motivational Quote Generator
Week 1. Chatbots with Personality
- Mon, Jan 7, 2019 [Lecture Slides] Variables, naming, concatenation, input (first example only), lists, modules
- Example: Greetings Bot
- Wed, Jan 9, 2019 [Lecture Slides] Conditionals (if/else) (if only), boolean statements
- Examples: How's it Going Bot, Horoscope Bot
- Exercise 1 (due on Jan. 10 via Coursys) Chatbot with Personality
- Fri, Jan 11, 2019 [Lecture Slides] More on Booleans, Software Engineering, Mock Exam (no readings)
- Examples: Fortune Cookie Generator, CoffeeBot
Week 2. Chatbots with Personality
- Mon, Jan 14, 2019 [Lecture Slides] Syntax and semantic error types, string methods (except 9.5.1), in keyword for lists and strings
- Example: Food Bot
- Wed, Jan 16, 2019 [Lecture Slides] Chaining, for loops, lists from input, Integer datatype, addition
- Examples: Mind Reader Game, Nosy Question Bot
- Exercise 2 (due on Jan. 17 via Coursys) Chatbot with a Loop
- Fri, Jan 18, 2019 [Lecture Slides] Mock Exam
- Examples: New Year's Bot, Star Wars Bot
Week 3. You Might Also Like...
- Mon, Jan 21, 2019 [Lecture Slides] Arithmetic, loops with range, string/int/float data types, more on accumulators
- Wed, Jan 23, 2019 [Lecture Slides] Type conversion, list length, more on arithmetic
- Examples: Chip Rater App, City Bliss Evaluator, Weight Calculator
- [Exercise 3] (due on Jan. 24 at 10pm via Coursys) Calculate this, Computer
- Fri, Jan 25, 2019 [Lecture Slides] Mock Exam
- Examples: Age in 2049, Olympic Judging, McDoland's
Week 4. You Might Also Like...
- Mon, Jan 28, 2019 [Lecture Slides] Working with data files, reading files, splitting strings into lists, indexing/accessing elements in lists, comparison operators
- Examples: SFU Favourite Spots using Survey Data
- Wed, Jan 30, 2019 [Lecture Slides] Algorithms: Comparing lists, similarity measures, nested loops
- Examples: Comparing favourite movies, Similar People Finder
- [Exercise 4] (due on Jan 31 at 10pm via Coursys) Comparing Things
- Fri, Feb 1, 2019 [Lecture Slides] Mock Exam
- Examples: Parent Bot, Similar Hobby Finder
Week 5. Review and Midterm 1
- Mon, Feb 4, 2019 [Review document]
- Wed, Feb 6, 2019 [Midterm 1: Theory and Understanding] (bring a pencil) - in AQ 3182
- Fri, Feb 8, 2019 [Midterm 1: Coding] (bring a laptop) - see class e-mail for room assignment
Week 6. Under the Hood + Graphics and Animation
- Mon, Feb 11, 2019 [Lecture slides] Binary, ASCII, Bytes (p. 41-43, 47), string indexing, exponents
- Example: Binary to Decimal Converter
- Wed, Feb 13, 2019 [Lecture slides] Turtle module, functions and parameters, functions with Turtle, more Turtle methods, Turtle tutorials (all pages), while loop, while for input
- Examples: Interactive Drawing Turtle, Drawing a Cookie
- [Exercise 5] (due on Feb 21 at 10pm via Coursys) Interactive Drawing / Animation
- Fri, Feb 15, 2019 [Lecture slides] Unicode (pg. 47), local variables, Mock Exam
Week 7. Graphics and Animation
- Feb 25, 2019 [Lecture slides] Recursion, visualizing recursion, Three laws of recursion, dictionaries
- Examples: Recursive Tree Challenge, English<>French Translator
- Feb 27, 2019 [Lecture slides] Recursion (cont'd), fruitful functions
- Examples: Simpler recursive tree, Fruitful function examples, Sum function, Palindrome with Fruitful function
- [Exercise 6] (Due Feb 28 at 10pm via Coursys) Recursion, fruitful functions, dictionaries
- Feb 29, 2019 [Lecture slides] Substrings, while for input, list concatenation, Mock Exam
- Examples: Validating input with While, Places to Visit, Substring examples
Week 8. Computer Vision
- Mar 4, 2019 [Lecture Slides] PIL package, from... import, 2D iteration and RGB pixel representations (theory only, the code may not work on repl.it), tuples, tuples as return values, more on fruitful functions. More examples and resources.
- Examples: Combining Images with Green Screen [Downloads: kid-green.jpg beach.jpg]
- Mar 6, 2019 [Lecture slides] Nested loops (cont'd), Making Modules (6.0, 6.1.0, 6.3-6.4.1 only)
- Examples: Combining Images (cont'd), Cool Colours Module
- [Exercise 7] (Due Mar 7 at 10pm via Coursys) Image Magic
- Mar 8, 2019 [Lecture slides] Mock Exam
- Examples: Recursion with print, Writing a Function with Tuple
Week 9. Computer Vision
- Mar 11, 2019 [Lecture slides] Append, String Formatting for Output, more problem solving strategies
- Examples: Jellybean Counter
- Mar 13, 2019 [Lecture slides] Efficiency, time function in time module, epoch (computing)
- Examples: Jellybean Counter with Timer
- [Exercise 8] (Due Mar 14 at 10pm via Coursys) Image Understanding
- Mar 15, 2019 [Lecture slides] Mock exam
Week 10. Review and Midterm 2
- Mar 18, 2019 [Review document]
- Mar 20, 2019 Midterm 2: Theory and Understanding
- Mar 22, 2019 [Midterm 2: Coding]
Week 11. Internet and Big Data
- Mar 25, 2019 [Lecture slides] Linear Search, Sorting, Selection Sort, Swapping list elements, Range Function (advanced)
- Examples: Sorting Cards
- Mar 27, 2019 [Lecture slides] Binary Search, Algorithm analysis, Big-O Notation, Analysis of: Linear Search, Selection Sort, Binary Search
- [Exercise 9] (Due Apr 4 at 10pm via Coursys) Smart Music Bot
- Mar 29, 2019 [Lecture slides] Final exam information, midterm answers review (theory), mock exam
Week 12. Recursion and Python Beyond the Browser
- Apr 1, 2019 [Lecture slides] Fruitful recursion: Summation example, Fibonacci example, Binary search analysis proof
- Apr 3, 2019 [Lecture slides] Remainder (modulo), converting base using fruitful recursion, Python beyond the browser
- Apr 5, 2019 [Lecture slides] Midterm answers review (coding), mock exam
Week 13. Course Review
- Apr 8, 2019 [Lecture slides] Final review document
Week 14. Final [Instruction Slides]
See you on April 15th at the final!
The final exam is scheduled for April 15th from 8:30am-11:30am. Remember to bring your charged laptop, a pencil and SFU ID. No cheatsheets are permitted.
Please report to the following locations, depending on your last name (for both D100 and D200):
- Last name begins with A-M: Report to C9001
- Last name begins with N-Z: Report to CSIL (ASB 9838N, ASB 9840, ASB 9804)
For those in CSIL, you will be asked to use the PC computers to submit the coding portion of the test (but bring your laptop as back-up, just in case). While the setup is quite comfortable, you may wish to try logging onto the PCs and Coursys beforehand to avoid any issues on the day of the final.