Introduction to Computer Science - Course Information

COMP 112: 2020 Trimester 1

This page is still being worked on for 2020

This document gives additional information about the course that is not included in the Course Outline.

Course Organisation details


There are three lectures each week for COMP 112: 9am Tue, Wed, Fri MCLT102
  • The Tue & Wed lecture will address programming in Java,
  • The Fri lecture will address topics in Computer Science

You can also choose to attend the COMP 102 lectures (instead of, or in addition to the 112 lectures), which also cover programming in Java, but go more slowly. Lectures for COMP 102 are 9am, Tue, Wed, Fri, in KK LT303 (Kirk). In case there is not enough space, we will run a stream of repeat 102 lectures at 4pm Tue, 2pm Wed, and 1pm Fri in KK LT301. We do not expect the repeat 102 lectures to be necessary for the whole trimester, so you should not count on them running beyond the first several weeks.


Each student should sign up for and attend two weekly 1 hour lab sessions
  • Labs in Cotton 238 (main room) or Cotton 219. In case the number of students is too small, please go to Cotton 219.
  • Tutorial Lab: choose one of Mon 11-12, 12-1, 1-2, 2-3, Wed 11-12, 12-1, 1-2
  • Assignment Lab: choose one of Thur 11-12, 12-1, 1-2, Fri 11-12, 12-1, 1-2, 2-3

The first lab is in the second week of the trimester.

Note there are seven options to choose from for each of the two lab sessions. See the online timetable for the times you can choose from. You must sign up for a lab session on the web: (at (also linked from the course home page).

To work on your assignments beyond the scheduled lab times, you may use any of the ECS computing labs on the second floor of Cotton at any time, unless they are booked for another class. You may also use your own computer.

We will run help desks and workshops from the third week of the course.

The school also runs optional workshop sessions for 1st year students.

The details for all of these are available on the weekly timetable page.

Assignments and Practical Work.

There will be 9 weekly lab assignments. The course web site has a page listing the assignments, due dates, and resources. The lab assignments will be available from the website. If there is demand for it, there will be printed copies of the assignments available in the lab rooms.

For assignments 6 & 7, and 8 & 9, there will be alternative larger (2-week) assignments that you can choose to do instead of the two weekly assignments. Our advice is that you should only choose to do these assignments if you are doing well in the course. They are more challenging, and may be more interesting, but are a bad choice for students who are finding the regular assignments quite challenging.

There is an introductory lab exercise in the first half of the second week (Lab 0) that is mainly an introduction to using the computers in our lab facilities and the software that you will be using throughout the course. The other weekly assignments consist primarily of programming tasks. The assignments are a critical learning component of the course. They address most of the concepts and techniques that are introduced in the lectures, and they are the most important way of coming to grips with the material in the course. Due dates and how to submit your answers to the assignments is addressed below.

The assignments are intended to take a total of about 6 hours per week, but the actual time required will vary considerably from student to student. The scheduled lab sessions will help you get started the assignments, and then help you solve issues that you are stuck on, but you will need to spend more time outside the scheduled sessions. There will be scheduled help-desk times when a tutor is available to answer individual questions about the assignments, and we will also provide on-line helpdesk assistance.

Most of the assignments contain four parts:

  • a Core part, which you should aim to start in the first lab, and involves constructing programs using the basic concepts and constructs,
  • a Completion part, which extends the Core part and involves more difficult problem solving and may cover additional concepts and constructs,
  • a Challenge part, which usually involves substantially more difficult programming and may require you to find out new concepts and constructs by yourself.
  • a Reflection part, which involves thinking and writing about your experience of the assignment.

We also provide Lab Exercises, to be completed in the lab, consisting of questions to ensure you understand how to use the key new programming constructs for the week. You will generally work on these in small groups, to get to know other students who you can study with and to develop your collaboration skills. The Lab Exercises part is not assessed, though you need to do it. The assignment question part will be worth 90% and the Reflection part will be worth 10%. For each question, the Core part will be worth around 65%, the Completion will be worth 15% and the Challenge part is the other 20%. The programs will be marked primarily on whether they work correctly, but there will be some weighting for good program style.

We expect all students to be able to complete most of the Core and Reflection parts, and most to at least attempt the Completion part. The Completion part is important for students planning to go on to COMP103. The Challenge components are for students aiming for an A. If it takes you more than about 6 hours to complete the Core part of an assignment, we suggest that you should not spend additional time on the Challenge part. It is probably better to spend the additional time on the Reflection part, reading the textbook, going over your notes from the lectures, going to the workshop, or working on questions and problems with other students.

Assignment Submission

Most assignments are due at 10am on the Thursday of the week after the assignment was handed out. Please be aware that Assignment 5 due on 21 May (Thursday after the break).

When you have completed them, the assignments should be submitted via the online submission system. This means that you can submit assignments from the ECS labs or from a computer at home (or anywhere on the internet). You may resubmit as many times as you wish, but the most recent submission of a file will be marked . (You'll learn about how to submit assignments using a web browser in the introductory lab).

Assignment Marking

All the assignments are important for your learning. All the assignments will together contribute a total of 20% to your final grade.

We will mark the assignments as quickly as possible; our goal is to have the marks and comments returned within two weeks of the submission time. Your marks and comments on your submission will be accessible via the web: see the links on the Assignments page.

Note that the mandatory course requirement is that you must submit reasonable attempts for at least seven of the nine assignments. A "reasonable attempt" is a D (40%) or better. If you miss more than one of the assignments, contact the Course Organiser as soon as possible. Students who have not met these mandatory requirements will be required to do make-up programming assignments in order to be able to pass the course.

Model solutions to the assignments are generally made available one day after the assignment deadline, so that you can review and assess your own work, and also build on the model solutions for the next assignment. Comparing your work to the provided solutions is an important part of the learning. This means that assignments submitted after the solutions are posted will generally not be marked, unless you have made arrangements on the basis of exceptional circumstances with the course organiser (course coordinator).

Group Work

We encourage you to work on the exercises in small groups in the labs.

In COMP 112 you are also permitted and encouraged to work on the core and completion parts of the assignments in pairs. (Note: this is special to COMP102/112 and is not generally true for Engineering and Computer Science courses!) As long as you both include the name of the person you worked with on your assignment, you and your partner may each submit the same answer for the Core and Completion parts. You must do the Challenge, and Reflection parts of the assignment yourself, and you may not work on shared code in groups of more than two. Make sure you read the section on plagiarism below.

You may choose a partner yourself, and you do not have to have the same partner (or any partner) for all the assignments. When choosing a partner, find someone with a similar level of confidence as yourself - working with a partner who is much more confident about programming than you will probably not help you to learn the material.

Getting Help: help desk and online help.

To help you when you are having difficulties with the assignments, we have tutors able to respond to queries via an on-line helpdesk. The online tutor will be responding to queries throughout the week, but we cannot guarantee an immediate reply. We also intend to have a tutor in one of the labs at certain times as help desks. When they have been determined, the times will be announced and posted on the course web site. .

We strongly advise you NOT to leave the assignments to the last minute, since there may not be any help available near the submission deadline. In particular, you should not have an expectation that online help will always be available late in the evening, especially the night before the deadline..

Course Specific Information about Plagiarism.

Please read the School policy on Plagiarism. We will penalise anyone we find plagiarising, whether from students currently doing the course, or from other sources. Students who knowingly allow other students to copy their work may also be penalised. If you have had help from someone else (other than a tutor), it is always safe to state the help that you got. For example, if you had help from someone else in writing a component of your code, it is not plagiarism as long as you state (eg, as a comment in the code) who helped you in writing the method.

In COMP 112, we may use an automated system to check all submitted code in order to identify students submitting the same code who have not stated that they were working with a partner. The system does not make any code available to people other than the organiser of the course and the managers of the system.

Copyright: Although students own the copyright of any code that they write for an assignment, the COMP 112 assignments all build on some code that we have provided. This code is copyright by the university. We give you permission to use this code for your assignments, but you are not permitted to post your answers to the web, or distribute in any other way, if they include any of our code. Also, you may not distribute model solutions to anyone other than a student currently in the course. Breaking this rule is a violation of the university's statute on student conduct. If we find that you have distributed our code on the web or by other means, we will seek disciplinary penalties. Don't ruin the course for future students by giving them answers!