Unit Information Management System

Object-oriented Programming and Software Engineering (CITS1001, SEM-1, 2014, Crawley)

Faculty of Engineering, Computing & Mathematics

Computer Science & Software Engineering

Unit Outline

Object-oriented Programming and Software Engineering


SEM-1, 2014

Campus: Crawley

Unit Coordinator: Associate Professor Rachel Cardell-Oliver

All material reproduced herein has been copied in accordance with and pursuant to a statutory licence administered by Copyright Agency Limited (CAL), granted to the University of Western Australia pursuant to Part VB of the Copyright Act 1968 (Cth).

Copying of this material by students, except for fair dealing purposes under the Copyright Act, is prohibited. For the purposes of this fair dealing exception, students should be aware that the rule allowing copying, for fair dealing purposes, of 10% of the work, or one chapter/article, applies to the original work from which the excerpt in this course material was taken, and not to the course material itself

© The University of Western Australia 2001

Unit details

Unit title Object-oriented Programming and Software Engineering
Unit code CITS1001 Credit points 6
Availability SEM-1, 2014 (24/02/2014 - 21/06/2014)
Location Crawley Mode Face to face

Contact details

Faculty Faculty of Engineering, Computing & Mathematics
School Computer Science & Software Engineering
School website http://web.csse.uwa.edu.au/
Unit coordinator Associate Professor Rachel Cardell-Oliver
Email rachel.cardell-oliver@uwa.edu.au
Telephone 6488 2231
Consultation hours Thursday 2-3
NamePositionEmailTelephone Number
Rachel Cardell-OliverProfessorrachel.cardell-oliver@uwa.edu.au
Tutors/ Demonstrators/ Facilitators

Anthony Blond
Arran Steward
Matthew Heisen-Egan

Unit contact hours Lectures: 2 hrs per week; workshops: 1 hr per week; labs: 3 hrs per week
Online handbook http://handbooks.uwa.edu.au/units/unitdetails?code=CITS1001
Unit website http://undergraduate.csse.uwa.edu.au/units/CITS1001/

Unit rules

Prerequisites WACE Mathematics 3A/3B or MATH1701 Introductory Mathematics Foundations or MATH1050 Introductory Calculus or WACE Mathematics 3C/3D or WACE Mathematics: Specialist 3A/3B or MATH1721 Mathematics Foundations: Methods or MATH1711 Introductory Mathematics Specialist or MATH1038 Calculus and its Applications or MATH1045 Intermediate Calculus or WACE Mathematics: Specialist 3C/3D or MATH1722 Mathematics Foundations: Specialist or MATH1712 Intermediate Mathematics Specialist or MATH1035 Calculus and Matrices or equivalent or higher
Advisable prior study
Incompatibility CITS1200 Java Programming, CITS1220 Software Engineering
Approved quota

Unit description

This unit introduces the language structures and techniques needed to write well-structured programs in the object-oriented paradigm using the Java programming language. In particular, the process of developing appropriate classes, objects and methods to solve simple computational problems underlies the entire unit. Core computer programming topics such as the use of variables, primitive and reference data types, expressions, control structures involving selection and repetition, method decomposition and parameter passing are all covered in this context. Algorithmic techniques such as iteration, sorting, searching along with programming practices such as error handling, testing, debugging and documentation are introduced. The unit also covers advanced topics such as association, inheritance and interface. A strong focus is placed on the practical application of these concepts and techniques to produce working programs in computer laboratories. The rationale for using the object-oriented paradigm, and in particular the language Java, is covered in detail. No prior knowledge of computing or programming is assumed.

Learning outcomes

Students are able to (1) interpret the behaviour of simple Java programs; (2) implement Java classes from specifications; (3) understand and apply the object-oriented principles of information hiding and program by contract; (4) make effective use of software development tools to write, test, debug and document Java programs; (5) use a software engineering process to develop small Java programs; and (6) critique the quality of Java programs using criteria such as readability, encapsulation, cohesion and coupling.

Unit structure

(See Timetable)

Unit schedule

Teaching and learning responsibilities

Teaching and learning strategies

Charter of student rights and responsibilities

Student Guild contact details

Uses of student feedback


Information for students with disabilities


Assessment overview

Typically this unit is assessed in the following way(s): (1) a mid-semester test; (2) programming exercises; and (3) an examination. Further information is available in the unit outline.

Assessment mechanism

#ComponentWeightDue DateRelates To Outcomes
1Mid-Semester Written Test10%12 noon Thursday 27 March 2014 (week 5)1,2,3,5
2Programming project 115%12 noon Friday 11 April 2014 (week 7)2,3,4,6
3Programming project 215%12 noon Friday 23 May 2014 (week 12)2,3,4,6
4Written Examination60%End of Semester Examination Period1,2,3,5,6

Assessment items

Item TitleDescriptionSubmission Procedure for Assignments
Mid-Semester Written TestMulti-choice question sheetIn-class test
Programming project 1Java source filesElectronically via cssubmit followed by in-lab demonstration
Programming project 2Java source filesElectronically via cssubmit followed by in-lab demonstration
Written ExaminationMulti-choice question sheet and short answer exam sheet

Academic literacy and academic misconduct

Appeals against academic assessment

Textbooks and resources

Recommended texts

Barnes, D. J. and Kolling, M. Objects First With Java, 5th ed.: Prentice Hall/Pearson Education 2012 

Suggested alternate texts

Barnes, D. J. and Kolling, M. Objects First With Java, 4th ed.: Prentice Hall/Pearson Education 2008

Additional texts

Technical requirements

Software requirements

BlueJ interactive Java environment http://www.bluej.org/

Additional resources and reading

Other important information

To pass CITS1001 a student needs to achieve ALL of the following:

  • an overall mark of at least 50%, AND
  • at least 40% in Programming Project 1 and the mid-semester test combined, AND
  • at least 40% in the final examination