Introduction to Computer Program Design - Course Information

COMP 102-112: 2021 Trimester 1

Please note that this is the web site for both COMP102 and COMP112. The only differences between the two courses are the lectures.

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

Course Organisation details


COMP 102 lectures:
  • Mon, Wed, Fri, 2:10-3pm, KKLT303
COMP 112 lectures:
  • Mon, Wed, Fri, 2:10-3pm, MCLT102 (Mon & Wed: faster programming, Fri: Computer Science topics)

Lectures are recorded (available through Blackboard) so that you can catch up on a lecture that you missed or if you have a timetable clash. The recordings aren't great, so it is very unwise to plan on using them in place of attending lectures unless you really have to.


Each student should sign up for and attend two weekly 1 hour lab sessions
  • Labs in Cotton 219 (main room) and Cotton 238 (overflow).
  • Tutorial Lab: choose one of Monday 10-11, 11-12,Tuesday 10-11, 2-3, 3-4, Wednesday 3-4, 4-5
  • Assignment Lab: choose one of Thursday 3-4, 4-5, 5-6, Friday 12-1, 1-2, 3-4,4-5

The labs start on 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 10 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 9 & 10, 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/second week 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 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.
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. 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 design.

We expect all students to be able to complete most of the Core part, 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 going over your notes from the lectures, going to the workshop, or working on questions and problems with other students.

Assignment Submission

Assignments are due at 10am on the Thursday of the week after the assignment was handed out.

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

We will mark all assignments, but we only have time to mark one of the questions in each assignment. The question to be marked will be chosen randomly and this may change from assignment to assignment. So you will have to do all questions because all the questions 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 eight of the ten 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 102/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 part 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. 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 102/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 102/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!