COMPSCI 105: Principles of Computer Science

Welcome to COMPSCI 105, Summer School, 2017

What is Computer Science?
Computer Science has revolutionised virtually all aspects of human enterprise. A large part of the subject involves techniques for making software development simpler and more reliable, but fundamentally Computer Science is about abstraction. Abstraction refers to finding an appropriate model that can be used to solve a particular problem. Computer Scientists create abstractions of real-world problems that can be efficiently represented and manipulated inside a computer.

What is COMPSCI 105?
This course extends the programming skills obtained from the first programming course (COMPSCI 101) emphasising good software design through an appreciation of data structures and code efficiency. COMPSCI 105 provides an introduction to objects and classes, exception handling, algorithm analysis and recursion. The importance of abstraction and abstract data types is illustrated through the study of fundamental data structures (such as linked lists, stacks, queues, trees and hash tables). The performance characteristics of different implementations of these data structures are studied, aided by an introduction to the performance of searching and sorting algorithms.

Lecturer
Paul Denny (Course coordinator)
Room 465, Level 4, Computer Science Building (303S)
Phone: 09 923 7087 (or +64 3737599 x 87087)
Email: paul@cs.auckland.ac.nz

Course information document
Please carefully read the 2017 Course Information document. This includes important information regarding passing the course and a full lecture and lab timetable.

Learning outcomes
A student who successfully completes this course will be able to:

  • Define a class to model and represent an object
  • Write code which handles important exception types
  • Use a standard data interchange format for reading and writing complex data types
  • Write programs that store and manipulate data in standard linear data structures (arrays, linked lists, stacks, queues) and non-linear data structures (hash tables, trees)
  • Compare the efficiency of algorithms using standard big-O notation
  • Implement recursive solutions to simple problems
  • Implement recursive data structures such as linked lists and trees
  • Explain the basic algorithm for any of the studied sorting methods
  • Use regular expressions to extract data from a body of text

Course summary:

Date Details Due