University of Surrey - Guildford
Registry
  
 

  
 
Registry > Module Catalogue
View Module List by A.O.U. and Level  Alphabetical Module Code List  Alphabetical Module Title List  Alphabetical Old Short Name List  View Menu 
2010/1 Module Catalogue
 Module Code: COM2003 Module Title: OBJECT-ORIENTATED SOFTWARE ENGINEERING
Module Provider: Computing Short Name: CS288
Level: HE2 Module Co-ordinator: GRUNING A Dr (Computing)
Number of credits: 10 Number of ECTS credits: 5
 
Module Availability

Autumn Semester

Assessment Pattern

Assessment Pattern

 

Unit(s) of Assessment

 

Weighting Towards Module Mark( %)

 

Coursework (individual):

 

Exercises to encourage the continuous development of practical programming skills and demonstrate adherence to standards, procedures and good software engineering practice. The exercises will build on the core material of the module leading to the exam.

 

40%

 

Examination:

 

practical lab-based examination, 3h

 

60%

 

 

 

 

 

 

 

Qualifying Condition(s) 

 

 

 

Module Overview

Object-Oriented analysis and design is a widely used paradigm within the software-engineering community. This course will expand on the ideas introduced in the first year Java programming language modules. The emphasis on the module will be on developing well-designed object-oriented programs so that students understand the implementation phase of the software development life cycle, and how it follows on from the design phase.

Prerequisites/Co-requisites

L1 Java and Software Engineering Modules COM1017, COM1018 and COM1020.

 

Module Aims

The aim of this module is to allow students to practice and reflect upon implementing software using Java. At the end of the module, students should have practical skills in and the theoretical background for using Java as a programming language and how it fits into a software engineering project, and should appreciate how to develop readable code, adhere to coding standards and test code and be able to acquire the knowledge and experience to use new Java packages independently using the accompanying documentation.

Learning Outcomes

By the end of this module, the students should be able to:

 

1.       Recognise and use the basics of implementing a system in an object-oriented programming language (Java).

 

2.       Evaluate the design issues that need to be successfully addressed in order to successfully implement a complex system.

 

3.       Deliver an implementation of a small system given a set of requirements.

 

4.       Recognise the importance of documenting and testing code.

 

Be able to independently acquire the knowledge to use and explore new classes, packages and APIs by making appropriate use of accompanying documentation.

Module Content

         Implementation using Java:

 

         Using IDEs to develop code.

 

         Using various Java APIs including GUI aspects.

 

         I/O handling using Java.

 

         Documenting code using Javadoc and single-line comments.

 

         Design code for testability.

 

         Using design patterns.

 

         Using new Java APIs for use in own projects independently.

 

         Programming new classes to guidelines for existing APIs.

 

         Implementing data structures and algorithms.

 

         Analyse other's and own source code for weaknesses.

 

         Adhere to a good, consistent and easy to follow coding style.

 

       Concurrency

 

         Pitfalls for concurrent programming

 

         Multi-threading and synchronisation

 

         The Java event model

 

         GUI

 

         introduction to programming a GUI

 

Methods of Teaching/Learning

10 hours of lectures, 10 hours of tutorials/example classes, 10 hours of labs

 

Selected Texts/Journals

Generally also all texts that were recommended for L1 Java Modules COM107 and COM1018 as well as COM1020.

 

The contents of this module is not covered in any single textbook. On the other hand any good advanced textbook of your liking will do for the topics of the module that it does cover.

 

Recommended:

 

Bruce Eckel online Java book:     http://www.mindview.net/Books/TIJ/

 

Barnes & Koelling: Objects First with Java, Pearson International. Any recent edition, eg 5th.  2009. L2 teaching will certainly go beyond this book.

 

 

Freeman & Freeman: Head First Design Patterns. O'Reilly. 2004. This book as very good regarding design patterns however doesn't yet take Java generics into account.

 

 

Niemeyer & Knudsen: Learning Java. O'Reilly. 2000. This book covers all the Java fundamentals in a concise and logic still. Of course, it does not cover Java developments since 2000. This is a good book if you already know how to code in a different OO or procedural programming language.

 

 

Recommended resources:

 

Sun Java tutorials: http://java.sun.com/docs/books/tutorial/

 

Java 6 API: http://java.sun.com/javase/6/docs/api/

 

 

Eclipse: http://www.eclipse.org/

 

 

Last Updated

UPDATED 8/12/10 JG (due to issues with eVision)