Introduction to Computer Systems: COMPSCI 110 Semester 1 2019, City Campus
Re-visit this page often - information may change!
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.
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.
% of final mark
Test - date : 30th April
|8 tutorials with group work||
4 standard assignments @ 3% each
4 assignments with essays @ 4% each
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 to the idea of Abstraction
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)
Wednesday 13/3, Thursday 14/3
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
Learning outcome: Identify basic gates and be able to relate them to truth tables and simple combinational circuits (1, 2)
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)
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)
(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)
A section on Polya's "How to solve it" (not in the textbook)
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):
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)
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.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:
- 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.
- 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.
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
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.
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.
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.
Course director and lecturer - Dr Robert Sheehan, room 303-409, firstname.lastname@example.org
Lecturer - Dr Ulrich Speidel, room 303-594, email@example.com
Sean Ma - firstname.lastname@example.org
Muhammad Waqas Munir - email@example.com
Luman Wang - firstname.lastname@example.org
- Student representatives - Stream 1 - Hao Chen Li: email@example.com, Songyan Teng: firstname.lastname@example.org, Stream 2 - Yifei Liu: email@example.com
The syllabus page shows a table-oriented view of course schedule and basics of course grading. You can add any other comments, notes or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the 'Edit' link at the top.