Course syllabus

Introduction to Computer Systems: COMPSCI 110 Summer School 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 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

This summer school semester there will be 6 lectures and 2 tutorials a week. The lecture timetable is as follows:

  • Monday 2 - 3
  • Tuesday 2 - 3
  • Wednesday 2 - 3
  • Thursday 2 - 3
  • Friday 1 - 3

All lectures will be held in MLT3 (Building 303, room 101). 

Tutorials will be held on Wednesday and Friday. Tutorials will be in room B11 in Building 303. Please attend the tutorial stream you have enrolled in through SSO.

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.

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. The summer school semester is only 6 weeks long and the pace is correspondingly intense.
  • 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.

Assessment

Type

% of final mark

Exam

50

Test - date : 28th January

20

10 tutorials with group work

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%
  • Pass the course work consisting of the tutorial group work tasks, assignments and essays - 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.

Lecturer / Topics and matching Learning Outcomes

The order of lectures is open to change.

Part 1: Dr Damir Azhar

Introduction

2 lectures

Monday 6/1

Tuesday 7/1

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

Wednesday 8/1

Thursday 9/1

Friday 10/1

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 10/1

Monday 13/1

Tuesday 14/1

Wednesday 15/1

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

Thursday 16/1

Friday 17/1

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 17/1

Monday 20/1

Tuesday 21/1

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

Wednesday 22/1

Thursday 23/1

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

Friday 24/1 - Overflow / Review

 

Part 2:  Asma Shakil

The midterm test, assessing Part 1 of the course, will be held on the 28th of January.

Week starting 28/1:

Unit 1 : The Compilation Process

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

2 lectures

Tuesday 28/1

Wednesday 29/1

Textbook section:

11.2 The Compilation Process

Unit 2 : Operating Systems

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

3 lectures

Thursday 30/1

Friday 31/1

Friday 31/1

Textbook section:

6.4 Operating Systems

Week starting 3/2:

Unit 3 : Networking

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

2 lectures

Monday 3/2

Tuesday 4/2

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 4 : Security

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

3 lectures

            Wednesday 5/2

Friday 7/2

Friday 7/2

Textbook sections:

8.2 Threats and Defenses

8.3 Encryption

8.4 Web Transmission Security

Week starting 10/2:

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) 

2 lectures

Monday 10/2

Tuesday 11/2

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

Wednesday 12/2

Thursday 13/2

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

Friday 14/2 : Review lecture for the course.

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 start on Friday 10/1. All tutorial slots are one hour long and are held in Maths and Physics building (B303), room B11.

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

Tutorial 1 (10/1): Binary etc including addition and subtraction

Tutorial 2 (15/1): Binary * and / with shifts, negative integers, floating point

Tutorial 3 (17/1): Text representation and compression of text

Tutorial 4 (22/1): Truth tables and logic gates

Tutorial 5 (24/1): Assembly code

Tutorial 6 (29/1): Compilation

Tutorial 7 (31/1): Operating Systems

Tutorial 8 (5/2): Networking

Tutorial 9 (7/2): Security

Tutorial 10 (12/2): FSM & Turing machines

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

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 $152.96.  

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. Once you've read this, click here to follow up.

 

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

  • Student representatives:
    • TBA

 

 

Course summary:

Date Details Due