COMP1011 Course Information for Session 2, 2005
Computing 1A 05s2 Last updated Tue 30 Aug 2005 16:35

The present document is available online at

It will be updated from time to time. Check the web regularly for the latest version.

Course Overview

This course will introduce you to computer programming and basic elements of computer science. This includes the design, implementation, and testing of programs as well as reasoning about programs, elementary algorithms, and basic data structures. Moreover, you will learn how to use the Unix programming environment. Programming is explained at the example of the functional language Haskell, which exhibits basic concepts of programming languages in a particularly clean way and allows you to solve relatively complex programming problems after a couple of weeks. The course includes many practical exercises.

Course Objectives

After successfully completing this course, you are able to

Keeping Informed

Important notices related to this course will be displayed on the course home page, which is located at

It is your responsibility to check this page regularly. Sometimes urgent information may also be sent to you by email. Make sure to check your email daily and pay careful attention to any course-related email you receive. For the email policy, see under the heading Email below.





Manuel Chakravarty


Will present most lectures

Mei Cheng Whale (maybe)

Course Administrator

Responsible for the administration of the course

Tutorial and Laboratory Class Allocation

All students attend one 2.5 hour combined tutorial/lab each week. This is a one hour tutorial followed by a one and half hour lab.

Tutorials have been allocated during enrollments. You can inspect your allocated tutorial/lab time on the web (see the course homepage). You can also change your tutorial/lab using myUNSW. If you have any difficulty in changing your tutorial/lab, please contact us by email.

Getting Help

From time to time, various problems may arise in your study of this course. Below is a list of typical problems, with suggestions for where you might seek help with them:


Where to get help

Troubles understanding course

Your tutor (during tute or by email), OR
Post a question on the message board

Stuck with assignments, lab work

Problem installing software on home PC

Questions about assignments marks

Problem with workstations in Lab

Help Desk (Mec Eng undercroft, J17-UC)

Problem with your login account

Want to change lab-tute class


General administrative problems


Problems concerning the course web pages

Questions about exam or final marks

Been very sick => Assignment late

Student Centre & email

Been very sick => Couldn't attend final exam

Student Centre

Problem with Dial-Up-Access from home

UDUS: DIS><Connect Helpdesk (9385 1777)

Problems with enrolment in course

CSE School Office (K17 ground floor), or Student Centre

Problems with your degree (like which courses to do)

Your Program director

Problems coping with university generally

University Counselling Service: extension 5418 (or 9385 5418)

Lost property

Campus Security: extension 56000 (or 9385 6000)
CSE School office (K17 ground floor)


Campus Security: extension 56666 (or 9385 6666)


You may ask questions by email; although, given the amount of mail we normally get, it may take a while before you get a reply. For many questions, you will get a faster response if you post to the message board. If you do use email do not email Manuel Chakravarty or Mei Cheng Whale directly; instead use the course email address

Important: All course-related email will be sent to your CSE email address. Moreover, teaching staff is advised to only answer course-related email queries that originate from CSE email addresses. Email from other sources will be ignored due to privacy concerns. Failure to read your email does not constitute a sufficient reason for any form of special consideration. Read your CSE email daily!


The purpose of lectures is to introduce you to the concepts covered by this course, show where they fit in the overall scheme of things and provide motivating examples to help you understand them. A textbook, and in some cases written lecture notes, accompany all lectures and may contain additional information about the covered topics. You need to read and understand the lecture notes to fully cover the course content.

Learning research shows that students learn more efficiently when they do the reading before attending the lecture. Please record the lecture times and locations in your weekly schedule.

Assessment Summary

The assessable components of the course are the following:



Tute/Lab mark


Assignment 1


Assignment 2


Final exam




Your exam mark must be a pass (at least 30/60) in order to pass the course. Moreover, your class mark (tute/lab plus the two assignments) must be a pass (at least 20/40) in order to pass the course.

Tutorial marks will be given for attending and participating in the tutorials. Each week, lab exercises will be handed out. You should attempt to solve them before the tute - some of the exercises will be marked by your tutor during the lab; they will make up your lab marks. Experience shows that students who do not attempt to solve lab exercises before the tute rarely get full tute/lab marks.

The final mark will be the weighted average of the assessable components as listed above. Where assignment marks are significantly higher than your exam mark, you may be required to attend an interview to explain the difference. Marks may be scaled to ensure that the Pass/Fail boundary and the Distinction/High Distinction boundary are at a consistent standard from session to session.

Special Consideration

Students whose exam performance is affected by serious and un-foreseeable events outside their control can apply at the student centre for special consideration. Special considerations will only be given where all other components of the course (assignments, tutes, exams, and labs) have been satisfactorily completed.

The document "Important Advice for Students" states the supplementary assessment policy for CSE. The following criteria should be followed closely when considering a student for a supplementary exam:

The document can be found on-line at

In particular, make up your mind whether your are ill before the exam. Once you have sat an exam, no supplementary exam will be granted. Depending on student numbers, supplementary exams may be oral. Oral exams will be conducted on the day before and after the date for written supplementary exams.


Labs and tutes start in week 2.

Practical programming competency is an important objective of this course. The best way to learn programming skills is to practise programming - you do that in that in weekly laboratories and with assignments. Laboratories and tutorials are integrated in this course. The first hour will be conducted in a tutorial room discussing set tutorial questions and preparing for the lab exercises. This will be followed by 1.5 hours in a laboratory.

The tutorial component will give you a chance to clarify ideas mentioned in lectures and to practise your problem-solving skills in a small, more personal, class with the assistance of a tutor. Tutorials are designed to help you learn. They are your main forum for asking questions and getting personal assistance. You should make sure that you use them effectively by examining in advance the material to be covered, by asking questions, by offering suggestions, and by generally participating.

In the laboratory component of the class, you will work through set programming exercises. This will give you a chance to develop your programming skills on small, simple examples. The examples have been chosen to highlight particular aspects of programming, and are designed to assist you in your assignments. Your tutor will be there to assist you.

There are marks for tutorial participation and for the completion of the laboratory exercises.

The tutorial questions and laboratory exercises will be placed on the course web page. You will need to read them and prepare in advance.

The assessment of the laboratory exercises will be done in labs by your tutor. Each week's lab exercises will include a core section and many will include an extension section. Unless otherwise stated all questions are to be completed and marked during the lab in which they are given. Lab exercises must be marked face to face with your tutor during the lab, email submissions will not be accepted. The total lab/tute mark is out of 30. Each week there are generally three marks available -- one for attending the tute, one for the core lab component, and one for the extension component.


The programming assignments are a very important part of the course. Assignments give you the chance to practise programming on slightly larger problems (compared to the small programs in the laboratory exercises). The aim is for you to practise all stages of the programming process: Start by understanding the specification, design a method to solve the problem, refine this design, implement the design as a complete program, and test that the program meets the specification. Assignments are a very important part of this course; you absolutely must make sure that you attempt them yourself. A portion of the final exam may relate to assignment work.

There are two programming assignments. The provisional schedule is as follows:

For each stage, you will have about two weeks from the release of the assignment specification to the submission deadline. Past students advise that assignments take far longer to complete than you at first estimate, so make sure you start them early and allow plenty of time. You cannot complete a computing assignment in one week.

Assignment work can be completed on the workstations at Uni or on a PC at home. Assignments must be submitted on-line from a school terminal via the give command (submissions by email or on floppy disk will be disregarded). It is in your best interests to make regular backup copies of your work and (because of machine loads on deadline days, for example) to complete and submit assignments well before there deadlines. Failure to meet the assignment deadline due to technical problems (computer crash etc) do not constitute a valid reason for special consideration, except where these problems are caused by the School.

If you wish to submit an assignment late, you may do so, but the maximum available mark for late assignments is reduced by 10% per day for up to five days. Assignments that are more than 5 days late will be awarded zero marks. So if your assignment is worth 85% and you submit it one day late you still get 85%, but if you submit it two days late you get 80%, and so on.

Assignment extensions are only awarded for serious and unforeseeable events. Having a cold for a few days, deleting your assignment by mistake, going on holiday, going abroad, work commitments, etc do not qualify. Therefore aim to complete your assignments before the due date in case of last minute illness, and make regular backups of your work. No extension will be granted without a fully documented submission for special consideration at the Student Centre.


All work submitted for assessment must be entirely your own work. We regard copying of assignments, in whole or part, as a very serious offence. In line with the University Plagiarism Policy and the CSE Plagiarism Addendum, we check for plagiarism of all kinds in assignment submission and harsh penalties await offenders. Please read Plagiarism in Computing: A Student Guide carefully.

These are no idle threats, we use plagiarism detection software to search for multiply-submitted work. In this course, we have failed up to 10% of the students in previous years due to plagiarism. See also the Unix Primer and the Yellow Slip for additional information. If the penalties set out on this page, the Unix Primer, or the Yellow Slip differ for any situation, the more severe penalty applies.

Note that we have experienced cases of plagiarism where the code has been copied from printouts or floppy disks that have been lost in the lab or stolen from the computer or printer. Generally, it is your responsibility to prevent other students from accessing your files, but if you loose a printout or floppy disk, please inform your tutor immediately.

Final Examination

The final examination in this course will be held during the November examination period; it will be a closed book exam and examine all material covered in the course. Supplementary examinations will be held in December. It is your responsibility to check notice boards for details of supplementary examinations and to ensure that you are available at the required time. In particular, previously booked flights home will not be accepted as an excuse to not be available at set examination dates. See also the information about special considerations above. The exact dates for the exam and the supplementary can be found on the web (

Text Books

Chakravarty and Keller, An Introduction to Computing with Haskell, Pearson (2002)

Reference Books