Course syllabus

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

Re-visit this page often - information may change!

Introduction

Learning outcomes

Teaching delivery

Assessment

Lectures

Tutorials

Textbook

Handling illness or absence

Online presence

Academic Integrity

Harassment

Help with Canvas

Contacts

 

Introduction

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 onwards 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 trialling 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 Robert Sheehan. 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 without lectures. Instead, Ulrich Speidel will provide an overview document of a few pages 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 study, 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.

There will be also be "gatherings" - typically 1 or 2 per week, during a "lecture" time slot. The gatherings are intended for:

  • Students who are on campus and would like to consolidate their learning of the material in the module.
  • Students who have questions and would like to ask them in a class-like environment.
  • Students who would like to extend their learning beyond the core syllabus of the course.
  • Students who would like personal attention in class from their lecturer (Ulrich Speidel).

At gatherings, we may:

  • Provide live on-the-board demonstrations
  • 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

Gatherings will be to a certain extent demand-driven - they may last between a few minutes and the full 50 minutes of the time slot. If there is sufficient demand, we will schedule additional gatherings.

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.

Assessment

Type

% of final mark

Exam

50

Test - date : 30th April

20

8 tutorials with group work

2

4 standard assignments @ 3% each

12

4 assignments with essays @ 4% each

16

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.

 

Lectures and gatherings

All lectures and gatherings will take place in SCIENCE B303, Room G20 or G23 (as of the time this document was prepared).

Lectures for the 29523 stream are held at the following times:

  • Wednesday 2-3pm G23
  • Thursday 2-3pm G23
  • Friday 2-3pm G23

Lectures for the 29524 stream are held at the following times:

  • Wednesday 11am-12pm G20
  • Thursday 11am-12pm G23
  • Friday 12pm-1pm G23

Gatherings for each stream will be held at these times as well, but will not be held in each of these time slots and will be advertised around a week in advance.

Lecturer / Topics and matching Learning Outcomes

The order of lectures is open to change.

Part 1: Dr Robert Sheehan

Introduction

2 lectures

Wednesday 6/3

Thursday 7/3

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 8/3

Wednesday 13/3, Thursday 14/3

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 15/3

Wednesday 20/3

Thursday 21/3

Friday 22/3

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 27/3

Thursday 28/3

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 29/3

Wednesday 3/4

Thursday 4/4

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 5/4

Wednesday 10/4

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 11/4 - Overflow / Review

Friday 11/4 - Overflow / Review

15/4 - 26/4: Mid-semester break

 

Part 2: Dr Ulrich Speidel

Week starting 29/4:

There will be no tutorial this week and there is no assignment due, however note that the mid-semester test is on 30/4.

Unit 1 (continuation of previous learning outcome):

Textbook section:

11.2 The Compilation Process

Unit 1 gatherings for both streams on Friday 3/5.

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

Week starting 6/5:

This week's tutorial 5 deals with compilation (Unit 1).

Unit 2 continued.

Unit 2 gatherings for both streams on Wednesday 8/5.

Unit 3 & 4 learning outcome: Demonstrate an understanding of network communications and computer security (1, 4) 

Unit 3 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

Week starting 13/5:

This week's tutorial 6 deals with networking (Unit 3). Assignment 5 is due this week electronically at 9:30 pm on Friday 17/5.

Unit 3 continued.

Unit 3 gatherings for both streams on Thursday 16/5. (Was Wednesday, shifted by popular request)

Unit 4 textbook sections:

8.2 Threats and Defenses

8.3 Encryption

8.4 Web Transmission Security

Week starting 20/5:

This week's tutorial 7 deals with security (Unit 4). Assignment 6 is due this week electronically at 9:30 pm on Friday 24/5.

Unit 4 continued.

Unit 4 gatherings for both streams on Friday 24/5.

Unit 5 & 6 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

Week starting 27/5:

This week's tutorial 8 deals with Turing machines, finite state machines and automata (Unit 6). Assignment 7 is due this week electronically at 9:30 pm on Friday 31/5.

Unit 5 & 6 continued

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

Unit 5 gatherings for both streams on Thursday 30/5.

Week starting 4/6:

There are no tutorials this week. Assignment 8 is due this week electronically at 9:30 pm on Friday 7/6.

Unit 6 continued

Unit 6 + review gatherings for both streams on Wednesday 5/6.

Review gatherings for both streams on Friday 7/6..

Tutorials and assignments

Tutorials and assignments are a major learning component of this course. There are 0.25% participation marks for being involved in the group work section of each tutorial. Tutorials will be held in weeks 2, 3, 4, and 5 and in weeks 8, 9, 10 and 11. All tutorial slots are one hour long.

  • Tutorial T02: Monday 10:00AM to 11:00AM Sci Maths & Physics, Room B07 - Luman
  • Tutorial T16: Monday 12:00PM to 1:00PM Sci Maths & Physics, Room B07 - Luman
  • Tutorial T17: Monday 2:00PM to 3:00PM Sci Maths & Physics, Room B07- Luman
  • Tutorial T04: Monday 4:00PM to 5:00PM Sci Maths & Physics, Room B07 - Luman
  • Tutorial T08: Tuesday 8:00AM to 9:00AM Sci Maths & Physics, Room B07 - Muhammad
  • Tutorial T12: Tuesday 10:00AM to 11:00AM Sci Maths & Physics, Room B07 - Sean
  • Tutorial T03: Tuesday 12:00PM to 1:00PM Sci Maths & Physics, Room B07 - Sean
  • Tutorial T11: Tuesday 2:00PM to 3:00PM Sci Maths & Physics, Room B07 - Sean
  • Tutorial T09: Tuesday 4:00PM to 5:00PM Sci Maths & Physics, Room B07 - Muhammad
  • Tutorial T01: Wednesday 9:00AM to 10:00AM Sci Maths & Physics, Room B07 - Muhammad
  • Tutorial T05: Wednesday 12:00PM to 1:00PM Sci Maths & Physics, Room B07 - Sean
  • Tutorial T13: Wednesday 3:00PM to 4:00PM Sci Maths & Physics, Room B07 - Muhammad
  • Tutorial T18:Thursday 9:00AM to 10:00AM Sci Maths & Physics, Room B07 - Sean
  • Tutorial T14: Thursday 12:00PM to 1:00PM Sci Maths & Physics, Room B07 - Luman
  • Tutorial T15: Thursday 3:00PM to 4:00PM Sci Maths & Physics, Room B07 - Luman
  • Tutorial T07: Friday 10:00AM to 11:00AM Sci Maths & Physics, Room B07 - Sean
  • Tutorial T06: Friday 12:00PM to 1:00PM Sci Maths & Physics, Room B07 - Muhammad
  • Tutorial T10: Friday 3:00PM to 4:00PM Sci Maths & Physics, Room B07 - Muhammad

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

Tutorials week starting 11/3: Binary etc including addition and subtraction

Tutorials week starting 18/3: Binary * and / with shifts, negative integers, floating point

Tutorials week starting 25/3: Text representation and compression of text

Tutorials week starting 1/4: Truth tables and logic gates

Tutorials week starting 6/5: Assembly code and compilation

Tutorials week starting 13/5: Networking

Tutorials week starting 20/5: Security

Tutorials week starting 27/5: Turing machines, FSM, automata

There will be two types of assignments: Assignments with individual questions only, and assignments with an essay component. Assignments with individual questions only will be worth 3% of your final mark each, those with an essay component will be worth 4% of your final mark.

Assignments will be due as follows:

  1. At the end of weeks 3, 5, 9 and 11: Assignments with individual questions and an essay component. These will be worth 4% of your final mark each.
  2. At the end of weeks 4, 6, 10 and 12: Assignments with individual questions only. These will be worth 3% of your final mark each.

    All assignments must be submitted electronically as a PDF file (you can write it in MS Word and then save and submit it as a PDF file), but for the assignments with an essay component, assignment answers and essays must be submitted separately.

    Textbook

    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 : www.cengagebrain.co.nz.

    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 problems affecting assignments or tests, see the lecturer, as soon as reasonably possible.
    • For illness during exams (or other problems that affect exam performance) students MUST contact the University within ONE WEEK of the last affected examination, to apply for an aegrotat pass (for illness) or compassionate pass (other problems).
      THE ONE WEEK LIMIT IS STRICTLY ENFORCED.

    Refer to the "Exams affected by personal circumstances (aegrotat and compassionate consideration)" section of the University websit for further information. https://www.auckland.ac.nz/en/for/current-students/cs-academic-information/cs-examination-information/cs-aegrotat-and-compassionate-consideration.html

     

    Online presence

    All lecture notes, assignment handouts, other documents, and lecture/gathering 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 http://www.auckland.ac.nz/uoa/home/about/teaching-learning/honesty.

     

    Harassment

    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:  https://www.auckland.ac.nz/en/for/current-students/cs-student-support-and-services/cs-personal-support/bullying-and-harassment.html

     

    Help with Canvas

    For help with Canvas see: https://www.auckland.ac.nz/en/about/learning-and-teaching/CanvasHomepage/canvas-help---support.html.

     

    Contacts

    Course summary:

    Date Details Due