SE 350 - Object-Oriented Software Development

Course Overview

Instructor: Stefan Mitsch

What is this course about?

  • Study principles, techniques, and tools
    of object-oriented modeling, design, and implementation
  • Learn real-world aspects of object orientation by putting concepts into practice
  • Topics
    • Principles of object-oriented programming languages and design
    • UML basics
    • Quality metrics and refactoring of object-oriented design
    • Design patterns and anti-patterns
    • Testing methodologies

What is this course about?

  • Not just programming
    • Identify programming challenges
    • Design programming solutions
    • Write maintainable, extensible, testable, high-quality code
  • Not just in a single language
    • Learn common maintainability and extensibility challenges
    • Identify common mistakes: anti-patterns
    • Learn transferable solutions: patterns

Course objectives and learning outcomes

  • Object-oriented design principles
    • Gain a deep understanding of object-oriented concepts
    • When and how to use concepts
    • Put into practice by designing and developing software applications
  • Visual modeling
    • Learn basic visual modeling with UML class and sequence diagrams
  • Design patterns and object-oriented programming paradigms
    • Identify challenges, learn and apply solutions in terms of well-established coding and architectural patterns
  • Implementation
    • Apply advanced object-oriented programming language features, learn about incremental and iterative development, refactoring, and writing high-quality code

Prerequisites

  • What do you need to know at the start of the class?
    • Understand how to create and manage a software project
    • Java and UML will be used for examples, assignments, and exams
    • Experience programming in Java; this is not an introductory Java course
  • Required courses
    • Data Structures II
  • Optional courses
    • Software testing
    • Object-oriented modeling

My contact

  • Phone: 312-362-5938
  • Office: CDM 840 (for access: call from reception phone)
  • E-mail: smitsch@depaul.edu
  • Office hours: Mondays 10:00-11:30am (please schedule an appointment)
  • Course forum: D2L (announcements, discussions, sharing files, uploading assignments, grades)

Textbooks

  • Mandatory: none
  • Useful



E. Gamma et al.: Design Patterns



E. Freeman et al.: Head First Design Patterns



M. Fowler: UML Distilled



M. Fowler: Refactoring



K. Sierra et al.: Head First Java

Course supplementary material

  • Course website
  • D2L
  • Resources
    • Environment setup
    • OOP & Java
    • SOLID design principles
    • UML introduction
    • Design patterns

Syllabus

  • Syllabus
  • Our contract for the course
  • Please review carefully
  • Updates (if any) will be announced on D2L