Course syllabus

Introduction to Computer Systems: COMPSCI 110 Semester 2 2019, City Campus

Re-visit this page often - information may change!


Learning outcomes

Teaching delivery

Communication and expectations





Handling illness or absence

Online presence

Academic Integrity


Help with Canvas




Welcome to COMPSCI 110. This is a new course and we are excited about presenting it to you. This course is about computers and how they work and some of the things we can do with them. At the lowest level computers are collections of switches connected together to control two basic values (we usually call these 0 and 1). By the end of the course you should have a good understanding of how those devices in your pocket and on your desk enable you to calculate and communicate based on this simple idea. 

The real description:

Modern computers are both complicated and fast. This course explains how computers work and some of the things we can use them for. In order for us to understand computers we gradually examine a series of layers, each one built on the layer beneath. We start with looking at how data can be represented in binary, then see how we can make machines which can transform that data using simple circuits. Once we can control those circuits with instructions we have the basis for programming languages. The course extends the idea of a computer to how we connect computers together in networks such as the internet and we also touch on some research areas in Computer Science such as Artificial Intelligence and Computer Graphics.

This course is compulsory for students intending to major in Computer Science for students starting a CS degree from 2019 onward but is valuable to anyone who is interested in how computers work and what we can do with them.


Learning Outcomes 

In order to successfully complete this course a student will be able to (the numbers refer to parts of the Science Graduate Profile, you can ignore them):

  • describe the layers of a computer system, from hardware to the web (1, 4) 
  • convert standard data types into numeric formats and apply simple functions to them (1) 
  • identify basic gates and be able to relate them to truth tables and simple combinational circuits (1, 2) 
  • trace the execution of simple programs at the assembly language level (1, 2) 
  • produce pseudocode to specify solutions to simple programming tasks (1, 2, 3) 
  • describe the fundamental parts of an operating system and how they relate to applications (1, 4) 
  • demonstrate an understanding of network communications and computer security (1, 4) 
  • explain the central ideas in computer science research areas (such as artificial intelligence, computer graphics and theory) (1, 4) 
  • discuss ethical issues arising from the use of computers in society (4, 5, 6)

Teaching Delivery: Lectures, Self-Study

Traditionally, Computer Science courses have typically been taught as three lectures per week, with (in stage 1 and 2) weekly labs or tutorials. In recent years, we have also provided video recordings of the slides and audio for almost all lectures. While enrolments have grown significantly since then, the number of students attending lectures has not increased. Feedback from students indicates that lecture recordings make it possible for many to study while holding down full- or part-time jobs or while being caregivers for family members. Others have told us that the availability of lecture recordings solves commute problems, allows enrolment in an extra course, or simply helps with more flexible time management.

This has led us to consider whether traditional lectures are the most effective way of teaching you. In S1, 2019, we will therefore be trialing a mix of approaches.

All tutorials will run throughout the course. However, the same does not apply to lectures - here, we will try a "with" and a "without" approach.

The first half of this course will be taught the "traditional way" as three lectures per week (in two streams), given by Damir Azhar. These will be recorded and made available on Canvas as usual.

In the second half of the semester, we will be trying a different model. In the second half of the semester, there will only be one wrap-up lecture per week, on Fridays, during the usual lecture time slot.  During each week, you will study one module. Your starting point will be overview document for each module. The overview document will contain a basic explanation of the material covered in the module and will put it into context. The document will also contain links to additional materials you must work through until Friday morning of each week, such as:

  • Videos to watch
  • Textbook sections to read
  • Other reading, exercises or activities

Along with the tutorials, these documents, and the linked material, will constitute the core examinable material that would previously have been taught in the lectures. You must look at these before the wrap-up lecture each week.

The wrap-up lecture requires your active participation - use it or miss out! During the lecture, we may:

    • Provide live on-the-board demonstrations of concepts from the online material you found challenging: You determine content.
    • Talk about topics related to the course, e.g., interesting real-world applications of what you have learned.
    • Go over past test or homework questions.
    • Discuss and debate.

    At the end of the semester, we will ask you to complete a survey as part of your homework to collect your input on the two delivery styles.

    Communication and expectations

    Our main channel of communication with you as a class will be Canvas announcements. It is your responsibility to ensure that you get and read Canvas announcements within 24 hours, either via e-mail notification or by explicitly checking the Announcements in the Canvas menu on a daily basis. We expect you to know the content of all announcements within 24 hours.

    Communication with us:

    • If your query is of a personal nature, please e-mail us using our university e-mail addresses. DO NOT USE CANVAS MAIL or Canvas submission comments - these will be ignored.
    • If your query relates to course content, test questions or anything else that may be of legitimate interest to other students, please post your question (anonymously if you wish) on Piazza. Please note that even though your classmates cannot see who is behind an anonymous Piazza post, we can.


    • We expect that you will have read this syllabus page by the time the course starts and are familiar with it. We also expect you to return to this page regularly.
    • We expect you to familiarise yourself in a timely manner with any course content that you are expected to self-study. Don't come to wrap-up lectures expecting to be taught the basic concepts.
    • We expect you to be familiar with the content of any Canvas announcements within 24 hours of them being posted.
    • We expect you to manage your time responsibly. This includes not studying five courses if you don't really have the time to do so.
    • We expect you to be familiar with the boundaries of academic integrity. In particular, you must not ask others for help with assignment solutions, or make your solutions available to other students. This does not preclude studying with a buddy or in a group, but any work you submit must be genuinely your own and must not be submitted in part or in whole by anyone else.
    • We expect you to be courteous and respectful in your dealings with fellow students and course staff, regardless of their background, gender, race, religion, sexual orientation, disability or neurotypicality. If you are being harrassed or discriminated against, we expect you not to suffer in silence but ask us for help.



    % of final mark



    Test - date : 16th September 


    10 tutorials with group work


    10 Coderunner assignments @ 2% each


    4 essays @ 1% each


    "Easter eggs": Marks based on having paid attention course material (announcements, Canvas pages, Piazza posts, videos, other documents).


    In order to pass the paper, you must:

    • Pass test and exam combined - the pass mark is 50%
    • Pass the course work consisting of the tutorial group work tasks and assignments - the pass mark is 50%
    • Get an overall pass of 50% (this includes the exam, test and tutorial marks)

    Canvas and physical hand-in of the tutorial sheets will be used for the submission of tutorial work.



    All lectures will take place in SCIENCE B303, Room G20  (PLT 1)  as of the time this document was prepared.

    Lectures are held at the following times:

    • Wednesday 9-10 am (Part 1 until the mid-semester break only)
    • Thursday 9-10 am (Part 1 until the mid-semester break only) 
    • Friday 9-10 am 

    Wrap-up lectures will be held during the Friday time slots in Part 2 after the mid-semester break.

    Lecturer / Topics and matching Learning Outcomes

    The order of lectures is open to change.

    Part 1: Dr Damir Azhar


    2 lectures

    Wednesday 24/7

    Thursday 25/7

    Introduction to the idea of Abstraction

    Textbook sections:

    1.1 Misconceptions about Computer Science

    1.2 The Definition of Computer Science

    1.4 A Brief History of Computing


    Learning outcome: Convert standard data types into numeric formats and apply simple functions to them (1)

    3 lectures

    Friday 26/7

    Wednesday 31/7, Thursday 1/8

    Textbook sections:

    4.2 The Binary Numbering System

    (This includes signed representations and simple floating point. Also textual, sound and images. A little on compression.)

    4.2.4 Binary Storage Devices

    (Introduces transistors)


    Learning outcome: Identify basic gates and be able to relate them to truth tables and simple combinational circuits (1, 2) 

    4 lectures

    Friday 2/8

    Wednesday 7/8

    Thursday 8/8

    Friday 9/8

    Textbook sections:

    4.3 Boolean Logic and Gates

    4.4 Building Computer Circuits

    4.5 Control Circuits - Multiplexors and decoders.


    Learning outcome: Describe the layers of a computer system, from hardware to the web (1, 4) 

    2 lectures

    Wednesday 14/8

    Thursday 15/8

    Textbook sections:

    5.2 The Components of a Computer System

    5.3 Putting the Pieces Together - the Von Neumann Architecture


    Learning outcome: Trace the execution of simple programs at the assembly language level (1, 2) 

    3 lectures

    Friday 16/8

    Wednesday 21/8

    Thursday 22/8

    Textbook sections:

    (Cross over with the previous section - introduces instructions and opcodes. 5.2.4 The Control Unit)

    6.2 System Software

    (Includes more material matching the previous learning outcome.)

    6.3 Assemblers and Assembly Language.


    Learning outcome: Produce pseudocode to specify solutions to simple programming tasks (1, 2, 3) 

    2 lectures

    Friday 23/8

    Wednesday 28/8

    A section on Polya's "How to solve it" (not in the textbook)

    Textbook sections:

    Rest of 1.2, 1.3 Algorithms

    2.2 Representing Algorithms

    2.3 Examples of Algorithmic Problem Solving

    Thursday 29/8 - Overflow / Review

    Friday 30/8 - Overflow / Review

    2/9 - 14/9: Mid-semester break


    Part 2: Dr Ulrich Speidel

    Week starting 16/9:

    This week's tutorial 6 deals with compilation (Unit 1). The mid-semester test is on 16/9.

    Unit 1

    Learning outcome: describe the layers of a computer system, from hardware to the web (1, 4) 

    Textbook section:

    11.2 The Compilation Process

    Unit 1 wrap-up lecture on Friday 20/9.

    Week starting 23/9:

    This week's tutorial 7 deals with operating systems (Unit 2). Coderunner Assignment 6 is due this week electronically at 9:30 pm on Tuesday 24/9. 

    Unit 2

    Learning outcome: describe the fundamental parts of an operating system and how they relate to applications (1, 4) 

    Textbook section:

    6.4 Operating Systems

    Unit 2 wrap-up lecture on Friday 27/9.

    Week starting 30/9:

    This week's tutorial 8 deals with networking (Unit 3). Coderunner Assignment 7 is due this week electronically at 9:30 pm on Tuesday 1/10. Essay 3 is due at the same time via Canvas.

    Unit 3

    Learning outcome: Demonstrate an understanding of network communications and computer security (1, 4) 

    Textbook sections:

    7.2 Basic Networking Concepts

    7.3 Communication Protocols

    7.5 Cloud Computing

    7.6 A History of the Internet and World Wide Web

    Unit 3 wrap-up lecture on Friday 4/10.


    Week starting 7/10:

    This week's tutorial 9 deals with security (Unit 4). Coderunner Assignment 8 is due this week electronically at 9:30 pm on Tuesday 8/10.

    Unit 4

    Learning outcome: Demonstrate an understanding of network communications and computer security (1, 4)

    Textbook sections:

    8.2 Threats and Defenses

    8.3 Encryption

    8.4 Web Transmission Security

     Unit 4 wrap-up lecture on Friday 11/10.

    Week starting 14/10:

    This week's tutorial 10 deals with finite state machines and Turing machines (Unit 5). Coderunner Assignment 9 is due this week electronically at 9:30 pm on Tuesday 15/10. Essay 4 is due at the same time via Canvas.

    Unit 5

    Learning outcome: Explain the central ideas in computer science research areas (such as artificial intelligence, computer graphics and theory) (1, 4) 

    Unit 5 textbook sections:

    12.3 A Model of a Computing Agent (Turing machines - leading to the Halting Problem)

    12.4 A Model an of Algorithm

    12.5 Turing Machine Examples

    12.6 The Church-Turing Thesis

    12.7 Unsolvable Problems

    Unit 5 wrap-up lecture on Friday 18/10.

    Week starting 21/10:

    There are no tutorials this week. Coderunner assignment 10 is due this week electronically at 9:30 pm on Tuesday 22/10. 

    Unit 6

    Learning outcome: Explain the central ideas in computer science research areas (such as artificial intelligence, computer graphics and theory) (1, 4) 

    Unit 6 textbook sections:

    15.2 A Division of Labor

    15.3 Knowledge Representation

    15.4 Recognition Tasks

    15.5 Reasoning Tasks

    15.6 Robots and Drones

    16.2 Computer-Generated Imagery

    Review lecture for both parts of the course on Thursday 24/10.

    Unit 6 wrap-up lecture on Friday 25/10.

    Tutorials and assignments

    Tutorials and assignments are a major learning component of this course. There are 0.2% participation marks for being involved in the group work section of each tutorial. Tutorials will be held in weeks 2 to 11. All tutorial slots are one hour long and are held in Maths and Physics building (B303), room B07.

    • Tutorial T08: Monday 9:00 AM to 10:00 AM (Muhammad)
    • Tutorial T09: Monday 12:00 Noon to 1:00PM (Sean)
    • Tutorial T04: Monday 4:00 PM to 5:00 PM (Muhammad)
    • Tutorial T01: Tuesday 9:00 AM to 10:00 AM (Sean)
    • Tutorial T06: Tuesday 11:00 AM to 12:00 Noon (Sean)
    • Tutorial T03: Tuesday 3:00 PM to 4:00 PM (Sean)
    • Tutorial T05: Thursday 10:00 AM to 11:00 AM (Muhammad)
    • Tutorial T10: Thursday 11:00 AM to 12:00 Noon (Muhammad)
    • Tutorial T02: Thursday 4:00 PM to 5:00 PM (Muhammad)
    • Tutorial T07: Friday 2:00 PM to 3:00 PM (Sean)

    Note: Tutorial topics and dates below are not final and may be updated as the semester progresses

    Tutorials week starting 29/7: Binary etc including addition and subtraction

    Tutorials week starting 5/8: Binary * and / with shifts, negative integers, floating point

    Tutorials week starting 12/8: Text representation and compression of text

    Tutorials week starting 19/8: Truth tables and logic gates

    Tutorials week starting 26/8: Assembly code

    Tutorials week starting 16/9: Compilation

    Tutorials week starting 23/9: Networking

    Tutorials week starting 30/9: Operating Systems

    Tutorials week starting 7/10: Security

    Tutorials week starting 14/10: FSM & Turing machines


    There will be two types of assignments: There are 4 essay assignments worth 4% of your final mark (i.e. 1% each). There will also be 10 Coderunner assignments worth 20% of your final mark (i.e. 2% each).

    Assignments will be due as follows:

    1. Essay assignments are due at the end of weeks 3, 5, 9 and 11. 
    2. There will be Coderunner assignments for weeks 2, 3, 4, 5, 6, 7, 8, 9, 10 and 11. Each Coderunner assignment is due on Tuesday the following week. For example, the Coderunner assignment for week 2 will be due on Tuesday of week 3.

      All essays must be submitted electronically as PDF files (you may write an essay in MS Word and then save and submit it as a PDF file).


      The textbook is the 8th edition of "Invitation to Computer Science" by Schneider and Gersting. The book is referenced throughout the course and you should get either an electronic or physical version of the book. 

      You can get a physical version of the book from ubiq (was UBS) price $167.95.  

      To purchase the ebook version go to :

      Type in "Invitation to Computer Science", it will come up with quite a number of versions , choose the 8th edition. The eBook price is $74.95 for five year access.

      Once you have selected the text then click checkout  and  apply discount code NZ15OFF  to receive 15% off your purchase. 


      Handling illness or absence

      • If you must leave for family emergencies etc., PLEASE talk to the lecturers, or somehow get a message to the department. Very few problems are so urgent that we cannot be told quite quickly.
      • For illness, injury or personal circumstances affecting assignments or tests, apply for a test aegrotat/compassionate consideration online (see link below) and inform the course coordinator as soon as reasonably possible.
      • For illness during exams (or other problems that affect exam performance or preparation) students MUST apply for an aegrotat pass (for illness) or compassionate pass (other problems) within ONE WEEK of the last affected examination. You can apply online but you must see Student Health or a doctor as soon as possible to obtain evidence of your illness / injury.

      Refer to the "Exams affected by personal circumstances (aegrotat and compassionate consideration)" section of the University website for further information on how to apply online for an aegrotat. While, you're at it, claim an e*a*s*t*e*r e*g*g.


      Online presence

      All lecture notes, assignment handouts, other documents, and lecture recordings will be available on Canvas.

      Your coursework grades for the assignments and the test will also be on Canvas.

      There is a class Piazza page, accessible through Canvas. This will be where the tutors and lecturers respond to questions. Students are also encouraged to respond to questions. There will be short delay before tutors or lecturers respond, allowing time for students to answer first.


      Academic Integrity

      Most students don't cheat, and we will endeavour to ensure that your marks will only compare against those of others who have earned them through their own work. The University of Auckland will not tolerate cheating, or assisting others to cheat, and views cheating in coursework as a serious academic offence. The work that a student submits for grading must be the student's own work, reflecting his or her learning. Where work from other sources is used, it must be properly acknowledged and referenced. This requirement also applies to sources on the world-wide web. A student's assessed work may be reviewed against electronic source material using computerised detection mechanisms. Upon reasonable request, students may be required to provide an electronic version of their work for computerised review.

      Please refer to Once you've read this, click here to follow up.



      Everyone is welcome in our courses and has the potential to enrichen our lives. You, like every member of the University, have a right to dignity and respect. Please see the policy on harassment


      Help with Canvas

      For help with Canvas see:




      • Student representatives:
        • Richard Lee (
        • Olive Huang (



      Course summary:

      Date Details