Syllabus

These are the topics we covered at each lecture. The readings labeled text are from the text How to Think Like a Computer Scientist: Learning with Python 3 Documentation, by Wentworth, Elkner, Downey, and Meyer. The readings labeled text2 are from the text Linux Command Line: A Complete Introduction, by Schott.

lec date topic reading due
1. Mon, Jan 7 Course introduction, how to write a program text, §1  
2. Wed, Jan 9 Variables, expressions, exceptions text, §2  
3. Fri, Jan 11 Basic graphics; for loops text, §3.1, 3.4.1  
  Discussion Linux file system    
4. Mon, Jan 14 Conditionals, iterations text, §3  
5. Wed, Jan 16 Functions, refactoring code text, §4.1–4.4  
6. Fri, Jan 18 Scope, printing   Homework 1
  Discussion Linux shells    
  Mon, Jan 21 University holiday: Martin Luther King, Jr. Day    
7. Wed, Jan 23 Putting a program together: simulation    
8. Fri, Jan 25 Conditions, iterations, exception handling text, §3.2, 4.14, 12  
  Discussion Linux processes    
9. Mon, Jan 28 Linux, exception handling text, §12; text2, §1–4  
10. Wed, Jan 30 Sequences, strings text, §5.1  
11. Fri, Feb 1 Strings, lists text, §5.2–5.3
  Discussion Review for midterm    
12. Mon, Feb 4 Recursion text, §10 Homework 2
13. Wed, Feb 6 midterm examination    
14. Fri, Feb 8 Recursion text, §10  
  Discussion Linux shell wildcards, utilities    
15. Mon, Feb 11 More recursion; searching; timing execution    
16. Wed, Feb 13 Character representation, files text, §7  
17. Fri, Feb 15 Dictionaries text, §5.4 Homework 3
  Discussion More Linux utilities    
  Mon, Feb 18 University holiday: President’ Day    
18. Wed, Feb 20 Modules, namespaces, searching text, §8  
19. Fri, Feb 22 Binary search, putting a program together text, §8  
  Discussion Linux shell programming    
20. Mon, Feb 25 Sorting    
21. Wed, Feb 27 Sorting, pattern matching    
22. Fri, Mar 1 Regular expressions, pattern matching text, §9.2  
  Discussion More Linux shell programming    
23. Mon, Mar 4 Miscellaneous; classes and objects text, §9.2, 11.1 Homework 4
24. Wed, Mar 6 Linux shell patterns text2, §4  
25. Fri, Mar 8 Review of sorting, more classes and objects text, §11.1–11.2  
  Discussion More shell programming    
26. Mon, Mar 11 More classes and objects text, §11.3–11.4  
27. Wed, Mar 13 Overloading operators, copying, inheritance text, §11.3–11.5  
28. Fri, Mar 15 Multiple inheritance   Homework 5
  Discussion Review for final    
  Thu, Mar 21 final examination (1:00pm–3:00pm)    

You can also obtain a PDF version of this. Version of March 16, 2019 at 12:32AM