Effective Programming

Semester 1, 2018

Teaching Team

  • Steven Mills
  • Hamza Bennani
  • Paul Crane


This paper aims to improve and develop your programming skills by setting a series of exercises, called études, which require an analytical and creative approach to problem solving. Most, but not all, of them will involve programming tasks. Some will not use computers at all, while others will use computers only for ancillary tasks. Each solution will be assessed against the requirements and you will be expected to go back and rework each étude until it is completed satisfactorily. You will be required to fully test and debug your programs as well as learn to identify inefficiencies.

The main objectives of this course are to develop and foster general skills relating to computer related techniques, understanding a problem, problem solving strategies and working with people. Most of the études will require working in pairs or in groups, although some exercises are individual work. There are no lectures, but weekly town hall meetings will be used to discuss or propose solutions, give hints, and reflect on the things you've learned.

To pass COSC326 you must complete all of the études. The individual point values for each one are really just a rough indication of their (expected) lengths (one point equalling one lab).

The course structure and objectives are set out in more detail in the manifesto.

Academic Integrity

In COSC326 we place high value on the virtue of academic integrity, and view academic misconduct as a very serious matter. For further information, please see our statement on academic integrity and academic misconduct. Here is a student guide to Academic Integrity published by the University.

Submission details

Please send all COSC326 related materials to not to any personal address. This includes all submissions of work, questions etc.

When submitting programs you must submit source code (i.e., .java, .py, or similar files). If for some reason you're using a language other than Java, Python or C, please also include a readme or similar on how to compile and run.

When submitting reports, please submit plain text or (preferred) PDF files. Under no circumstances should you submit .doc, .docx, .odt or similar file types. You should think of your reports as being documents sent to a client answering questions that the client has raised -- we may bounce them back if they are too informal, too technical, or poorly presented.

If you have made significant use of any external resources in preparing your code or report, those resources must be identified, and acknowledged. Formal citation is not necessary, but enough information to enable me to find the resource is required.

IIf a submission is accepted we will reply with an email that includes the phrase "complete and correct", or a very close variant. When you receive such an email you can assume the submission has been accepted. Conversely, if that phrase does not appear, then your submission has not been accepted and a resubmission is required. If you are at all in doubt, then check back with us before assuming either that you've finished, or that you haven't (last semester a couple of students sent me resubmissions of études that we'd actually already accepted).

Timetable - Semester 1, 2018

Town hall meetings: 10:00-11:00 on Thursdays in Ōwheo G34.

Laboratories: 11:00-1:00 Tuesdays and Fridays, in Ōwheo Lab A.

NOTE: The first lab time (11 o'clock on Tuesday Feb 27) will be an extended Town Hall in G34. It is important that you attend this session as we will be organising groups and introducing your first tasks.

Étude Name Type Points  
1 Pairing Individual 1  
2 Mū Tōrere Group 1  
3 Pushing Buttons Pair 1  
4 Desert Crossing Group 3  
5 Dates Individual 2  
6 Lights Pair 2  
7 For Sale Group 2  
8 Cordless Phones Group 3  
9 Rational Coding Pair 3  
10 Sums Pair 2  
11 Arithmetic Individual 2  
12 Supersize It Group 1  
13 Circles Individual 1  
14 Bug Squashing Individual 1  

Page maintained by Michael.                     Last updated:  23rd Feb 2018   03:05