Object-Oriented Design

Good design matters.

Object-oriented thinking is a core developer skill, but some haven't had the opportunity to learn it.

The focus of the Object-Oriented Design Workshop is making you think about the basics of good design and why it's important.

You will learn and practice basic OO skills such as polymorphism, encapsulation, and controlling relationships between objects.

You will learn the basics of microtesting, TDD, Code Smells, Refactoring and Evolutionary Design. (These form a foundation for the more advanced material such as the Testing and Refactoring Workshop.)

Along the way, you'll take small objective tests that reinforce the ideas.

Agenda

  • Day 1
  • Design and Craft: Being a Professional
  • Exercise: Roman Numerals - Thinking in Terms of Objects
  • Polymorphism for Powerful Substitution
  • Exercise: Limits of Inheritance
  • Exercise: Object Relationships
  • Recursion or Iteration?
  • Exercise: Change Loop to Recursion
  • DRY: Don't Repeat Yourself
  • Exercise: Refactor Duplicate Code
  • Day 2
  • Coupling and Cohesion
  • Encapsulation: Hiding the Right Stuff
  • Exercise: Data Hiding
  • SOLID Principles
  • Exercise: Refactor Switch Smell
  • Exercise: Refactor Refused Bequest Smell
  • SOLID in Action
  • Day 3
  • Code Smells and Refactoring
  • Exercise: Finding and Fixing Poor Code
  • Functional Programming: An Introduction
  • Exercise: Simplifying Code with Functional Concepts
  • Test-Driven Development
  • Exercise: Test-Driven Development Practice
  • Evolutionary Design: Growing Systems Effectively
  • Exercise: Applying Evolutionary Design
  • Day 1
  • Design and Craft: Being a Professional
  • Exercise: Roman Numerals - Thinking in Terms of Objects
  • Polymorphism for Powerful Substitution
  • Exercise: Limits of Inheritance
  • Exercise: Object Relationships
  • Recursion or Iteration?
  • Exercise: Change Loop to Recursion
  • DRY: Don't Repeat Yourself
  • Exercise: Refactor Duplicate Code
  • Day 2
  • Coupling and Cohesion
  • Encapsulation: Hiding the Right Stuff
  • Exercise: Data Hiding
  • SOLID Principles
  • Exercise: Refactor Switch Smell
  • Exercise: Refactor Refused Bequest Smell
  • SOLID in Action
  • Day 3
  • Code Smells and Refactoring
  • Exercise: Finding and Fixing Poor Code
  • Functional Programming: An Introduction
  • Exercise: Simplifying Code with Functional Concepts
  • Test-Driven Development
  • Exercise: Test-Driven Development Practice
  • Evolutionary Design: Growing Systems Effectively
  • Exercise: Applying Evolutionary Design
  • Day 4 and 5
  • Work on your own code

Course Details

Transfer
Knowledge: 50%, Skill-Building: 50%
Learning outcomes
  • Understanding of the key principles that create good object designs
  • Able to demonstrate the use of inheritance and polymorphism
  • Able to identify common code smells and suggest refactorings to improve them
  • Able to do basic Test-Driven Development
Method of Instruction
A mix of Interactive Dialogs, Exercises, Lectures, Live and/or Video Demonstrations, and Instructional Simulation
Target Audience
Primary: Programmers with up to 2-3 years experience, but limited experience with Object-Oriented concepts
Course Level
Introductory
Course Prerequisites
Required: An open mind.
Highly Recommended: Basic familiarity with the language being used

Requirements

General Requirements

To ensure a successful class, we require the following facilities:

  • VGA projector (1024x768 minimum)
  • Projector screen
  • Speakers (to connect instructor's machines. Sound should be audible to the whole class)
  • White board
  • Dry erase markers
  • Flip chart and stand
  • Ample room for students in terms of room size and set up (prefer U-Shape seating)
  • At least one powerful workstation per two programmers (at least Dual Core Processor with 2 GB RAM)
  • High-speed Internet Access (at least 2 Mbps Line) to http://elearning.industriallogic.com

Development Tools

Students need to have their development environment set up before class begins.

Supported Browsers

  • Latest Firefox
  • Internet Explorer 8+
  • Latest Chrome
  • Latest Safari

Operating Systems

  • Windows
  • Linux
  • Mac OS X

Flash 9 (or higher) is required to watch our videos — download for free.

Each student will need a pair of headphones to watch our videos.

Once an agreement for the workshop is confirmed, we will work with your designated contact to ensure that the environment is configured properly prior to the workshop.

Request a Quote