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 1, 2004

COMP2301 Systems Interface Programming
Course Profile


This is version 1.10 of the COMP2301 course profile, dated 25 February 2004.
This is version 1.04 of the COMP2301 course profile, dated 21 February 2003.

Changes since the last version

Update Teaching Staff, Course Goals, Resources, Teaching Activities and Assessment Policies. 

Course Summary

Course Code(s): COMP2301
Unit Value: #2
Contact Hours: First week only (2L1T2P)
All weeks: 3 hours per week (1T2P)
Purpose: COMP2301 gives students experience coding to a specific style guide in C, C++ and Visual Basic.

Teaching Staff

Richard Cocks (Course Coordinator)
Office: TBA
Phone: (07) 3878-1935
Mobile: 0414 50 20 10
Fax: (07) 3365-4999
Email: uqrcocks[at]itee.uq.edu.au
Consultation Time: TBA


Stefan Lehmann
Peter Waldeck

Course Goals

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

Assumed Background

This course assumes that the student has a good background in the Java programming language, and possibly other languages. The course pre-requisite is COMP1500 or equivalent.



There is no set text for the course.

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 subject uses the Microsoft Developer Network library and Visual Studio Help extensively. Both resources are available on all the Windows computers in 78-109.

For general programming tips: "Code Complete" by Steve McConnell
For 'C':  "The C Programming Language" by Kernighan and Ritchie or "A book on C" by Kelly and Pohl
For 'C++': "The C++ Programming Language" by B. Stroustrop


"Required Coding Style".  (Hyperlink to file "CodingStyle.doc")

 "Introduction to C Programming" by Rob Miles from the University of Hull . (Hyperlink to file "CProgrammingNotes.pdf")


Practical work for this subject will take place in room 78-109. This room will be booked for 8 hour each week, when COMP2301 /7302 students will have priority. Each student must book one 2 hour session per week, students may attend sessions in addition to their assigned practical however preference will be given to students assigned to the current session.  A tutor will also be present to answer questions and help with any problems.  Students should be aware that they will need to do more work independently than the 2 hour per week that is set aside for them.  All students are required to monitor the course news group and their student e-mail.

The software that will be used for this subject is Microsoft Visual Studio, which is installed on all  the 78-109 computers.  78-109 provides 24 hour non exclusive access for COMP2301 / COMP7302 students.   Students may be excluded from this lab while it is in use by other courses or during general maintenance.  Students are responsible for scheduling their work to ensure assignments are submitted on time.

For details of the Occupational Health and Safety requirements of the ITEE labs, go to  http://studenthelp.itee.uq.edu.au/ohs/ .


The course coordinator, Richard Cocks, will post consultation times on the course newsgroup.
All e-mails should be sent to uqrcocks[at]itee.uq.edu.au and  will be responded to as quickly as possible.

The course tutor(s), Stefan Lehmann and/or Peter Waldeck, will be available during scheduled practical sessions only.

Distribution of Notices

The primary resource for consultations outside of normal practical hours should be the newsgroup uq.itee.comp2301.


The course web site is available at http://www.itee.uq.edu.au/~comp2301. The course web site will contain this profile, as well as the assignments specifications.


The course newsgroup is uq.itee.comp2301. This group is available on both the University and School news servers (news.uq.edu.au and news.itee.uq.edu.au).
Students are 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 however they will not answer all questions posted.

Do not post fully coded assignments to the newsgroup. Any such posting would be deemed to be academic misconduct in that it allows other students to copy your work.

If you have a coding question, post the smallest piece of sample code that demonstrates the point you are unsure of. 
This approach has two benefits: 
    a) in writing such code you may be able to isolate the problem yourself and 
    b) rather than reading hundreds of lines of code, readers of the newsgroup will only be required to fathom tens of lines of code.

Teaching Activities

SI-net is the authoritative source for times, dates and places for lectures, tutorials and practicals.


There is one two hour introductory lecture in week 1 which will be repeated during the week.
The  lecture on Monday, March 1st, 2003 from 4pm to 6pm 
will be repeated on Wednesday March 3rd from 4pm to 6pm, 2004.
This lecture will contain critical information on assignment 1, general assessment and operational procedures
students will be significantly disadvantaged if they do not attend.

Lecture Day Time Room
L1 Monday 1st March 4:00pm to 5:50pm 78-224
L1 repeat Wednesday 3rd March 4:00pm to 5:50pm 68-320


Tutorials will be used to identify problems and reinforce understanding of the practical material.
Assignment, coding and research techniques will be discussed.
All students are encouraged to attend.

The available tutorial sessions are listed below (subject to change).

Tutorial Day Time Room
T Friday 10am - 11:50am 78-109

Practical Sessions

Students should sign-up for and attend one weekly practical session (commencing in week 1). 
The practical sessions are the primary mode of teaching in this subject.

The available practical sessions are listed below (subject to change).

Prac Session Day Time Room
Pa Tuesday 2:00pm - 3:50pm 78-109
Pb Thursday 2:00pm - 3:50pm 78-109
Pc Friday 2:00pm - 3:50pm 78-109
Pd Friday 10am - 11:50am 78-109


Students are not required to attend any of the teaching sessions (except those in which an assessment activity is taking place), however, you are strongly encouraged to do so. The lectures, tutorials and practicals 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 session that you miss.
All assignments are due during the practical session in which you are enrolled. If you do not attend the practical sessions and submit your assignments, you will not pass the course.


Teaching Plan

Week Number Monday's Date Lecture Number Lecture Topics Prac Session Assessment
1 1st March 1 & 1A Administrative, Coding Style, Assignment 1 Graphics programming in C  
2 8th March        
3 15th March        
4 22nd March     File I/O in C Assignment 1
5 29th March        
6 5th April        
  12th April

Mid-semester break (one week)

7 19th April     User interface design in Visual Basic Assignment 2
8 26th April        
9 3rd May     File I/O in C++ Assignment 3
10 10th May        
11 17th May     Basic Network programming  in Visual Basic Assignment 4
12 24th May        
13 31st May       Assignment 5
  8th June

Revision Period (one week)

Exam Week 1 14th June        
Exam Week 2 21st June        


COMP2301 will be assessed by assignments as outlined below. 
A final grade of PASS will require a passing grade in ALL FIVE assignments.


Assignments will be marked as pass/fail. In order to gain a grade of pass, each assignment must:

  1. Perform the task required of you in the assignment specification.
  2. Perform as per any amendments to the specification posted to the newsgroup.
  3. Be formatted according to the coding style guide for the subject.

There are five assignments. The subject matter covered by each assignment is:

  1. Graphics programming in C.
  2. File I/O in C.
  3. User interface design in Visual Basic.
  4. File I/O in C++.
  5. Basic Network programming  in Visual Basic.

Determination of Final Grade

Your final mark will be calculated from your marks for the assignments, You must pass each assignment to pass the subject. 
Your final grade is then computed from the final mark using the table below:

Grade for Subject Grade for Assignments
P 5 x  P, 0 x N
N 4 x  P, 1 x N
N 3 x  P, 2 x N
N 2 x  P, 3 x N
N 1 x  P, 4 x N

N. Non-graded failure  
Fails to satisfy some of the basic requirements of the course.

P. Non-graded pass  
Satisfies all of the basic learning requirements for the course, such as knowledge of fundamental concepts and performance of basic skills; demonstrates sufficient quality of performance to be considered satisfactory or adequate or competent or capable in the course.

( See  General Award Rules 1A.4 for information on Non-graded results (P/N) )

Assessment Policies


Submission of assignments will be during your practical session in the week that the assignment is due. You can submit your assignment in the practical sessions before this time, but preference must be given to those actually enrolled in the earlier classes.

During the practical session, the tutor will:

  1. Verify student identity via student number and student ID Card.
  2. Verify that the assignment performs as specified by the assignment sheet and any modifications posted to the newsgroup.
  3. Verify that the application is stable and deterministic when run outside of the integrated development environment.
  4. Verify that the code written conforms to the style guide.

To submit, the student will:

  1. Print out two assignment submission cover sheets.
  2. Submit  the assignment source code via the ITEE online submission system, located at http://submit.itee.uq.edu.au/. 
    As part of your assignment submission, you will have to acknowledge that the submission is your original work.
  3. Retain one cover sheet signed by student and tutor which includes the online submission reference code.

After electronic submission the course coordinator will:

  1. Verify each students work is original by passing all assignments through an automated process which detects code and style similarities 
    indicating plagiarism, collusion and other misconduct.
  2. Take appropriate action should any misconduct be identified.

In many cases, you will not be passed at your first attempt. If this happens, the tutor will identify the modifications required and re-evaluate the code when you have made the these changes.  As this is a non graded assessment the tutor will ensure your assignment demonstrates sufficient quality of performance to be considered satisfactory or adequate or competent or capable.  Provided an assignment meets these minimum standards it will be passed.

If you do not make the required changes before the end of your allocated practical in the week the assignment is due, you will not pass.

Late Submission

The programming assignments will not be accepted late unless there are exceptional personal or medical circumstances.  In the event of exceptional personal or medical circumstances that prevent you from handing in the assignment on-time, you should contact the lecturer and be prepared to supply appropriate documentary evidence. You should be prepared to submit whatever work you have completed at the deadline, if required. Requests for extensions should be made as soon as possible, and preferably before the assignment due date. 

Notification of Availability of Feedback

Students are encouraged to incorporate timely feed back into their learning practices.  COMP2301 is assessed by evaluating student output demonstrated during practical sessions.   Students should actively engage with tutors and their peers presenting partially complete code and making changes to code and work practice to optimise their performance.  Students should make independent investigations and evaluate alternative solutions  proposed by their peers and tutors  . 
All students should follow work practices that ensure academic merit is obtained while avoiding plagiarism, collusion and other misconduct.  Should a question arise, students should discuss the issues with their lecturer in the first instance.

Return of Assignments

Assignments are marked during the practical sessions. To avoid problems, the student should print out two cover sheets: the tutor will sign both and the tutor will keep one and the student the other.

When the tutor has passed the assignment, the student should electronically submit their files and note the reference number given after submission on both cover sheets.

Please keep your copy of the submission form to verify that you have passed the assignment.

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 The course broadens the programming language knowledge of the student by introducing them to C, C++ and Visual Basic.
Effective Communication The adherence to a coding style guide is used in this course to improve the communication skills of the student.  
Independence and Creativity Learning different computer languages allows the student more independence to decide on the most appropriate language for solving their problems.  Interpreting functional specifications allows students latitude to investigate alternative solutions.
Critical Judgement Adherence to the coding style guide is used to improve the student's critical judgement of the implementation details of code.
Ethical and Social Understanding The student should understand that adherence to a coding style guide improves the communication between members of a software engineering team, their management and their clients.  The student must develop a clear understanding of academic merit and misconduct to produce individual outcomes and work cooperatively with peers.

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. Please also inform the course coordinator of any special needs as early as you can in the semester so that  arrangements can be made to accommodate you.

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