Computer Programming II
The follow-up to Computer Programming I, covering file handling, object-oriented programming, testing, databases and web APIs in Python.
- Semester
- Spring semester
- Level
- Undergraduate
- Length
- 16 weeks
Course aims
To enable students to write modular, object-oriented and tested programs, and to build applications that work with files, databases and web services.
Learning outcomes
Students who complete this course will be able to:
- Develops programs that read and write text, CSV and JSON files.
- Designs object-oriented code using classes, inheritance and polymorphism.
- Writes unit tests and handles errors correctly.
- Builds applications that fetch and process data from SQLite and web APIs, and implements actuarial calculations.
Assessment
| Component | Weight |
|---|---|
| Midterm exam (week 8) | 40% |
| Final exam (week 16) | 60% |
Resources
- Eric Matthes, Python Crash Course, No Starch Press
- Luciano Ramalho, Fluent Python, O’Reilly
Weekly syllabus
-
1
Week 1 Review of Programming I and modular programming
-
2
Week 2 Modules, packages and virtual environments
-
3
Week 3 File handling: text, CSV and JSON
-
4
Week 4 Introduction to OOP: classes and objects
-
5
Week 5 Encapsulation and properties
-
6
Week 6 Inheritance and polymorphism
-
7
Week 7 Special methods and abstract classes
-
8
Week 8 Exam Midterm exam
-
9
Week 9 Advanced data structures and comprehensions
-
10
Week 10 Iterators, generators and lambda expressions
-
11
Week 11 Error handling and unit testing
-
12
Week 12 Database access with SQLite
-
13
Week 13 Fetching data from the web and using APIs
-
14
Week 14 Programming exercises for actuarial calculations
-
15
Week 15 Project presentations
-
16
Week 16 Exam Final exam