COSC220 Software Engineering Studio

Updated: 31 March 2016
Credit Points 6
Offering
Responsible Campus Teaching Period Mode of Study
Armidale Trimester 2 Off Campus
Armidale Trimester 2 On Campus
Intensive School(s) None
Supervised Exam There is a UNE Supervised Examination held at the end of the teaching period in which you are enrolled.
Pre-requisites COSC120 or COMP131 or COMP132 or COMP132A or candidature in a postgraduate award
Co-requisites None
Restrictions COMP284 or COMP284A or COMP484
Notes

COSC220 requires a knowledge of, and programming experience with, a high level programming language. Experience with the use of the Linux/UNIX operating system is highly recommended.

Combined Units None
Coordinator(s) William Billingsley (wbilling@une.edu.au)
Unit Description

Modern software development is highly collaborative. Teams of developers work together to take software from conception into production, and continue to evolve and develop the software based on feedback from its use. This introduces a number of engineering challenges, as the teams must ensure that the program works and is well designed even while its design and code are being modified by many people at once. Many of the software engineering practices and tool chains that are core to a developer's work are designed to support this collaborative nature of programming.

In this unit, students work in teams to develop features for a common code base to learn how software engineers design, build, and modify large programs together.

Recommended Material
Optional

Text(s):

Note: Recommended material is held in the University Library - purchase is optional

Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation

ISBN: 9780321601919
Humble, J. and Farley, D., Addison-Wesley 2010

Text refers to: Trimester 2, On and Off Campus

Referenced Material
Optional

Text(s):

Note: Reference material is held in the University Library - purchase is optional

Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development

ISBN: 9780131489066
Larman, C., Prentice Hall 3rd ed. 2004

Text refers to: Trimester 2, On and Off Campus

Design Patterns: Elements of Resuable Object-Oriented Software

ISBN: 9780201633610
Gamma, E., Helm, R., Johnson, R. and Vlissides, J., Addison-Wesley Professional 1994

Text refers to: Trimester 2, On and Off Campus

Extreme Programming Explained: Embrace Change

ISBN: 9780321278654
Beck, K., Addison-Wesley Professional 2nd ed. 2004

Text refers to: Trimester 2, On and Off Campus

Refactoring: Improving the Design of Existing Code

ISBN: 9780201485677
Fowler, M., Addison-Wesley Professional 1999

Note: An e-book is also available (ISBN 9780133065268, 2012)

Text refers to: Trimester 2, On and Off Campus

Disclaimer Unit information may be subject to change prior to commencement of the teaching period.
Assessment
Must
Complete
Title Exam Length Weight Mode No. Words
Compulsory Assignment 1 40%
Assessment Notes

Collaborative software development project. All assessment tasks must be attempted.

Relates to Learning Outcomes (LO)

LO: 1 - 6

Compulsory Assignment 2 10% 1000
Assessment Notes

Individual development reflection. All assessment tasks must be attempted.

Relates to Learning Outcomes (LO)

LO: 2, 3, 4, 5, 6

Compulsory Online Quizzes and Exercises 10%
Assessment Notes

5 at 2% each. All assessment tasks must be attempted.

Relates to Learning Outcomes (LO)

LO: 2, 3, 5, 6

Compulsory Final Examination 2 hrs 15 mins 40%
Assessment Notes

It is mandatory to pass this component in order to pass the unit.

Relates to Learning Outcomes (LO)

LO: 1 - 6


Learning Outcomes (LO) Upon completion of this unit, students will be able to:
  1. work with other programmers and other teams of programmers on large software projects;
  2. apply collaborative software development practices and tool chains;
  3. design and develop features for a software system, from conception through to testing, deployment, and continuous improvement;
  4. design, model, and investigate user interaction and user experience with software;
  5. apply techniques for verifying the quality of software during development and explain the ethical considerations around software failure risks and their impact; and
  6. investigate, analyse, understand, and modify the design of program code, including code written by others.