Programming 2
This is a course homepage for Programming 2
Materials
- Lecture 1 (18-Jan)
- 219116-01a-intro.pdf - Introduction (1)
- 219116-01d-task-breakdown-practice.pdf - Task breakdown practice
- Lecture 2 (7-Feb)
- 219116-02a-intro2.pdf - Introduction (2)
- 219116-02b-incremental-development.pdf - Incremental & Iterative Development
- 219116-02c-changes.pdf - Dealing with changes (1)
- 219116-02d-reponsibility.pdf - Responsibility
- Lecture 3 (15-Feb)
- 01219245-04a-test-principles-unit-testing.pdf - Software testing, Unit testing, TDD
- 219116-03b-unit-testing-python-1.pdf - Unit testing with python doctest
- Practice: Version control with git
- Lecture 4 (22-Feb)
- 219116-04a-oop-review.pdf - Python OOP review
- Lecture 5 (28-Feb)
- 219116-05a-recursion.pdf - Recursion
- Lecture 6 (7-Mar)
- 219116-06a-functional-programming.pdf - Functional programming
- Lecture 7 - Clean codes
- 219116-07a-coding-convention.pdf - Coding convention
- 219116-07aa-python-convention.pdf - Python coding convention
- 219116-07b-meaningful-names.pdf - Meaningful names
- 219116-07c-functions.pdf - Functions
- Lecture 8 - Principles
- Slides: 219116-08a-principles.pdf - Principles (very short)
- Read more on SOLID
- Design patterns
- Read more at Game Programming Patterns
- Concluding lecture
- nature-software-dev.pdf - Nature of Software Development (by Ron Jeffries)
Tutorials
- Tutorial 1: Getting started with Arcade
- Tutorial 2: Space game
- Tutorial 3: Snake
- Tutorial 4: Flappy dot
- Tutorial 5: Pacman
- Tutorial 6: Dot run