Note that the schedule of lectures is tentative and may change, particularly with respect to guest lecturer availability.
Week 1 (25 February - 3 March)#
Lectures:
- Tuesday lecture: Introduction to the course and administrative matters (slides).
- Friday lecture: Functional abstraction (slides).
Code:
- Mortgage Repayment Calculator (lecture 1)
- The Robot (lecture 2)
- Stack Boxes Original (lecture 2)
- Stack Boxes Using Functions (lecture 2)
Week 2 (4 - 10 March)#
Lectures:
Code:
- Change in Percent (lecture 4)
- Sin in Degrees (lecture 4)
- Calculate Gradient (lecture 4)
Reading guide:
- In Downey: Chapters 1, 2 and 3.
- In Punch & Enbody: Chapter 1 (excluding 1.10) and the beginning of Chapter 6, up to (not including) 6.3.3.
Week 3 (11 - 17 March)#
- Note - Monday 11 March is a public holiday (Canberra Day)
Lectures:
- Tuesday lecture: Program control flow, part 1: Branching (slides).
- Friday lecture: Program control flow, part 2: Iteration (slides).
Code:
- Print Grade (lecture 5)
- Count Boxes (lecture 5)
- Interval Halving (lecture 5)
- Count Boxes (Again) (lecture 6)
- Function Solving (lecture 6)
- Falcon 9 Example (lecture 6)
Reading guide:
- In Downey: Chapter 5, Chapter 6 up to (not including) section “More Recursion”, and Chapter 7.
- In Punch & Enbody: Chapter 2, except the parts about
for
loops (for example, section 2.2.13).
Week 4 (18 - 24 March)#
- Tuesday lecture: Code quality, testing and debugging (slides).
- Friday lecture: Sequence data types, part 1 (slides).
Reading guide:
Both books begin with strings as the first sequence type. We will get to strings in Week 5. However, parts of the relevant chapters describe properties of strings that are in fact common to all sequence types, and can be read without worrying about character representation.
- In Downey: Chapter 8, up to (not including) section “String Methods”.
- In Punch & Enbody: Section 4.1 (sections 4.1.1 and 4.1.2 are specific to strings, and will become relevant in Week 5).
Downey’s book has a section on debugging in every chapter. The advice in the debugging sections of chapters 1 through 8 is all relevant and useful to debugging the kinds of programs we have written so far.
Week 5 (25 - 31 March)#
-
Note: Sunday 31 March is Census data.
- Tuesday lecture: Strings (slides).
- Friday lecture: Floating point numbers (slides).
Reading guide:
- In Downey: Chapter 8.
- In Punch & Enbody: Chapter 4. Section 4.4 and 4.7 on string formatting can be skipped.
- The python documentation has a section about floating-point numbers.
- http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html presents a very detailed, quite mathematical, look into floating point number representation and arithmetic.
- Here is a video of a very interesting talk: https://www.youtube.com/watch?v=aP0Y1uAA-2Y. The speaker discusses alternative number systems for representing and computing with fractional numbers. Maybe soon we will not be using floats at all!
Week 6 (1 - 7 April)#
- Tuesday lecture: Exam Revision.
- Friday: Data Science (slides).
Reading guide:
- There is no new recommended reading for this week.
Break#
Week 7 (22 - 28 April)#
- Note: Monday 22 April is a public holiday (Easter Monday)
-
Note: Thursday 25 April is a public holiday (ANZAC Day)
- Tuesday lecture: Sequence data types, part 2 (slides).
- Friday lecture: More about functions (slides).
Reading guide:
- In Downey: Chapter 10 (lists). Chapters 3, 5 and 6, and section “Global variables” in Chapter 11 (functions and scope).
- In Punch & Enbody: Chapter 7, except 7.7 (lists). Note: Sections 7.5.2 and 7.9 contain examples that use file reading, which we have not covered yet. You can skip these sections, or just just copy-paste the file-reading code and not worry too much about it. Chapter 6, up to (not including) section 6.3.4; Section 8.1; Section 9.6 (functions and scope).
Week 8 (29 April - 5 May)#
Reading guide:
- In Downey: Chapter 14, up to section 14.4 “Catching Exceptions” (files), though the remainder of the chapter is useful reading if you want to do more complex file operations. Chapter 11 up to section 11.6 and section 19.5 (the rest of chapter 19 as about other things we will not cover in this course).
- In Punch & Enbody: Chapter 5, up to (not including) section 5.6 (files) and Chapter 9 up to (not including) section 9.6.
Code
- Add Line Numbers(Lecture 15)
Week 9 (6 - 12 May)#
- Tuesday lecture: No Lecture
- Friday lecture: Testing and Debugging (slides).
Code
- mutable_default_arguments(Lecture 18).
Week 10 (13 - 19 May)#
Week 11 (20 - 26 May)#
- Tuesday lecture: Python modules and programs (slides).
- Friday lecture: Organisation and design (slides).
Week 12 (27 May - 2 June)#
-
Note: Monday 27 May is a public holiday (Reconciliation Day)
- Tuesday lecture: Recap
- Friday lecture: Exam questions