UQ Students should read the Disclaimer & Warning

Note: This page dates from 2005, and is kept for historical purposes.

The University of Queensland
School of Information Technology and Electrical Engineering
Semester 2, 2003

COMP2500 - Programming in the Large
COMP7908 - Advanced Software Engineering

Course Profile


This is version 2 of the COMP2500 course profile, dated 22 July 2003.

Changes since the last version

COMP7908 tutorial has moved due to a clash

Course Summary

Course Code(s): COMP2500, COMP7908
Unit Value: #2
Contact Hours: 5 hours per week (3L2T)
Purpose: COMP2500 is a software engineering course aimed at developing the technical abilities
needed to be an effective member of a large software development team.

Teaching Staff

Dr Anthony MacDonald (Course Coordinator)
Office: 78-547
Phone: (07) 3365-1658
Fax: (07) 3365-4999
Email: anti[at]itee.uq.edu.au
Consultation Time: see below

Prof. Paul Bailes
Office: 78-521
Fax: (07) 3365-4999
Email: paul[at]itee.uq.edu.au
Consultation Time: see below

To send mail to both lecturers, use the address comp2500[at]itee.uq.edu.au


Announced via the course web page.

Course Goals

The course introduces the students to the requirements of programming-in-the-large, that is, programming as part of a larger team to deliver a software system and all its supporting documentation on time and within budget. It will introduce the software life cycle and focus on the design, implementation and testing phases of the life cycle. It will emphasise the features of the Java programming language that support programming-in-the-large. As programming-in-the-large involves being part of a team, the course will develop the students' communication skills through group work and tutorial presentations. Finally, the course introduces the students to the Unix operating system.

It is expected that upon successful completion of the course, students will:

Assumed Background

Pre-requisites for COMP2500: COMP1500 or CS129 or CS181
Pre-requisites for COMP7908: COMP7901 or CS803

Students are expected to be familiar with the basic programming and control constructs of Java; the basic object-oriented features of Java, such as methods, objects and classes, and inheritance; how to build graphical components and event-handlers in Java; and exceptions and files.



The recommended text is:
Please note this is a recommended text, not a required text. The course does not directly follow this text or any other text, rather the texts provide a complementary discussion of the material.

J. Nino and F. Hosch. An Introduction to Programming and Object Oriented Design using Java John Wiley & Sons, 2002. (QA76.64 .N57 2002)

Reference Texts

Students are not expected to purchase the following books, but may find them useful. Copies of some of these books are available in the library. The following books will kept available for short loan in the PSE library.

R. Winder and G. Roberts. Developing Java Software, second edition, John Wiley & Sons, 2000. (QA76.73.J38 W557 2000)

R. Duke and E. Salzman. Java Genesis, Pearson Education Australia, 2000. (QA76.73.J38 D34 2000)

B. Eckel. Thinking in Java, Prentice Hall, 1998. (QA76.73.J38 E25 1998). A revised edition of this book is available on-line at http://www.ibiblio.org/pub/docs/books/eckel. A local copy of this version is available through the course web page ( http://www.itee.uq.edu.au/~comp2500/Eckel text).

D. Hoffman and P. Strooper.Software Design, Automated Testing and Maintenance: A Practical Approach, International Thomson Computer Press, 1995. (QA75.758.H63 1995)

M. Sobell. Unix System V: A Practical Guide, third edition, Benjamin/Cummings, 1995. (QA76.76.O63 S6 1995)


Some handouts, including this course profile, will be handed out during the lectures, any spare copies will be placed in a marked filing cabinet on level 1 of GPSouth (Blg 78). Electronic copies of all handouts will be made available through the course web page.


The Unix laboratories primarily used for this course are 78-121 and 78-105 on the lower ground floor of the General Purposed South Building. There are normally open (accessible using a swipe card) 24 hours a day, 7 days per week. The Unix machines "moss" and "lichen" can also be accessed over the Internet and from the PC laboratories.


There will be specific consultation times plus extra times near assignment deadlines and during the examination period. Details of these consultation times will be announced by the second week of semester on the course web page and newsgroup. Outside these consultation hours, the teaching staff will try to be available for students at most times, and if you have any specific problems or questions, you can drop by our offices. If we have time, we will see you immediately; otherwise, we will set up a suitable time to meet. Alternatively, you can always send us email to set up an appointment.

Distribution of Notices

Most material used in this course is (or will be) available on-line through the COMP2500/COMP7908 web page, which can be accessed via the URL http://www.itee.uq.edu.au/~comp2500.

Notices regarding the course will be placed on the web page and also to the newsgroup uq.itee.comp2500. You are expected to read these notices regularly (at least once a week during semester and more often near assignment deadlines).

If you have a general query or comment regarding the course that you think might be of interest to other students in the course, we suggest that you post it to the newsgroup. We will read this newsgroup regularly and in general try to respond within one working day (if we think the message warrants a response). If you have personal or very specific questions, it is best to send email to the course account comp2500[at]itee.uq.edu.au, which is read by both lecturers. We again will aim to respond to these messages within one working day.


The course web site is available at http://www.itee.uq.edu.au/~comp2500. The course web site will contain most material for the course including lecture notes, tutorial sheets, tutorial solutions, practical sheets, assignment sheets and assignment solutions. Some material required for the assignments will only be available on the student network and not on the web page.


The course newsgroup is uq.itee.comp2500. This group is available on both the University and School news servers (news.uq.edu.au and news.itee.uq.edu.au).

Students are strongly encouraged to post questions (and answers!) to the newsgroup. Copies of announcements will also be posted to the newsgroup. The teaching staff will monitor the newsgroup.

Teaching Activities


There are three lectures each week:
Lecture 1 and 2:
Tuesday 12pm - 2pm (room 63-358)
Lecture 3:
Thursday 9am - 10am (room 23-1)


There are two streams of tutorials scheduled. The ones scheduled and labelled T1a, T1b, etc. are presentation tutorials, which require active participation from students and form part of the assessment. The details of the organisation and the assessment of these tutorials will be explained in the first presentation tutorial. The second tutorial is unscheduled and is there for students to work on exercises and to ask tutors questions related to the exercises or the course material. Consultation hours will be published where the tutors will be available to provide specific help with the second tutorial and any other course enquires.

Each student in COMP2500 must register for one tutorial by the end of week 1 using SINet: these are from the group labelled T1a, T1b, etc. Students are not required to register for the second tutorial.

Day Time Room
Tuesday 3pm - 4pm 67-341
Tuesday 4pm - 5pm 67-341
Wednesday 9am - 10am 67-342
Thursday 8am - 9am 67-343
Friday 12pm - 1pm 78-344

Students in COMP7908 are not required to register for their tutorials since there is only one tutorial scheduled.

Day Time Room
Wednesday 1pm - 2pm 84A-304

Tutorials for COMP2500 start in the second week of semester, except for the Wednesday 9am tutorial which starts in the first week of semester to avoid conflict with the public holiday in the third week of semester. Tutorials for comp7908 also start in the first week of semester to avoid scheduling issues due to the public holiday.


There are no scheduled practical sessions. However, both unassessed practical work sheets and assessed assignments are part of the course. We expect that most students will spend a minimum of 2 hours per week on such practical work. Note that only students officially enrolled in COMP2500/COMP7908 will have accounts and disk space created for them.

There will be regularly scheduled consultation hours during which time one of the COMP2500/COMP7908 tutors will be available in one of the labs. If necessary, additional consultation hours will be scheduled near assignment deadlines. Details of all these consultation hours will be announced on the course web page and newsgroup.


You are not required to attend any of the teaching sessions, however, you are strongly encouraged to do so. The lectures, tutorials and pracs have been specifically designed to aid your learning of the course material. Failure to attend a session may result in you being disadvantaged. It is up to you to find out what happened at any class session that you miss.

Teaching Plan

Week Monday's Date Lecture topic
(lecture #)
1 28 July  Lecture 1: Course Profile
 Lecture 2: Course Context
 Lecture 3: Unix - Basic
2 4 August  Lecture 4 and 5: Unix - Finding your way round
 Lecture 6: Java Review
 Assignment 1 available
3 11 August  Lectures 7,8, and 9: Testing  
4 18 August  Lectures 10 and 11: Documentation and Coding Style  Assignment 1 due
 Assignment 2 available
5 25 August  Lectures 12, 13, and 14:
 Writing Reusable Java Components - Part 1
6 1 September  Lectures 15, 16, and 17:
 Writing Reusable Java Components - Part 2
 Assignment 1 returned
7 8 September  Lectures 18 and 19
 Unit testing and reusable components - combined
 Assignment 2 due
 Assignment 3 available
8 15 September  Lecture 20, 21 and 22: Inheritance part 1  
9 22 September  Lectures 23, 24 and 25: Inheritance part 2  Assignment 2 returned
 Assignment 3 due
 Assignmnet 4 available
29 September  Mid-semester Break  
10 6 October  Lectures 26, 27, and 28: Recursion part 1  
11 13 October  Lectures 29, 25, and 31: Recursion part 2  Assignment 3 returned
 Assignment 4 due
 Assignment 5 available
12 20 October  Lectures 32, 33, and 34: Advanced Java  
13 27 October  Lecture 35: Summary  Assignment 4 returned
 Assignment 5 due
SwotVac 3 November    Assignment 5 returned
 (Friday pm)

In the teaching plan above, all assignments are returned in tutorials of the week listed and assignments are available (via course web page) on the Friday afternoon of the week listed at the latest. The due date for each assignment is on the assignment sheet.


The assessment for COMP2500/COMP7908 has three components:

  1. Five assignments each contributing 6% to the final assessment (a total of 30%). The expected due dates for the assignments are: Friday 22 August, Wednesday 10 September, Friday 26 September, Friday 17 October, and Friday 31 October.
  2. A tutorial participation and presentation mark, worth 10% of the total.
  3. A final two-hour open book examination, worth 60% of the total.

The assignments are used to assess the practical skills of the students in designing, programming, documenting, and testing Java components under the Unix operating system. The workload in assignments may seem to outweigh the percentage allocation, however the design of this course is based on the principle that assignments help teach concepts and should not excessively penalise students who learn via doing the assessment. The tutorial presentation mark is used to assess the communication skills of the student and the participation mark assesses a students ability to develop solutions within a group setting. The tutorials also allow the students to gauge their ability and progress in the course. The examination is used to assess both the practical ability of students on small problems and their understanding of the course material (as outlined in the specific learning objectives above). Marks for examination questions will be allocated according to the extent of the correctness of the answers.


Each assignment is marked via criterion-based assessment, where the criteria are clearly outlined as part of the assignment description.

Assignment 1 - Unix and Java review - available Friday 8 August, due Friday 22 August.
Assignment 2 - Testing and Documentation - available Friday 22 August, due Wednesday 10 September.
Assignment 3 - Reference types and Java Interfaces - available Wednesday 10 September, due Friday 26 September.
Assignment 4 - Inheritance and Polymorphism - available Friday 26 September, due Friday 17 October.
Assignment 5 - Recursion and Recursive Descent Parsing - available Friday 17 October, due Friday 31 October.

Assignment remarking

We have the following policy for assignment remarking:

  1. administrative errors - speak to one of the lecturers and we will fix it. For example, an administrative error is where the summing of the marks on the back page is wrong, or the like.
  2. other remarking - submit a written request with the marked hard-copy of the assignment to one of the lecturers in person. This written request should detail where you think the marking is unfair or inconsistent. One of the lecturers will then fully remark the assignment (the final mark may go up or down) within a reasonable amount of time.

Final Examination

A two hour final examination will be held during the final examination period. This exam will be open-book and will contain both short-answer/essay questions. Open-book means that you may bring any written material into the examination room. Calculators and other computing or communication devices are NOT permitted.

The examination is used to assess both the practical ability of students on small problems and their understanding of the course material (as outlined in the expected outcomes above). Marks for examination questions will be allocated according to the extent of the correctness of the answers.

Determination of Final Grade

Your final mark will be calculated from your marks for the assignments, your tutorial presentation mark, and your mark for the final exam. You must pass the final exam to pass the subject. Your final grade is then computed from the final mark using the following table:

final mark grade
85-100 7
75-84 6
65-74 5
50-64 4
45-49 3
20-44 2
0-19 1

At the discretion of the lecturers, final grades may be scaled upwards but not decreased.

Assessment Policies

The method for collection of assignments will be via the School electronic submission system. Details of usage and exact requirements are specified for each assignment.

Late Submission

Late assignments will attract a penalty of 20% per day or part thereof. If you are submitting an assignment late, you should inform one of the lecturers in person or via electronic mail. Assignments will not be accepted more than a week late. Late assignments are submitted via the School electronic submission system as for normal assignments.

If you feel that you cannot complete your assignment on time because of illness or other exceptional circumstances, you should discuss this with one of the lecturers at the earliest possible time.

Notification of Availability of Feedback

Assignments will be marked in the week following the due date and will be returned with written feedback in tutorials the 2nd week after the due date. Verbal feedback on general issues will be given in lectures and in tutorials.

Broad feedback on end-of-semester examinations (usually including access to examination scripts and question papers) and individual feedback, is available on request.

It is a student's responsibility to incorporate feedback into their learning; making use of the assessment criteria that they are given; being aware of the rules, policies and other documents related to assessment; and providing teachers with feedback on their assessment practices.

Return of Assignments

Assignments will be returned during the tutorials. Assignments that have not been collected in tutorials will be available at lectures in the following week. Assignments still not collected will be stored in the Course Coordinator's office. During swot vac alternate means of assignment return will be published on the course web-page and the course news-group.

Academic Merit, Plagiarism, Collusion and Other Misconduct

The School and the wider academic community in general takes academic integrity and respect for other persons and property very seriously. In particular, the following behaviour is unacceptable:

Penalties for engaging in unacceptable behaviour can range from cash fines or loss of grades in a subject, through to expulsion from the University.

You are required to read and understand the School Statement on Misconduct, available on the ITEE website at: http://www.itee.uq.edu.au/about/student-misconduct.jsp

If you have any questions concerning this statement, please contact your lecturer in the first instance.

Graduate Attributes Developed

The University of Queensland has defined a set of graduate attributes to specify broad core knowledge and skills associated with all undergraduate programs (http://www.uq.edu.au/hupp/contents/view.asp?s1=3&s2=20&s3=5). This course addresses these attributes as follows:

Attribute Contributions from this Course
In-depth knowledge of the field of study Program & data structures: testing, documentation, interfaces & classes, abstract data types, inheritance, polymorphism, recursion & iteration, and exception-handling. Operating system concepts: command shells, file systems, and shared resources.
Effective Communication Group interactions in tutorials; tutorial presentations.
Independence and Creativity Assignment and tutorial problems provide opportunities for generating ideas and receiving feedback from peers and teaching staff.
Critical Judgement The assignments provide a context for defining and analysing the course material and tutorial exercises with opportunities for evaluating opinions, making decisions and reflecting critically on the justifications.
Ethical and Social Understanding This course exposes students to the requirements and consequences of developing software as part of a larger team.

Support for Students with a Disability

Any student with a disability who may require alternative academic arrangements in the course is encouraged to seek advice at the commencement of the semester from a Disability Adviser at Student Support Services.

Sourced From http://www.itee.uq.edu.au/undergraduate/_profile_view.php?print=1&file=2003_2_COMP2500_StLucia