Subject details

  • Topics
    • Core OO Concepts
    • Java Collection Framework, Generics and Parameterised Typing
    • GUI Programming (AWT/Swing)
    • Concurrency and Multithreading
    • Java Client-Server Computing, Serialisation
    • GoF Design Patterns
  • Study resources
    • Instructional Methods
      • Audio/Video conferencing
      • Chat Rooms
      • Disscusion forum/Discussion Board
      • Embedded Multimedia
      • Online assignment submission
      • Podcasting/Leacture capture
      • Standard Media
      • Streaming Multimedia
      • Web links
    • Online Materials
      • Printable format materials
      • Resources and Links
      • Audio-Video streaming

At the successful completion of this subject students will be able to:

  1. Understand the purpose of object oriented design and where and how to apply object oriented concepts such as inheritance, polymorphism, abstract classes/interfaces and generics
  2. Understand and apply common object oriented design patterns such as Model View Controller, Observer, Chain of Responsibility, Decorator etc
  3. Be proficient using an integrated development environment such as Eclipse for project management, coding and debugging. Be proficient using a modelling tool such as Visual Paradigm for round trip engineering
  4. Design and implement multithreaded systems taking into account synchronization issues and testing challenges
  5. Design and develop client server applications from first principles using basic protocols without relying on external middleware or frameworks.
  • Assignment 1 - Project Part 2 (25%)
  • Assignment 2 - Examination (50%)
  • Assignment 3 - Project Part 1 (25%)

Textbooks are subject to change within the academic year. Students are advised to purchase their books no earlier than one to two months before the start of a subject

Recommended

  • Intro to Java Programming, Brief Version, Global Edition (10e)
  • Y. Daniel Liang
  • 9781292078564
  • Print

Entry Requirements

You must have successfully completed the following subject(s) before starting this subject:

Special requirements

  • SoftwareDetails - Unrestricted access to a WIndows, Macintosh or Linux PC capable of running the Java Software Development Kit (SDK) and a Java code development IDE (such as eclipse).
  • OtherDetails -

    Stable broadband connection required to access online learning materials and live chat sessions / recordings. (note: mobile broadband users may have difficulties participating in live chat sessions)

This subject provides students with an advanced understanding of software development with an emphasis on architecture and design, and how this relates to programming and implementation. Students will explore advanced object oriented concepts and the relationship between design in UML (Unified Modelling Language) and its expression in code and how this is supported by modelling tools and development platforms; parallelism using multi-threading, and first principles client server architecture using socket communications and basic protocols. Students will also explore common object oriented design patterns and their application in domain-specific contexts as well as User Interface Programming.

The subject builds upon existing programming knowledge using Java as the implementation platform, and assumes students already have a basic understanding of Java programming and basic object oriented concepts.

Related degrees