Semester 1, 2020

An introduction to the basics of programming using the Python programming language, with an emphasis on practical topics. This paper is suitable both for students who do not intend to major in Computer Science, and as preparation for COMP160.

The main website for COMP150 is on blackboard.


Steven Livingstone (Lecturer)

Michael Albert (Lecturer)

Nick Meek (Lab Coordinator)

Lech Szymanski (Course Coordinator)

Course Information

Course Structure
The ability to program relies heavily on mastering certain skills and techniques. These skills are cumulative in the sense that mastering skills further on in the material requires that you've fully mastered prior skills. Therefore, the structure of COMP150 is based on a mastery model. In this model, students progress at their own pace and move on to the next topic only when they've mastered the previous topic. As a consequence, COMP150 does not follow the single paced Lecture/Laboratory model of other papers.

The course book provides almost all the course content and it is supported by podcasts of the various lessons. Students must familiarise themselves with the content prior to attending their labs. Since COMP150 is self-paced, different students will get to different parts of the book by the end of the semester. This is perfectly fine. As a minimum, we expect all students to complete up to and including Lesson 15, but you should be aiming to get as far along as you can.

There are 8 mastery progressions and two practical tests. The progressions are worth 60% in total and the practical tests are worth 20% each. The progressions are pass/fail. You cannot sit the next progression until you successfully complete the previous one. You can resit the progressions as many times as you like, but only once per day. If you pass a progression, you get all the marks available for that progression. If you fail a progression, you don't get any marks (but you can resit until you pass).

Each of the progressions are summarised in the table below:

Progression Marks(%) Num Questions Topic
1 4 2 Assignment and Operations (Lessons 1 and 2)
2 8 2 Functions and User Input (Lessons 3 and 4)
3 8 2 Conditionals and Fruitful Functions (Lessons 5 and 6)
4 8 2 Modules and Strings 1 (Lessons 7 and 8)
5 8 2 Files (Lesson 9)
6 8 2 Iteration: while loop (Lesson 10)
7 8 1 Iteration: nested loops (Lesson 11)
8 8 1 Problems using a combination of techniques (all Lessons)

The practical tests will be run in the labs under exam conditions. They will include questions very similar to the progressions. The main difference is you will only get one chance of sitting these tests. Both practical tests will include 4 questions each worth 5%. Practical test 1 will include material up to and including Chapter 8 and will likely run in week 7. Practical test 2 will include material from Chapter 9 onwards and will run in week 13.

There is no final exam for this paper.