COSC121-17S2 (C) Semester Two 2017

Introduction to Computer Programming

15 points, 0.1250 EFTS
17 Jul 2017 - 19 Nov 2017


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 2017

Students must attend one activity from each section.

Lecture A
Activity Day Time Location Weeks
01 Monday 16:00 - 17:00 A1 Lecture Theatre 17 Jul - 27 Aug
11 Sep - 22 Oct
Lecture B
Activity Day Time Location Weeks
01 Tuesday 11:00 - 12:00 E8 Lecture Theatre 17 Jul - 27 Aug
11 Sep - 22 Oct
Lecture C
Activity Day Time Location Weeks
01 Wednesday 13:00 - 14:00 E8 Lecture Theatre 17 Jul - 27 Aug
11 Sep - 22 Oct
Computer Lab A
Activity Day Time Location Weeks
01 Tuesday 15:00 - 17:00 Erskine 133, 134 17 Jul - 27 Aug
11 Sep - 22 Oct
02 Wednesday 09:00 - 11:00 Erskine 133, 134 17 Jul - 27 Aug
11 Sep - 22 Oct
03 Wednesday 15:00 - 17:00 Erskine 133, 134 17 Jul - 27 Aug
11 Sep - 22 Oct
04 Friday 11:00 - 13:00 Erskine 133, 134 17 Jul - 27 Aug
11 Sep - 22 Oct

Examination and Formal Tests

Test A
Activity Day Time Location Weeks
01 Thursday 17:30 - 19:30 Civil - Mech E201 Mech Computer Lab (14/9)
Erskine 131 Lab 1 (14/9)
Erskine 133 Lab 2 (14/9)
Erskine 001 Crypt 1 (14/9)
Erskine 134 Lab 3 (14/9)
Erskine 136 Lab 4 (14/9)
11 Sep - 17 Sep

Course Coordinator

Richard Lobb


Assessment Due Date Percentage  Description
Lab Quizzes 10% Weekly Quizzes
Mid Semester Test 15%
Programming Assignments 15% Four Assignments
Final Exam 60%


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 $817.00

International fee $3,525.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