COMP 413: Intermediate Object-Oriented Development

Credit Hours

3

Prerequisites

COMP 271: Data Structures (strictly enforced)

All MS students are expected to have completed the undergraduate prerequisites:

Please note that MS IT students are expected to complete all prerequisites before taking any course in CS or the Quinlan School of Business. (This includes any additional prerequisites required by Quinlan.)

Description

Object-orientation continues to be a dominant approach to software development. This intermediate programming-intensive course studies the use of classes and objects with an emphasis on collaboration among objects.

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)

Outcome

A thorough understanding of the principles of object-orientation: abstraction, delegation, inheritance, and polymorphism; exposure to basic design patterns; programming experience in mainstream object-oriented languages such as C++ and Java.

You will 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)

Syllabi

Semester/Year Instructor URL
Spring 2014 Dr. Yacobellis https://drive.google.com/file/d/0B5gClDnivRb5LWpEdndWZ2xTbE0/edit?usp=sharing
Fall 2013 Dr. Läufer http://laufer.cs.luc.edu/teaching/313