CECS Home | ANU Home | Search ANU
The Australian National University
ANU College of Engineering and Computer Science
School of Computer Science
Printer Friendly Version of this Document

UniSAFE

Introduction to Software Systems

Introduction

This course introduces students to the tools and techniques for developing software systems of a size and quality of an industrially relevant nature. The course teaches the fundamental strategies of abstraction, decomposition and reuse as methods for constructing such systems. Verification and validation techniques, with an emphasis on testing, are taught as a means to ensure that students are able to deliver software products of the quality required.

In particular, the course will cover: recursive data structures and algorithms; structured data types, abstract data types and their applications; object-oriented programming; and software life-cycle. The course will also introduce some of the theoretical fundamentals that underpins software engineering, including: reasoning about software and its application to specifications, and verification and validation.

Lecturers

Dr Eric McCreath - email : ericm@cs.anu.edu.au - room : N227 (Chair of Examiners)

Unit Prerequisites

COMP1100 (also Enrolment in BSEng for COMP1510 students)

Text Book

The collaborative text is :
  • An Introduction to Programming and Software Development using Java, Editor Eric McCreath, 2008 (still in the process of writing this) available publicly via a wiki (See AIPSDJ).

Recommended reading :

  • Big Java, Cay Harstmann, 3rd Edition (compatible with Java 5 and 6), Wiley, 2008
  • Data Abstraction & Problem Solving with Java - walls & mirrors, Frank M. Carrano and Janet J.Prichard, 2nd Edition (covers Java 5.0), Addison Wesley, 2005.
  • Or any Java text book (best if it covers Java 5.0 or above)

Assessment

The final mark is composed of three components:
  • the main assignment (A) worth 30%;
  • the 3 lab tests (L) worth 20%; and
  • the final exam mark (E) worth 50%.
Each of these three components will be given a mark out of 100. Note that consistent scaling across all students may occur with these marks. The final mark will be given as a mark out of 100 and will be calculated using the following formula:
Final Mark = 0.3 * A + 0.2 * L + 0.5 * E
Students must get a minimum final overall mark of at least 50% to pass the subject. Final marks are moderated by a School of Computer Science examiners meeting.

The marks for each of the 3 lab tests are 'redeemable' via the final exam. That is the formula for calculating L is(Assuming each of the lab tests, denoted T1, T2, and T3, are marked out of 10. Also assuming the final exam, E, is marked out of 100):

L = (max(10 * T1,E) + max(10 * T2,E) + max(10 * T3,E)) / 3
Having the lab tests redeemable via the final exam means that if you perform poorly in one of the lab test you have the opportunity to make up for it in the final exam. Also if you miss a lab test for any reason then you can make up for those marks in the final exam(no special request for consideration is required). Students may also elect to not do any lab test in which case the final exam is worth 70%(I would advise against this as the lab tests provide important feed back on your progress).

Please check the Undergraduate Handbook and the web for policy statements concerning special consideration and special, further and supplementary examinations.

Quality and integrity are expected from all students. Students should also expect this from the lecturing/tutorial staff. Please read over the ANU's policy on this matter.

http://info.anu.edu.au/Policies/_DVC/Policies/Code_Practice_Student_Academic_Honesty.asp

Introduction to Software Engineering COMP1510 is very similar to COMP1110. The differences are as follows:

  • Students will, in addition to the standard lectures, be expected to attend three one hour lectures that relate to Software Engineering principles and practices. The content in these lectures is examinable (just for COMP1510 students). Topics are still to be organised.
  • Given the extra lectures COMP1510 students will sit a slightly different exam. However, other than this the assessment scheme is identical to that of COMP1110.

Assignment Due Dates

The main assignment's submission is due on Friday of Week 11 (16/10/2009). Note also that 50% of the marks for this assignment will be due in the Labs over the semester. See the schedule and assignment spec for the details.

Learning Objectives

Upon completion of this course, the student will be able to:
  • complete the implementation of an Java program, given as specification of the required behaviour of the program.
  • analyze alternatives among simple data-structures - stacks, queues, and arrays, for example - and select the most appropriate structure for a simple task.
  • analyze alternatives among simple algorithms - sorting and searching, for example - and select the most appropriate for a simple task.
  • rigorously analyze the correctness of a simple program fragment given a logical description of its required behaviour.
  • apply their knowledge of testing principles to select appropriate test data for an individual software routine.
  • identify economic implications of the software life cycle to the process of software construction.
  • identify the invariant of a simple loop.
  • apply the technique of recursion to implement simple requirements.
  • independently use selected writings in computing to analyse and explain technical computing problems.
  • work as a team in a small group to complete an assigned task.