Course syllabus

Welcome to COMPSCI 120 

COMPSCI 120 introduces the basic mathematical tools and methods needed for computer science. In this course, we will develop the elementary mathematical skills needed to define, analyze and reason with the sorts of abstract concepts used in programming and computer science. Topics covered in this class include integer arithmetic, strings and sets, methods of proof (including induction), algorithmic analysis, graph theory, trees, counting, and probability.


Quick useful information:

Course book: coursebook.pdf

Study Guide: cs120_studyguide.pdf

Tutorial Guide: cs120_tutorialguide.pdf



We have set up Piazza for this course. The main purpose of Piazza is for you to interact with other students in the course. While lecturers will monitor Piazza and help if necessary, we believe that the best way for Piazza to work in this class is if you are all collectively responding to each other's problems! 

In general: mathematics is something that is best learned by doing and then having others critique your working, so that you can get better.  As lecturers, students often ask us for extra practice problems, or for the best way to revise material: We claim that Piazza is this!  Try to ask 1-3 questions a week and try to comment on 1-3 posts a week, and see how your skills will improve.

To encourage student responses, we as lecturers will follow a "2 hour" rule: during the first two hours of any post about the material in CS120, we will not respond.  (Note: this does not mean that we will respond immediately after two hours!  Depending on when your question goes up, we may be in meetings etc.  In general, we'll get responses up as soon as we are able to do so.  If you haven't seen a response in two working days, please repost or email us.)

Note that official course announcement will be made on Canvas and not necessarily also on Piazza. You are therefore required to check Canvas and your university email account ( regularly.


Teaching staff

Course Coordinator and Lecturer (weeks 1-6):

Simone Linz, room 303-481

I am happy for you to knock on my office door pretty much anytime (but please don't be offended if I explain that I'm not available at that moment). If you would like to set up a definite appointment, then feel free to email me and we'll make an appointment.


Lecturer (weeks 7-12):

Jonny Stephenson, room 303e.234,

Office hours:

10-12 Tues
1-2 Weds
10-11 Thurs

and by appointment



Jose Manuel Aguero Trejo (Tue 9-10.30, Wed 9-10.30)

Songbao Mo (Tue 11-12.30, Fri 11-12.30)

Winston Su (Mon 4-5.30, Tue 4-5.30, Fri 4-5.30)

Siyuan Liu (Mon 9-10.30, Wed 12-1.30, Wed 4-5.30)

Class representatives:

You can share with them any suggestions/complaints/remarks about the course. Please note, that class reps are not part of the teaching team. 

Richard Lee (
Kristen Martin (
Zihao Zhang (

Facebook page for COMPSCI 120 administered by the class reps: 

Link to a student survey designed by the class reps.


Lecture/Tutorial times and locations

Please check SSO for locations, as they may change at the start of the semester!


Information regarding university policies and technical support:

Academic Integrity

Aegrotats and compassionate passes

Canvas help



Attempt all of the assessments, even if what you submit is incomplete!

  • 4 assignments, worth 20%  (5% each)
  • 9 tutorials, worth 9% (7 best tutorial grades are chosen, every tutorial is worth 2 marks)  
  • Mid-semester test, worth 20% 
  • Exam, worth 50%
  • Diagnostic test 1%



  • Assignment 1 is due on  2 August 2019, 4pm
  • Assignment 2 is due on  16 August 2019,  4pm
  • Assignment 3 is due on 27 September 2019,  4pm
  • Assignment 4 is due on 18 October 2019,  4pm

Assignment hand-in boxes are located in the Faculty of Science Student Resource Centre on the ground floor of Building 301 - room G402. All assignments should be handed in to the correct hand-in box before 4pm on the due date. Late assignments and those in wrong boxes will not be marked.

The most important part when submitting an assignment is the coversheet. Coversheets must be generated on Canvas. Each coversheet contains a personalised QR-Code with your information, unique to that particular assignment.

Please make sure that your QR-Code is complete, machine readable, not resized and not corrupted. The Student Resource Centre needs this QR-code to scan, track and process assignments in a timely manner. Furthermore, each coversheet has a declaration on it which you must date and sign.

Assignments without a valid coversheet cannot and will not be marked. In addition, you may be penalised for failing to sign and date the declaration.

Coversheet help video: cover-sheet-guide.mp4  



Tutorials are weekly.  There is one 90 min tutorial each week that you are responsible for attending. Tutorials start in week 2 of the semester. There will be no tutorial in weeks 6 and 7 (the last week before the break and the first week after the break).

You must attend the tutorial that you signed up for on Student Services Online.   If you are unable to do so due to illness/family emergencies/other extenuating circumstances, email your course coordinator as soon as you can. 


Mid-Semester Test  -- 28 August 2019, start at 6pm:

The test is 60 min long plus a five minute reading period and covers all of the material from the first five weeks of class.  The test will contain 8 multi-choice questions and  1 free-response question. Check the assignment page and Canvas announcements for locations, times, and more information closer to the test date.



The exam is two hours long and covers material from the whole course; it will contain 12 multi-choice questions and  3 free-response questions. The exact date of the exam is not available until around the middle of the semester.

No calculators are permitted on the exam or test. Please note that the test and exam are designed so that a calculator is unnecessary; if you can add and multiply single-digit numbers, you will be capable of performing any of the calculations present.

Course summary:

Date Details