231
Write useful programs demonstrating mastery of resources, practices, and modules used by successful Python programmers (SLOs). Use the official documentation. See the course policies. The instructor is Aaron Brick. Our section and CRN are 001/77309. More detail will appear below as time passes.
8/17 – 8/23
2642
Welcome & Server See Course policies & Instructor’s Notes #1.
8/24 – 8/30
2643
Comprehensions See Mary Rose Cook’s A practical introduction to functional programming & Video briefing & Instructor’s Notes #2. Write a program only one statement long (it can span multiple lines) that prints the number of palindromes in /users/abrick/resources/english due 8/30.
8/31 – 9/6
2644
Functional model See A. M. Kuchling’s Functional Programming HOWTO & Carlos Balderas’s Iterating With Python Lambdas & Video briefing & Instructor’s Notes #3. Write a program one statement long that displays the curvature of a sinusoid on the terminal & peer review due 9/6.
9/7 – 9/13
2645
Generators I See Dan Bader’s Generator Expressions in Python: An Introduction & Video briefing & Instructor’s Notes #4. Write a program that demonstrates a generator yielding one timestamp at a time from /etc/httpd/logs/access_log & peer review due 9/13.
9/14 – 9/20
2646
Generators II See Jeff Knupp’s Improve Your Python: `yield’ and Generators Explained & Video briefing & Instructor’s Notes #5. Write a program to lazily rewrap text from the filename passed so that it fits an 80 column window without breaking any words. Use a generator that yields the next lines of text, each containing as many words as possible & peer review due 9/20.
9/21 – 9/27
2647
Time See Basic date and time types & Video briefing & Instructor’s Notes #6. Demonstrate the use of a generator that indicates for each event in access_log the number of seconds elapsed since the most recent midnight & peer review due 9/27.
9/28 – 10/4
2648
Debugging See Lisa Tagliaferri’s How To Use the Python Debugger & Video briefing & Instructor’s Notes #7. Debug /users/abrick/resources/war-buggy.py using the interactive debugger and send in the correctly working program. Do not alter its functionality other than fixing bugs, but do add comments pointing out and explaining your changes & peer review due 10/4.
10/5 – 10/11
2649
Testing See Mike’s Python 3 Testing: An Intro to unittest & Video briefing & Instructor’s Notes #8. Use unittest.TestCase methods to confirm that the addition and subtraction of date and timedelta objects produce correct results & peer review due 10/11.
10/12 – 10/18
2650
Decorators See Akshar’s Understanding ’*’, ’*args’, ’**’ and ’**kwargs’ & Real Python’s Primer on Python Decorators & Video briefing & Instructor’s Notes #9. Decorate print() such that (A) it refuses to print anything under ten characters long and (B) only five calls are allowed, and demonstrate these restrictions when the program is run & peer review due 10/18.
10/19 – 10/25
2651
Profiling See Marco Bonzanini’s My Python Code is Slow? Tips for Profiling & Video briefing & Instructor’s Notes #10. Implement two algorithms which demonstrably reach the same conclusion and use profile or cProfile to time them both & peer review due 10/25.
10/26 – 11/1
2652
Web service Homework & peer review due 11/1.
11/2 – 11/8
2653
CPython Homework & peer review due 11/8.
11/9 – 11/15
2654
Concurrency Homework & peer review due 11/15.
11/16 – 11/22
2655
Persistent stores Homework & peer review due 11/22.
11/23 – 11/29
2656
Packages Homework & peer review due 11/29.
11/30 – 12/6
2657
Translation Homework & peer review due 12/6.
12/7 – 12/13
2658
Transformation Peer review due 12/13.