Note that the schedule of lectures is tentative and may change, particularly after the mid-semester break.

Week 1 (22nd of February - 28th of February)#

Lectures:

  • Lecture 1: Introduction to the course and administrative matters (slides).
  • Lecture 2: Functional abstraction (slides).

Code:

Other Material:

  • Student Course Representative Information (slides)

Week 2 (1st of March - 7th of March)#

Lectures:

  • Lecture 1: Values, types and expressions (slides).
  • Lecture 2: 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 (8th of March - 14th of March)#

Note: Monday 8 March is a public holiday (Canberra Day).

Lectures:

  • Lecture 1: Program control flow, part 1: Branching (slides).
  • Lecture 2: 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 (15th of March - 21st of March)#

  • Lecture 1: Sequence data types, part 1 (slides).
  • Lecture 2: Code quality and debugging (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 (22nd of March - 28th of March)#

  • Lecture 1: Strings and more sequences (slides).
  • Lecture 2: Testing and defensive programming (slides).

Code:

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.

Week 6 (29th of March - 4th of April)#

Note: Friday 2 April is a public holiday (Good Friday).

  • Lecture 1: Floats (slides).
  • Lecture 2: Data Science (slides).

Code:

Reading Guide

Break#

Week 7 (19th of April - 25th of April)#

  • Lecture 1: Sequence data types - Take 2 (slides).
  • Lecture 2: Functions - Take 2 (slides).

Code:

Sample Datasets:

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 (26th of April - 2nd of May)#

Note: Monday 26 April is a public holiday (ANZAC Day)

  • Lecture 1: No lecture - Public Holiday
  • Lecture 2: Files and IO (slides)

Code:

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.
  • In Punch & Enbody: Chapter 5, up to (not including) section 5.6 (files).

Week 9 (3rd of May - 9th of May)#

  • Lecture 1: Dictionaries and Sets (slides)
  • Lecture 2: Complexity (slides)

Code

Reading guide:

  • In Downey: 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.) Chapter 21 (“Analysis of Algorithms”, called Appendix B in the on-line editition) introduces complexity analysis of algorithms.
  • In Punch & Enbody: Chapter 9 up to (not including) section 9.6 (dictionaries and sets).

Week 10 (10th of May - 16th of May)#

  • Lecture 1: Errors and Exceptions (slides)
  • Lecture 2: Software Design (slides)

Reading guide:

  • 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, unfortunately).

Week 11 (17th of May - 23rd of May)#

  • Lecture 1: Modules and programs (slides)
  • Lecture 2: Functions - Take 3 (slides)

Reading guide:

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

Week 12 (24th of May - 30th of May)#

  • Lecture 1: Recap and where next (slides)
  • Lecture 2: Exam revision.
bars search times arrow-up