CLP110
CT105(ii)
Computer Languages and Programming 110

5 points
Full year

Aims

At the end of this course, you will

Course Synopsis

This course will teach you how to design, write and test computer programs using object-oriented techniques.

Instead of simply introducing you to a programming language, the course will concentrate on program design issues - in particular, object-oriented design. You will find the approach quite different from that used in most introductory programming texts. Experience shows that these conventional approaches allow you to develop poor programming practices which then need to be erased from your memories as you learn strategies for designing large software systems!

The programming language will be ANSI standard C. As you will probably be aware from the popular computer press, Java is the computer language which is growing fastest in popularity. Java is based on C, so most of what you learn will be applicable directly in Java. The object-oriented design techniques used here are necessary in Java, so you will be able to translate programs written for this course trivially to Java - or the other popular object-oriented language, C++.

Unit co-ordinator: Dr John Morris, 4.17 email: morris@ee.uwa.edu.au

Contact Hours

Lectures

There will be one lecture every week for the whole year (26 lectures in all).

Monday 10 am Engineering Lecture Theatre 1

Laboratory Classes

You should attend a laboratory class every second week. The first laboratory class (for students in the even group) will be held in week 2. The odd group's first laboratory class will be in week 3.

A report on each laboratory should be submitted electronically within 7 days of your laboratory session. Some - not all - of these will be marked for assessment purposes. You will not be told in advance which assignments are to be marked, so you must make sure to submit a report for every practical session to avoid losing marks. Each submission should consist of a short report and the program files. A 1-2 page report will generally be adequate.

Laboratory Schedules - 1999

Jump to laboratory schedules for 1999.

Clashes

If you have a clash with another class, then
  1. Choose another time. (Obviously choosing times for which the lab is nearly full, eg Even Tuesdays, has less probability of having space!)
  2. Present yourself to the tutor at the beginning of the lab class. The tutor will advise whether there is room for you in that class.
  3. If there is room, you will be added permanently to that time.
  4. Otherwise, you should repeat steps 1-2. Remember that if there isn't room in even weeks, there may be in odd weeks!
  5. If there doesn't appear to be any suitable time, consult the lecturer and arrangements will be made for you.

Little previous experience with a computer?

The labs will be open on Tuesday, Wednesday and Friday of the first week of first semester. There will be a tutor there who will take you through some basic operations of the systems that you will need to use.

You may also like to attend additional practice classes when the tutors are there to help you. If there are sufficient computers, you may attend any class, but students scheduled for that class have priority.

Remember that the computers are available 24 hours a day (except when booked for classes), so there is plenty of opportunity to practise.

Practical Tests

There will be two practical programming tests. The first (at the end of first semester) will be graded and constitute 10% of your assessment for the year.

The final one (in the last weeks of second semester ) will be marked on a pass/fail basis. Full details of this test may be found in the assessment section.

Tutorials

There are no separate tutorials in this unit. You are encouraged to discuss any part of the course with the tutors during the laboratory sessions: they are there to answer questions on any aspect of the course - not just the current exercise.

You may also seek help from the lecturer - see communication below.


Assessment

Assessment for this course will consist of:

Weight
Laboratory Reports 3
(chosen at random)
10%
Assignments 14%
26%
Practical Tests3 hours
(End of Semester 1)
10%
3 hours
(End of semester 2)
Hurdle
Examination2 hours70%

Notes:

  1. Hurdle for the practical test means you must obtain a pass for this test before being able to sit the exam.
    You must pass the second semester practical test to pass the unit as a whole.
    If your enrolment is then not passing the practical test means
    CLP110failing the whole unit.
    CT105you will be awarded 0 marks for the CLP110 component.
    You may still be able to pass by averaging more than 67% in both other components.
    You will have multiple opportunities to pass the test.

  2. This is a practical programming course: the programming skills that you will acquire by doing the assignments are the foundation for practical work in later years of the course. As a consequence:

    Laboratory reports and assignments are compulsory.
    Failure to submit any one of them may cause you to fail the whole unit.

    Please read carefully the Faculty policy on plagiarism. The temptation to make electronic copies of others' work may be strong, but the chance that you will be detected is high and the consequences are best avoided!
    The safe policy is to make sure to acknowledge the source for all material which is not your own work: at the worst this will result in loss of marks, but it will avoid much more onerous penalties!

In first semester, you will be expected to complete laboratory reports only. In second semester, you will have two assignments to complete - but will be required to submit only two laboratory reports.

Laboratory reports

These should be brief summaries of the work done or results obtained in the laboratory exercise. Laboratory reports should be concise and to the point! It is unlikely that you will need more than the equivalent of 2 A4 pages (~120 lines) for any report. The report should be accompanied by all the program files that you used to obtain the results. In your electronic submission, submit text files only - containing your report and the program code. Do not submit compiled objects or executable programs! If necessary, the markers will re-compile your program on another computer: since it must be written in portable ANSI standard C, this will be easy for them. The
submission instructions explain exactly how to prepare files for submission.

Do not forget to include your name, student number and email address on your report.

Assignments

Assignment specifications will be available at the beginning of second semester.

You may attempt these assignments in groups of no more than 6 students. The report submitted with the assignment should clearly indicate the names of the students who contributed to the submission. You may decide amongst yourselves how the work for the assignment is split between the group members. Some can do the programming, some the testing, some writing the report, etc.

Needless to say, simply persuading some of your more obliging friends to add your name to the list of contributors to any assignment is a dangerous practice. Knowledge gained from attempting the assignment will help you pass the practical test and the written exam. It is strongly suggested that you work as a group on the whole assignment, so that each and every member of the group understands how the final submission was constructed and could reproduce the submitted program working alone.

Assignment reports

Each assignment submission should be accompanied by a summary report. The report should be clear and concise: it is unlikely that you will need to write more than 2 A4 pages (or about 120 lines of text).
Report Format
The report should be in plain ASCII text. The 'native form' of any wordprocessor will be rejected. If you prefer to use a word processor to prepare your report, then ensure that you export a plain text file for submission when you have finished.

This allows you to concentrate on the content of the report, rather than the cosmetics of its format. However, the general standards for report structure and organisation (title, authors, introduction, body grouped into related paragraphs, conclusion, etc) expected for any other unit apply here also.

Practical Tests

There will be two practical tests - the first during the exam period at the end of first semester and the second before the end of second semester.

These tests will be taken under examination conditions (no talking, collaboration, etc) in the laboratory.

Practical Test 1

This will be a simple programming task (such as adding a method to the definition of a class) which will be graded. It is worth 10% of your final mark for the unit.

Practical Test 2

The second practical test will be assessed on a pass/fail basis only. You must pass it to pass the unit as a whole, but you may attempt it multiple times until you pass it. If you fail this test, your failure will be noted, but you will be able to attempt it again. If you have still failed it after three attempts, you should urgently seek counselling from the lecturer or the tutors.

You may bring one C textbook which contains no additional notes added by you into the test. Highlighting sections which you consider important or adding bookmarks is permitted. If you are in the habit of adding extensive margin notes to your textbooks, then it is strongly suggested that you borrow an unmarked text from a colleague for the duration of the test. While an occasional annotation will be overlooked, you may be excluded from the practical test (and required to sit it at another time) if your text contains an unacceptable number of additional notes.

Further details on the mechanisms for sitting this test will be available at the beginning of second semester.


Communication

This course attempts to be "paperless" as much as possible! Assignments will be submitted electronically and detailed comments will be emailed back to you. Please ensure that your reports include email addresses of all authors, so that everyone can receive the comments directly.

The preferred method for communication with the lecturer and tutors is, at least initially, email. All routine queries will be handled this way: we will attempt to respond to all email messages by the next day. If you have more complex problems, email for an appointment (suggest a few times when you will be free).

This should not deter you from coming to talk to me at any time you have difficulties, want to argue about the philosophy of the course, want to discuss your assignments, laboratory reports, what to take next year, sailing, good food or wine or anything else that takes your fancy .. try to find me in my office at any time (but early in the morning is likely to be a waste of time!). However emailing for an appointment first ensures you some priority and enables you to avoid wasting a trip to the 4th floor when there may be zero probability of success because other students have got there before you. Unfortunately, Senator Vanstone's mangling of the education budget has meant that we are unable to provide a comfortable waiting room if you have to wait while someone else's problems are sorted out first! It's unlikely that her successor will be able to do anything much very quickly, even if, by some miracle, the current government discovers that not investing in education is a very short-sighted philosophy.


Lecture Notes

A set of notes for this course, entitled "Objects First" is available on the Web. From the
table of contents page you can jump to any section of the course.

There is a home page set up for course information:

http://swww.ee.uwa.edu.au/~ct105
On which, you will general course information; you can follow the links to this page and the notes themselves. If the main page is unavailable for any reason, you may find the notes also at:
http://ciips.ee.uwa.edu.au/~morris/

Electronic Copies of Lecture Notes and Slides

The lecture notes, slides, example files, solutions, etc are available on the Department's CD-ROM. You will be able to purchase this for the ridiculously low price of $10: this is a new initiative of the department, so it may not be available until just before semester starts.

Web browsers

Web browsers have varying capabilities: the notes were checked with Netscape 3 - but should read intelligently with other browsers. If you have problems, I would be interested to know about them, but please note that updating these notes, tutoring and marking your assignments for this course have priority: problems with other browsers, your home computer, etc, will only be investigated if time permits.

Using the notes

The notes make use of the hypertext capabilities of Web browsers: you will find highlighted links to subsidiary information scattered throughout the text. Occasionally these links will point to Web resources which may be located off campus and take some time to download: you may find it productive to use the "Stop" facility on the browser to abort the current fetch - you can try again later when the Net is less heavily loaded.

In all cases, the browser's "Back" command should take you back to the original page.

Program source

Example source code for programs will sometimes pop up in a separate window. This is to enable you to scan the code while referring to the notes in the main page. You will probably need to move the source code page out of the way of the main page. When you have finished with the source code page, select File:Close to close the window. Selecting File:Exit will close the window and exit from Netscape - possibly not your intention!

Textbooks

You will need a text which covers the ANSI C language. Almost any text will do, but be sure that it covers ANSI C, not the older, original version of C. Assignments and test programs which are not in ANSI C will be failed.

A list of possible texts has been prepared. What constitutes a good text is a very personal issue. The way any particular author explains any subject may appeal to you, whereas another student may find it too detailed, too trivial, boring or ... It is suggested that you may like to group together with a few of your class-mates and buy a few different texts which you can share around the group. In that way, you can read a number of authors' explanations of difficult points - one of them is bound to 'strike a chord' with you!

Criteria which make a text acceptable and useful for this course (and for reference in courses in later years) are:

WARNING: Books with titles like "C in 7 days" or "C for dummies" should be avoided! Many of them suggest poor programming practices and contain much bad advice: some of the practices they advocate are simply not acceptable to professional software engineers and will not be accepted in this course.


Continue on to the lecture notes.
© John Morris, 1997