Accessibility Skip to Global Navigation Skip to Local Navigation Skip to Content Skip to Search Skip to Site Map Menu

COMP150 Practical Programming

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

Have you ever wanted to learn how to program a computer without being thrown in at the deep end? This paper gives a gentle introduction to programming in a language called Python, which was designed to be easy to use (the name comes from the humorous TV series Monty Python's Flying Circus, so you can tell that using Python is meant to be fun). Python is increasingly popular for both science and business applications. As a result, this paper is not only a good way to prepare for COMP 160, but also an ideal way to learn the basics of programming if you don't plan to major in Computer Science.

Paper title Practical Programming
Paper code COMP150
Subject Computer and Information Science
EFTS 0.1500
Points 18 points
Teaching period First Semester
Domestic Tuition Fees (NZD) $1,018.05
International Tuition Fees (NZD) $4,320.00

^ Top of page

Schedule C
Arts and Music, Commerce, Science
Teaching staff
Course Co-ordinator and Lecturer: Brendan McCane
Paper 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 COMP 150 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, COMP 150 does not follow the single-paced lecture/laboratory model of other papers.


There are eight 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 re-sit 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 re-sit until you pass).

Each of the progressions are summarised in the table below:
  • Progression 1 - 4% - 2 questions - Assignment and Operations (Lessons 1 and 2)
  • Progression 2 - 8% - 2 questions - Functions and User Input (Lessons 3 and 4)
  • Progression 3 - 8% - 2 questions - Conditionals and Fruitful Functions (Lessons 5 and 6)
  • Progression 4 - 8% - 2 questions - Modules and Strings 1 (Lessons 7 and 8)
  • Progression 5 - 8% - 2 questions - Files (Lesson 9)
  • Progression 6 - 8% - 2 questions - Iteration: while loop (Lesson 10)
  • Progression 7 - 8% - 1 question - Iteration: nested loops (Lesson 11)
  • Progression 8 - 8% - 1 question - 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 that you will only get one chance of sitting these tests. Both practical tests will include four 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.
Teaching Arrangements
There is 1 lecture per week.
There are 2 laboratory sessions each week, each 2-hours long.
The laboratories have 24/7 access. Course material is made available on Blackboard.
The handbook is all that is required. It is available for free download or can be printed at cost.
Course outline
View the course outline for COMP 150
Graduate Attributes Emphasised
Lifelong learning, Critical thinking, Information literacy.
View more information about Otago's graduate attributes.
Learning Outcomes
Students will learn:
  • The fundamental concepts of computation and programming
  • How to write simple and moderately complex computer program in the Python programming language
  • How to test and debug programs
  • How to use the most common data structures (lists, dictionaries, sets)
  • The basics of graphical user interface programming
  • The basics of object-oriented programming
  • How to automate common computer tasks via programming

^ Top of page


First Semester

Teaching method
This paper is taught On Campus
Learning management system

Computer Lab

Stream Days Times Weeks
Attend one stream from
Y1 Monday 09:00-10:50 10-15, 17-22
Y2 Monday 12:00-13:50 10-15, 17-22
Y3 Monday 14:00-15:50 10-15, 17-22
Y4 Monday 16:00-17:50 10-15, 17-22
Y5 Tuesday 09:00-10:50 10-15, 18-22
Y6 Tuesday 11:00-12:50 10-15, 18-22
Y7 Tuesday 13:00-14:50 10-15, 18-22
Y8 Tuesday 15:00-16:50 10-15, 18-22
Y9 Wednesday 08:00-09:50 10-15, 17-22
Y10 Wednesday 10:00-11:50 10-15, 17-22
Y11 Wednesday 12:00-13:50 10-15, 17-22
AND one stream from
Z1 Wednesday 15:00-16:50 9-15, 17-22
Z2 Thursday 08:00-09:50 9-15, 17-22
Z3 Thursday 10:00-11:50 9-15, 17-22
Z4 Thursday 12:00-13:50 9-15, 17-22
Z5 Thursday 14:00-15:50 9-15, 17-22
Z6 Thursday 16:00-17:50 9-15, 17-22
Z7 Friday 08:00-09:50 9-14, 17-22
Z8 Friday 10:00-11:50 9-14, 17-22
Z9 Friday 12:00-13:50 9-14, 17-22
Z10 Friday 14:00-15:50 9-14, 17-22
Z11 Friday 16:00-17:50 9-14, 17-22


Stream Days Times Weeks
L1 Wednesday 14:00-14:50 9-15, 17-22