Note that the schedule of lectures is tentative and may change, particularly with respect to guest lecturer availability.

Week 1 (24 February - 1 March)#

Lectures:

  • Thursday lecture: Introduction to the course and administrative matters (slides).

  • Friday lecture: Functional abstraction (slides).

Code

Week 2 (2 March - 8 March)#

Lectures:

  • Thursday lecture: Values, types and expressions (slides).

  • Friday lecture: Functions (slides).

Code

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 (9 March - 15 March)#

Note: Monday 9 March is a public holiday.

Lectures:

  • Thursday lecture: Program control flow, part 1: Branching (slides).

  • Friday lecture: Program control flow, part 2: Iteration (slides).

Code

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 (16 March - 22 March)#

  • Thursday lecture: Code quality (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).

Week 5 (30 March - 5 April)#

  • Thursday lecture: Strings (slides).
  • Friday lecture: Testing, Debugging and Defensive Programming. (slides).

Reading guide:

  • In Downey: Chapter 8.
  • In Punch & Enbody: Chapter 4. Section 4.4 and 4.7 on string formatting can be skipped.

  • 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.

Code

Break#

Week 6 (20 April - 26 April)#

  • Thursday lecture: Floating Point Numbers (slides).
  • Friday lecture: Data Science (slides).

Reading guide:

Week 7 (27 April - 3 May)#

Note: Monday 27 April is a Public Holiday

  • Thursday 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 (4 May - 10 May)#

  • Note: Friday the 8th of May is the new Census date.

  • Thursday lecture: Files and I/O (slides).
  • Friday lecture: Dictionaries and Sets (slides).

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 “Memos” and section “Sets” in Chapter 19 (Chapter 19 is covers a variety of topics, some of which we have already touched on, and some which we will not cover in this course.)
  • In Punch & Enbody: Chapter 5, up to (not including) section 5.6 (files). Chapter 9 up to (not including) section 9.6 (dictionaries and sets).

Code

Week 9 (11 May - 17 May)#

  • Thursday lecture: Complexity (slides).

  • Friday lecture: Errors and Exceptions (slides).

Reading guide:

  • In Downey: Chapter 21 (“Analysis of Algorithms”, called Appendix B in the on-line editition) introduces complexity analysis of algorithms.
  • In Downey: Chapter 20 (called “Appendix A” in the on-line edition), and section “Catching Exceptions” in Chapter 14.
  • In Punch & Enbody: Section 5.6 and Sections 14.4 to 14.6 cover exceptions (with a focus on handling).

Week 10 (18 May - 24 May)#

  • Thursday lecture: Software Design (slides).
  • Friday lecture: No Lecture (Guest Lecture Cancelled).

Reading guide:

Week 11 (25 May - 31 May)#

  • Thursday lecture: Modules and programs (slides).
  • Friday lecture: Functions - take 3 (slides).

Reading guide:

  • There is only a short section called “Writing Modules”, in Chapter 14, in Downey’s book.

Week 12 (1 June - 7 June)#

Note: Monday 1 June is a Public Holiday

  • Thursday lecture: Recap and Where Next (slides).
  • Friday lecture: Exam revision (no slides).
bars search times arrow-up