Skip to content. | Skip to navigation

Please visit us at
Personal tools
You are here: Home Academic Programs and Information Courses Intermediate Object-Oriented Development Overview

Intermediate Object-Oriented Development Overview

Overview of COMP 313/488 - Intermediate Object-Oriented Development

Course Prerequisite

The prerequisite to this course is COMP 271: Data Structures: Algorithms and Applications or equivalent (see Programming Prerequisites). This prerequisite is strictly enforced!
If you are a graduate student but do not satisfy this prerequisite, you must contact the Graduate Program Director as soon as possible to discuss other course options.

Course Objectives

  • Take your software development abilities to the next level by building on your knowledge of data structures.
  • You will learn to design and implement more complex programs using good software engineering practices, including:
  • - Designing with interfaces and composition
    - Design patterns
    - Refactoring
    - Test-driven development (TDD)
  • Here’s how COMP 313/488 fits into the overall series of OO courses:
  • - COMP 170 (CS1) - simple objects representing scalars
    - COMP 271 (CS2) - collections of simple objects
    - COMP 313/488 - complex, interacting objects; basic design patterns
    - COMP 373/473 - advanced design patterns and topics such as AOP(Aspect-Oriented programming)

Course Topics

  • Data Structures of various types – linear vs. nonlinear, indexing vs. non-indexing, position vs. value-oriented
  • Advanced Java, e.g. interfaces, annotations, exceptions, generics, collections, boxing/unboxing, array objects
  • Object Modeling – UML, use cases and activity diagrams, class diagrams, archetypes, interaction diagrams
  • Design by contract, interfaces, refactoring & generalization, design patterns (Adapter, Decorator, Composite, Strategy, Iterator, Abstract Factory, Visitor, …)
  • Agile Development Process – evolutionary design, test-driven development, refactoring, …
  • Tools – Eclipse, Subversion, JUnit, JMock, Ant, …
  • Techniques – object pooling, garbage collection, performance profiling (NetBeans)


This list is illustrative and subject to change. Please check the actual textbook information for the section offered in the current semester.
  • Required – Bloch: Effective Java™, Second Edition
  • - Pearson Addison-Wesley, ISBN 0-321-35668-3
    - Also available online on Safari® through the Loyola library system*:
  • Other recommended books:
  • - Fowler: UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition) [available through Loyola Safari] - Sestoft: Java Precisely, 2nd Edition - Holub: Holub on Patterns: Learning Design Patterns by Looking at Code - Keogh & Giannini: OOP Demystified - Koskela: Test Driven: Practical TDD and Acceptance TDD for Java Developers [available through Loyola Safari]
  • Some suggested references:
  • - Smart: Java Power Tools [available through Loyola Safari]
    - See also Konstantin Läufer’s COMP 313/488 website:
Document Actions
« February 2020 »