COSC121-18S2 (C) Semester Two 2018

Introduction to Computer Programming

15 points, 0.1250 EFTS
16 Jul 2018 - 18 Nov 2018


Computer programming in a high-level language with special emphasis on style and structure. This course is a prerequisite for COSC122 and all 200 level COSC and SENG courses.

In COSC121 you will learn the fundamentals of computer programming using the Python language.
Programming is the nuts and bolts of computer science; it is an essential tool but only a small part of the overall subject. Programming involves using a special language to issue a series of instructions to the computer in order to have it solve a particular problem. COSC121 is a prerequisite for all 200 level COSC courses and is normally required as preparation for COSC122.

Learning Outcomes

Students will:

  • Understand the following Python data types and their methods : strings, lists, tuples, files, sets and dictionaries.
  • Be able to implement basic algorithms using selection, iteration and function calling.
  • Be able to apply their understanding of the Python language in designing, implementing and testing programs to solve simple problems in science and engineering.
  • Be able to (re)structure code using modules and functions to reduce complexity.
  • Appreciate the performance benefits of hashed data structures in certain applications.
  • Be familiar with simple object oriented programming in Python.
  • Be able to implement simple Graphics User Interfaces in Python.
  • Be able to review and assess the quality and maintainability of Python code.
    • University Graduate Attributes

      This course will provide students with an opportunity to develop the Graduate Attributes specified below:

      Critically competent in a core academic discipline of their award

      Students know and can critically evaluate and, where applicable, apply this knowledge to topics/issues within their majoring subject.



Timetable 2018

Students must attend one activity from each section.

Clinic A
Activity Day Time Location Weeks
01 Monday 10:00 - 11:00 C1 Lecture Theatre 16 Jul - 26 Aug
10 Sep - 21 Oct
Computer Lab A
Activity Day Time Location Weeks
01 Monday 11:00 - 13:00 Jack Erskine 133, 134 16 Jul - 26 Aug
10 Sep - 21 Oct
02 Monday 15:00 - 17:00 Jack Erskine 133, 134 16 Jul - 26 Aug
10 Sep - 21 Oct
03 Friday 11:00 - 13:00 Jack Erskine 133, 134 16 Jul - 26 Aug
10 Sep - 21 Oct
04 Friday 13:00 - 15:00 Jack Erskine 133, 134 16 Jul - 26 Aug
10 Sep - 21 Oct

Course Coordinator

Richard Lobb


There are two main options for books to use to supplement the lectures and support your lab work.
- The second edition of "Practical Programming: An Introduction to Computer Science Using Python 3" by Campbell, Gries, Montojo and Wilson is the best book for the course  as it matches the lecture sequence well.
It is available from the university bookshop, or you buy an e-copy for
$US25 from You can probably find second hand copies of the first edition of the same book, but be aware that it uses version 2.7 of Python, and we are now using version 3. There are only a few minor changes that you will need to adjust for, and we'll give information about this in the course.

- "How To Think Like a Computer Scientist'' is available free online at It uses the same version of Python as you'll need for labs (version 3).

Indicative Fees

Domestic fee $834.00

International fee $3,788.00

* Fees include New Zealand GST and do not include any programme level discount or additional course related expenses.

For further information see Computer Science and Software Engineering.

All COSC121 Occurrences