Course syllabus

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

Re-visit this page often - information may change!

Introduction

Learning outcomes

Teaching delivery

Communication and expectations

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 relatively 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

There will be 3 lectures and 1 tutorial each week.

The lecture timetable for stream 9106 is as follows:

  • Monday : 12 - 1 (Venue : LibB28/109-B28) 
  • Tuesday : 12 - 1 (Venue : LibB28/109-B28)  
  • Wednesday : 4 - 5 (Venue : LibB28/109-B28)

Tutorials will be held in-person on each day from Monday to Friday in room 104-G07.

Please attend the tutorial stream you have enrolled in through SSO.

There will also be two online tutorial sessions per week, the details of which are outlined in the "Tutorial and Assignment" section.

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. The signup link for Piazza is piazza.com/aucklanduni.ac.nz/semester22020/compsci110 

Expectations:

  • 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 be familiar with the content of any Canvas announcements within 24 hours of them being posted.
  • We expect you to manage your time responsibly. 
  • 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. Please see the code of conduct on  https://www.auckland.ac.nz/en/on-campus/life-on-campus/code-of-conduct.html 

Assessment

Type

% of final mark

Exam

50

Test - date : 25th September

20

10 tutorials @ 0.2% each

2

10 Coderunner assignments @ 2% each

20

4 essays @ 2% each

8

In order to pass the paper, you must:

  • Pass test and exam combined - the pass mark is 50% 47% this semester.
  • Pass the course work consisting of the tutorial work, assignments and essays - the pass mark is 50% There is no pass course work requirement this semester
  • Get an overall pass of 50%  47% (this includes the exam, test and course work marks).

 

Lecturer / Topics and Learning Outcomes

The order of lectures is open to change.

Part 1: Dr Robert Sheehan

Week 1 (27/7 - 31/7)

Introduction

3 lectures

Monday 27/7

Tuesday 28/7

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

 

Week 2 (3/8 - 7/8)

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

3 lectures

Monday 3/8

Tuesday 4/8

Wednesday 5/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)

 

Week 3 (10/8 - 14/8)

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

3 lectures

Monday 10/8

Tuesday 11/8

Wednesday 12/8

Textbook sections:

4.3 Boolean Logic and Gates

4.4 Building Computer Circuits

4.5 Control Circuits - Multiplexors and decoders.

 

Part 1 (Continued):  Asma Shakil

Week 4 (17/8 - 21/8)

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

3 lectures

Monday 17/8

Tuesday 18/8

Wednesday 19/8

Textbook sections:

5.2 The Components of a Computer System

5.3 Putting the Pieces Together - the Von Neumann Architecture

 

Week 5 (24/8 - 28/8)

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

3 lectures

Monday 24/8

Tuesday 25/8

Wednesday 26/8 

Textbook sections:

5.4 Non-Von Neumann Architectures

6.2 System Software

6.3 Assemblers and Assembly Language.

 

Week 6 (31/8 - 4/9)

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

3 lectures

Monday 31/8 

Tuesday 1/9

Wednesday 2/9

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

Semester Break (7/9 - 20/9)

 

Part 2:  Asma Shakil

Week 7 (21/9 - 25/9)

Unit 1 : The Compilation Process

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

3 lectures

            Monday 21/9

Tuesday 22/9

Wednesday 23/9

Textbook section:

11.2 The Compilation Process

The mid-semester test, assessing Part 1 of the course, will be held on the 25th of September.

 

Week 8 (28/9 - 2/10)

Unit 2 : Operating Systems

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

3 lectures

             Monday 28/9

Tuesday 29/9

Wednesday 30/9

Textbook section:

6.4 Operating Systems

 

Week 9 (5/10 - 9/10)

Unit 3 : Networking

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

3 lectures

Monday 5/10

Tuesday 6/10

Wednesday 7/10

Textbook sections:

7.2 Basic Networking Concepts

7.3 Communication Protocols

7.6 A History of the Internet and World Wide Web

 

Week 10 (12/10 - 16/10)

Unit 4 : Security

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

3 lectures

          Monday 12/10

          Tuesday 13/10

          Wednesday 14/10

Textbook sections:

8.2 Threats and Defenses

8.3 Encryption

8.4 Web Transmission Security

 

Week 11 (19/10 - 23/10)

Unit 5 : Turing Machines

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

3 lectures

Monday 19/10 

Tuesday 20/10

Wednesday 21/10

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 12 (26/10 - 30/10)

Unit 6 : Artificial Intelligence

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

2 lectures

Monday 26/10 - No Lecture (Public Holiday)

Tuesday 27/10

Wednesday 30/10 

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

 

Tutorials and Assignments

Tutorials and assignments are a major learning component of this course.

There will be 10 tutorials. All tutorials will be accessible online via CodeRunner.

Please note that there is a 0.2% attempt mark for doing each tutorial. 

Tutorials will start from Week 2, i.e., Monday 3/8.

The in-person tutorial schedule is outlined below. You need to attend the tutorial session that you have enrolled for via SSO.

  • Tutorial T01: Monday 1:00PM to 2:00PM, Room 104-G07  - Muhammad
  • Tutorial T05: Tuesday 4:00PM to 5:00PM, Room 104-G07 - Muhammad
  • Tutorial T06: Wednesday 8:00AM to 9:00AM, Room 104-G07 - Muhammad/Kelvin
  • Tutorial T02: Wednesday 9:00AM to 10:00AM, Room 104-124 - Kelvin
  • Tutorial T14: Thursday 10:00AM to 11:00AM, Room 104-124 - Muhammad
  • Tutorial T11: Thursday 1:00PM to 2:00PM, Room 104-124 - Kelvin
  • Tutorial T12: Thursday 3:00PM to 4:00PM, Room 104-G07 - Kelvin
  • Tutorial T04: Friday 10:00AM to 11:00AM, Room 104-G07 - Muhammad
  • Tutorial T07: Friday 1:00PM to 2:00PM, Room 104-124 - Kelvin
  • Online Tutorial : Monday 6:00PM to 7:00PM - Muhammad https://auckland.zoom.us/j/99726883487 Passcode : 337660 (Weeks 7 - 12)
  •  Online Tutorial : Friday 3:00PM to 4:00PM - Kelvin (https://auckland.zoom.us/j/5942917888)  (Weeks 2 - 6)

Tutorial Topics

  • Tutorial 1 -  week starting  3/8  : Binary number system including addition and subtraction
  • Tutorial 2 - week starting 10/8  : Binary multiplication and division with shifts, negative integers, floating point
  • Tutorial 3 - week starting  17/8 : Text representation and compression of text
  • Tutorial 4 - week starting  24/8 : Truth tables and logic gates
  • Tutorial 5 - week starting  31/8 : Assembly Code
  • Tutorial 6 - week starting  28/9 : Compilation
  • Tutorial 7 - week starting  5/10  : Operating Systems
  • Tutorial 8 - week starting  12/10   : Networking
  • Tutorial 9 - week starting  19/10   : Security
  • Tutorial 10 - week starting  26/10 : Turing Machines

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

There will be two types of assignments:

  • There are 4 essay assignments worth 8% of your final mark (i.e. 2% each). 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).
  • There will 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 in weeks 4, 6, 9 and 11. 
  2. There will be Coderunner assignments for weeks 2, 3, 4, 5, 6, 8, 9, 10, 11 & 12. Each Coderunner assignment is due on Monday the following week. For example, the Coderunner assignment for week 2 will be due on Monday of week 3.

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), priced at NZ$ 157.46

It is available to purchase either in store, or online via this link : https://ubiq.co.nz/p/9781337561914

If you order online you can choose either to collect your order from one of Ubiq's locations, or have it couriered to your address; for the time being they are offering free shipping on all online orders.

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 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.
    THE ONE WEEK LIMIT IS STRICTLY ENFORCED.

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.

 

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

 

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