Course syllabus


Prerequisite & Restrictions



  • COMPSCI 101, or
  • Achievement Standards NCEA Level 3: Digital Technologies and Programming: 91637 Develop a complex computer program for a specified task, or
  • Equivalent programming experience and departmental approval.



Course Description

This is the entry course to Computer Science for students with prior programming knowledge. It focuses on the quality of processes used when developing software, and the quality of the software product produced using those processes.  The course provides an introduction to fundamental software development techniques and processes, such as reading, writing, and documenting programming code; decomposing problems; testing; debugging; using recursion; handling unexpected errors.  It also addresses efficient ways to organize and manipulate data, including sorting and searching algorithms, and writing software that uses and implements common abstract data types such as lists, stacks, queues, dictionaries and trees.  The course will be taught using the Python programming language.

Learning Outcomes

A student who successfully completes this course should be able to:

  • Use common programming statements to implement iterative and recursive algorithms.
  • Export and import data structures (via file or console I/O) using standard text-based data formats.
  • Decompose a problem into several smaller tasks, design and implement a function for each task, and compose these functions into a program that solves the problem.
  • Use simple testing and debugging strategies to correct faulty programs.
  • Provide a useful level of documentation for all programs developed.
  • Work together with peers to collaboratively develop, and review, programs.
  • Demonstrate how typical data structures are modelled in memory.
  • Write programs that use standard abstract data types (lists, stacks, queues, priority queues, dictionaries).
  • Implement standard abstract data types using standard data structures such as arrays, linked lists, hash tables and trees.

Requirements for passing the Course

To pass the course, as well as obtaining at least 50% for your overall mark, you are required to pass both the practical invigilated online tests component of the course and the invigilated written final exam.

  • Invigilated computer-based tests component:
    • Two tests worth 45% in total (20% for the first test and 25% for the second test).
    • Tests are practical tests and all questions are answered and validated using CodeRunner.
  • Invigilated final written exam component:
    • A written exam worth 25% of your final grade
    • Exam questions are answered on a Question/Answer booklet.


  • To pass the invigilated online tests component, you need to achieve a pass (i.e. at least 50%) in the combined total of both tests.
  • To pass the invigilated final written exam, you need to achieve a pass (i.e. at least 50%).
  • You also need an overall mark of at least 50% out of the full course total of 100%.

Invigilated Online Tests

  • This is a practical computer-based test. 
  • The combined total of the tests is worth 45% of the final grade.  The tests will be held in the evenings of Wed 22 January 6-8pm, and Wed 12 February 6-8pm.  The tests will be 2 hours in duration. 
  • All questions are answered and validated using CodeRunner.
  • Location: Will be emailed to you closer to the date.
  • Please arrive at least 15 minutes before the start time.

Final Exam (Written)

  • The final exam is worth 25% of your final mark.
  • The exam is paper-based and your answers will be written on a Question/Answer booklet.
  • Date and Time: Available on SSO later in the course.
  • It is a 2 hour exam. Please check Student Services OnlineLinks to an external site. closer to the exam period for a confirmation of the date and time.
  • The exam is closed book, and calculators and watches are not permitted.


  • There are 20 assessed laboratory sessions.
  • Labs are a compulsory part of the course. They are worth 20% of your final mark. (5% group work and 15% coderunner questions) Every assessed laboratory session contributes towards your final grade.
  • Each week you will have FOUR laboratory sessions.
  • You are expected to prepare for each lab by completing any reading and practice exercises before you attend the lab.  The laboratory sessions will include group activities where you will be expected to participate in discussions and collaborative problem solving, as well as individual programming tasks that are submitted online.
  • Some laboratory activities will be timed and will be conducted during your allocated laboratory session.
  • All labs are held in Room SCIENCE B302, Room G40
  • Your first lab is on Thursday January 9th. Please locate the computer lab room before your first lab and check that your login and password work on our computers.


There is one assignment for this course and worth 10% of the final grade.

Lecture Times and Locations

  • Mo 9:00AM - 10:00AM Sci Maths & Physics, Room G23
  • Th 9:00AM - 10:00AM Sci Maths & Physics, Room G23

Please re-check all room allocations closer to the time on SSO as they often change around the start of semester.


Four laboratory sessions each week. All laboratories are compulsory.

  • Mo 10:00AM - 12:00PM, Tu 10:00AM - 12:00PM, Th 10:00AM - 12:00PM, Fr 10:00AM - 12:00PM,
  • Mo 12:00PM - 2:00PM, Tu 12:00PM - 2:00PM, Th 12:00PM - 2:00PM, Fr 12:00PM - 2:00PM,
  • Mo 2:00PM - 4:00PM, Tu 2:00PM - 4:00PM, Th 2:00PM - 4:00PM, Fr 2:00PM - 4:00PM,

Please re-check all room allocations closer to the time on SSO as they often change around the start of semester.

Course summary:

Date Details