CITS1001 Software Engineering with Java

Credit
6 points
Offering
(see Timetable)

If this unit does not have an online alternative, then students who are presently unable to enter Western Australia and whose studies would be delayed by an inability to complete this unit, should contact the unit coordinator (details given on this page) to ascertain, on an individual case-by-case basis, if alternate arrangements can be made to support their study in this unit.

AvailabilityLocationMode
Semester 1UWA (Perth)Face to face Predominantly face-to-face. On campus attendance required to complete this unit. May have accompanying resources online.
Semester 1UWA (Perth)Online timetabled 100% Online Unit. NO campus face-to-face attendance is required to complete this unit. All study requirements are online only. Unit includes some synchronous components, with a requirement for students to participate online at specific times.
Semester 2UWA (Perth)Online timetabled 100% Online Unit. NO campus face-to-face attendance is required to complete this unit. All study requirements are online only. Unit includes some synchronous components, with a requirement for students to participate online at specific times.
Semester 2UWA (Perth)Face to face Predominantly face-to-face. On campus attendance required to complete this unit. May have accompanying resources online.
Details for undergraduate courses
  • Level 1 core unit in the Computer Science; International Cybersecurity; Computing and Data Science; Automation and Robotics; Artificial Intelligence; Cybersecurity major sequences
  • Level 1 core unit in the Software Engineering specialisation in the Engineering Science major sequence
  • Level 1 elective
Content
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.
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.
Assessment
Indicative assessments in this unit are as follows: (1) a mid-semester test; (2) programming exercises; and (3) an examination. Further information is available in the unit outline.

Supplementary assessment is not available in this unit except in the case of a bachelor's pass degree student who has obtained a mark of 45 to 49 overall and is currently enrolled in this unit, and it is the only remaining unit that the student must pass in order to complete their course.
Unit Coordinator(s)
Dr Lyndon While (Semester 1) and Professor Ajmal Saeed Mian (Semester 2)
Unit rules
Prerequisites:
Mathematics Applications ATAR or MATH1720 Mathematics Fundamentals or equivalent or higher
Incompatibility:
CITS1200 Java Programming, CITS1220 Software Engineering
Contact hours
lectures: 2 hours per week; workshops: 1 hour per week; labs: 2 hours per week
Text

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

  • The availability of units in Semester 1, 2, etc. was correct at the time of publication but may be subject to change.
  • All students are responsible for identifying when they need assistance to improve their academic learning, research, English language and numeracy skills; seeking out the services and resources available to help them; and applying what they learn. Students are encouraged to register for free online support through GETSmart; to help themselves to the extensive range of resources on UWA's STUDYSmarter website; and to participate in WRITESmart and (ma+hs)Smart drop-ins and workshops.
  • Unit readings, including any essential textbooks, are listed in the unit outline for each unit, one week prior the commencement of study. The unit outline will be available via the LMS and the UWA Handbook one week prior the commencement of study. Reading lists and essential textbooks are subject to change each semester. Information on essential textbooks will also be made available on the Essential Textbooks. This website is updated regularly in the lead up to semester so content may change. It is recommended that students purchase essential textbooks for convenience due to the frequency with which they will be required during the unit. A limited number of textbooks will be made available from the Library in print and will also be made available online wherever possible. Essential textbooks can be purchased from the commercial vendors to secure the best deal. The Student Guild can provide assistance on where to purchase books if required. Books can be purchased second hand at the Guild Secondhand bookshop (second floor, Guild Village), which is located on campus.