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
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 Code(s):||COMP2500, COMP7908|
|Contact Hours:||5 hours per week (3L2T)|
|Purpose:||COMP2500 is a software engineering course aimed at developing the technical
needed to be an effective member of a large software development team.
Dr Anthony MacDonald (Course Coordinator)
Phone: (07) 3365-1658
Fax: (07) 3365-4999
Consultation Time: see below
Prof. Paul Bailes
Fax: (07) 3365-4999
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.
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:
- have an appreciation of the importance of and requirements for programming-in-the-large.
- be able to design, implement, document, and test reusable Java components.
- be able to work as part of a team and communicate technical material in an oral presentation.
- have developed a working knowledge of the Unix operating system.
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)
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.
- 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.
|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.
|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.
|Week||Monday's Date||Lecture topic
|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
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
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:
- 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.
- A tutorial participation and presentation mark, worth 10% of the total.
- 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
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.
We have the following policy for assignment remarking:
- 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.
- 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.
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:
At the discretion of the lecturers, final grades may be scaled upwards but not decreased.
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 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:
- Submission of plagiarised work, i.e. work that contains content copied from an unacknowledged source.
- Submission of work without academic merit, i.e. work that adds little or nothing to material available from reference sources such as textbooks, websites, etc., even where this is appropriately acknowledged.
- Engaging in collusive behaviour, i.e. inappropriate working together with other students where individual work is required, or working with people outside your team where team work is required.
- Copying work done by other students.
- Failing to adhere to the School's regulations concerning behaviour in laboratories, in particular occupational health and safety regulations.
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.