ANU The Australian National University
____________________________________________________
[ANU] [DCS] [COMP2100] [Description] [Schedule] [Lectures] [Labs] [Homework] [Assignments] [Assessment] [PSP] [Eiffel] [Reading] [Help]
____________________________________________________
____________________________________________________
Lectures: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29]
____________________________________________________

COMP2100
Lecture 1: Introduction

Summary

An introduction to the course, including discussion of the proposed assessment scheme, the textbooks, the information pack, labs and tuts, roles and responsibilities of teachers and students.

Aims


Important information

Lecturer: Dr Ian Barnes, Mr Richard Walker
Tutors: Dr Alexei Khorev, Dr Tamiru Jarso, Mr David Excell
Web Site: http://cs.anu.edu.au/student/comp2100/
E-mail: comp2100@iwaki.anu.edu.au

Unit Objectives

By the end of this unit, students should be able to:


Assessment

See the Assessment Page.


Textbooks

There will be no textbooks for COMP2100 in 2004. All the relevant books are poor value for money in my opinion. None covers everything we are going to do, so you would have to buy several. Instead the course brick will contain comprehensive lecture notes, together with selected readings from relevant books and manuals.

If you really want to buy a book, and have lots of money to spare, then consider one of the following recommended books:

  1. Object-Oriented Software Construction (second edition)
    Bertrand Meyer
    Prentice-Hall, 1997.

  2. Introduction to the Personal Software Process
    Watts S. Humphrey
    Addison Wesley, 1997.

  3. The Pragmatic Programmer
    Andrew Hunt & David Thomas
    Addison Wesley, 2000.

  4. Code Complete
    Steve McConnell
    Microsoft Press, 1993.

For more information on reading material, names and library codes of other relevant books, see the Reading Page.


Information Pack: Contents

  1. (Almost) complete lecture notes.

  2. Complete lab instructions.

  3. RCS: A System for Version Control

  4. The bash manual

  5. PSP forms, scripts and instructions

  6. Past exam papers

For a bit more information, see the Reading Page (or the brick itself...).

Note that all the information in the brick is available elsewhere, so there is no compulsion to buy it. I recommend that you do, because it is convenient, but it is up to you.


Information Pack: How to get it

  1. Go to the university cashier in the Manning-Clark centre foyer, and pay $26.

  2. Take your receipt to Sam at the DCS front office (Level 3, CS&IT Building).

  3. Exchange the receipt for one thick red brick plus one pad of PSP forms.


Technical Stuff

The technical matters we'll cover are basically methods and techniques for constructing software, given a high-level design. These methods become more important the larger the software you are working on.


The Project

One of my main aims for this unit is to give you an opportunity to develop experience and competence in working with larger programs. To do this I have structured the assignments around a project, which you will develop in stages throughout the semester.

Since most of the technical topics we have to cover are independent of each other, I have scheduled the lectures and labs so as to give you the information and skills you need for each stage of the project, when you need them.

The project for 2004 is to build a prototype "preflight" system for an academic journal. The scenario is that authors prepare their articles using an MS-Word template file. They submit the article electronically. The publishing system reformats the article for web and paper publishing and shows the results to the author who can then check that everything came out OK. The system also has to extract document meta-data like title, author's name and address from the document for use in table of contents, index etc.

We will do this using some pre-existing software and some software written specially for this purpose. The first step in the process is to use the OpenOffice package to convert the MS-Word proprietary format into an XML-based format that we can work with. The next step is to scan and parse that XML format to produce a data structure called a parse tree. The next step is to manipulate that tree to produce new documents (like the web version of the article) and to extract information (like the metadata). You will be working on an Eiffel program that performs these last two steps.

While this is a fairly small software construction task - the finished program will consist of a few tens of classes and a few thousands of lines of code -- it is far beyond what most COMP2100 students could do in a semester. So you will not be building the whole program, but instead working on three crucial stages in the development.

If you like, you can think of this as what might happen if you were a programmer working in a team. The plan for the team is to develop the software in stages. When you join the team, others have already constructed a prototype that performs some of the central functions of the finished program.

Your task in Assignment 1 will be to take a detailed specification for one component of the software and produce a test plan, test data and a shell script to automate the implementation of your test plan. You then have to run your tests on that component and write a test report giving details of all its defects.

Assume now that someone else has corrected all the defects in that component, and the project is ready to move forward. The prototype performs some of the functions of the finished program, but lots of features are missing. Your task in Assignment 2 will be to expand the program so that it becomes useful software. This will certainly mean grappling with the parse tree used to represent the document's structure. The parse tree is an example of a recursive data structure, one of the key ideas in this unit.

Assignment 3 will involve working on the graphical user interface of the system. You will be using the EXG (Eiffel X Graphics) library, which is an Eiffel binding for GTK+. GTK is the GIMP Tool Kit, one of the major open-source graphical toolkits available.


Lectures

Lecture Times:

  1. Monday 10am, Manning Clark Theatre 2.

  2. Wednesday 10am, Manning Clark Theatre 2.

  3. Thursday 5pm, Manning Clark Theatre 3.

As there are 13 weeks and 3 lecture times per week, that gives 39 lecture times in all. Subtract two for the Canberra Day and ANZAC Day holidays and it still leaves 37 time slots. At the moment we plan to deliver 29 or 30 lectures, so some lecture times will not be used. See the Schedule Page for the latest up-to-date information.


Laboratory Classes

The labs are designed to follow immediately after the lectures on the same topic, so that you can practice what you have learned.


Homework

Starting next week there will be homework due in your lab class each week. This basically consists of a small program that you have to write. Once you have started learning the PSP, you will have to follow it while you do the homework exercise, recording the time you spend in each phase of writing the program, and also recording all the errors you make. This will make you a much better programmer - guaranteed. For more information, see the Homework Page.


The Personal Software Process

In 2000 and 2001, the PSP was an optional part of COMP2100. This year, like the last two years, it is compulsory and will be assessed.


Responsibilities

A unit like this cannot work without everyone involved taking responsibility for their part.

Your responsibilities:

Our Responsibilities

We (lecturer, tutors, the department, the university as a whole) have responsibilities to you and to the wider community. These are sometimes in tension.

To you:

To the community:


My Expectations

There are only two of us, and many of you. In order for us to get along this semester, you need to know what we expect of you, not just for assessment, but also in terms of behaviour.


Division of responsibilities

To avoid inconsistency and the nasty situation of students getting different advice or rulings from different lecturers, Richard and I have decided on a strict separation of responsibilities. If you have a query, ask the relevant lecturer. The other lecturer will not answer.

Contact Richard Walker for all questions about: enrolment in the course, extensions, marks, lab groups, and any lectures given by Richard.

Contact Ian Barnes for all questions about: assignment specifications, homework specifications, the PSP and any lectures given by Ian.

Contact your lab demonstrator for all questions about: labs, your assignment marks (in the first instance).

____________________________________________________
Lectures: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29]
____________________________________________________
____________________________________________________
[ANU] [DCS] [COMP2100] [Description] [Schedule] [Lectures] [Labs] [Homework] [Assignments] [Assessment] [PSP] [Eiffel] [Reading] [Help]
____________________________________________________

Copyright © 2004, Ian Barnes and Richard Walker, The Australian National University
Feedback & Queries to comp2100@iwaki.anu.edu.au
Version 2004.4, 22 February 2004, 19:09:23