A complete learning environment for building the skills needed for sustainable design

  • Hands-on code and review

    Dozens of guided code samples to explore principles of good design with review and discussion

  • Discussions

    Discussions on design results with instructors and fellow students

  • Online quizzes

    Each section concludes with an online quiz to let you check your understanding

Course Overview

A quick introduction to the Foundations of Sustainable Design

Course curriculum

  • 2
    Coupling
  • 3
    Cohesion
    • Introduction FREE PREVIEW
    • An Overview of Cohesion (Video)
    • Exercise: Identify Cohesion
    • Exercise: Identify Cohesion (Discussion)
    • Exercise: Identify Cohesion (Review)
    • Exercise: Changing with More Cohesive Code
    • Exercise: Changing with More Cohesive Code (Discussion)
    • Exercise: Changing with More Cohesive Code (Review)
    • Exercise: Experience the Effects of Non-Cohesion
    • Exercise: Experience the Effects of Non-Cohesion (Discussion)
    • Exercise: Experience the Effects of Non-Cohesion (Review)
    • Exercise: Improving Code
    • Exercise: Improving Code (Discussion)
    • Exercise: Improving Code (Review)
    • Assess Your Understanding About Cohesion (Quiz)
  • 4
    Encapsulation
    • Introduction FREE PREVIEW
    • Essential Aspects of UML
    • An Overview of Encapsulation (Video)
    • Exercise: Identify Encapsulation in One Class
    • Exercise: Identify Encapsulation in One Class (Discussion)
    • Exercise: Identify Encapsulation in One Class (Review)
    • Exercise: Identify Encapsulation in a Complete Design
    • Exercise: Identify Encapsulation in a Complete Design (Discussion)
    • Exercise: Identify Encapsulation in a Complete Design (Review)
    • Exercise: Working with Un-encapsulated Code
    • Exercise: Working with Un-encapsulated Code (Checking your work)
    • Exercise: Working with Un-encapsulated Code (Discussion)
    • Exercise: Working with Un-encapsulated Code (Review)
    • Exercise: Improving Code
    • Exercise: Improving Code (Discussion)
    • Exercise: Improving Code (Review)
    • Assess Your Understanding About Encapsulation (Quiz)
  • 5
    Non-Redundancy
    • Introduction FREE PREVIEW
    • An Overview of Non-Redundancy (Video)
    • Exercise: Identify Redundancy in a Single Algorithm
    • Exercise: Identify Redundancy in a Single Algorithm (Discussion)
    • Exercise: Identify Redundancy in a Single Algorithm (Review)
    • Exercise: Identify Redundancy in an Entire Design
    • Exercise: Identify Redundancy in an Entire Design (Discussion)
    • Identify Redundancy in an Entire Design (Review)
    • Exercise: Attempt to Modify Copy-Pasted Code
    • Exercise: Attempt to Modify Copy-Pasted Code (Discussion)
    • Exercise: Attempt to Modify Copy-Pasted Code (Review)
    • Exercise: Improving Redundant Code
    • Exercise: Improving Redundant Code (Discussion)
    • Exercise: Improving Redundant Code (Review)
    • Assess Your Understanding About Non-Redundancy (Quiz)
  • 6
    Focus
    • Introduction FREE PREVIEW
    • An Overview of Focus (Video)
    • Exercise: Identify Lack of Focus in a Design
    • Exercise: Identify Lack of Focus in a Design (Discussion)
    • Exercise: Identify Lack of Focus in a Design (Review)
    • Exercise: Attempt to Modify Copy-Pasted Code With Poor Focus
    • Exercise: Attempt to Modify Copy-Pasted Code With Poor Focus (Discussion)
    • Exercise: Attempt to Modify Copy-Pasted Code With Poor Focus (Review)
    • Exercise: Improving Defocused Code
    • Exercise: Improving Defocused Code (Discussion)
    • Exercise: Improving Defocused Code (Review)
    • Assessing Your Understanding About Focus (Quiz)
  • 7
    Readablity
    • Introduction FREE PREVIEW
    • An Overview of Readablity (Video)
    • Exercise: Compare Readability of Different Designs
    • Exercise: Compare Readablity of Different Designs (Discussion)
    • Exercise: Compare Readablity of Different Designs (Review)
    • Exercise: Attempt to Modify Code with Questionable Readability
    • Exercise: Attempt to Modify Code with Questionable Readability (Discussion)
    • Exercise: Attempt to Modify Code with Questionable Readability (Review)
    • Exercise: Improving Unreadable Code
    • Exercise: Improving Unreadable Code (Discussion)
    • Exercise: Improving Unreadable Code (Review)
    • Assessing Your Understanding About Readability (Quiz)
  • 8
    Testablity
    • Introduction
    • An Overview of Testability (Video)
    • Exercise: Identify Testability of a Design
    • Exercise: Identify Testablity of a Design (Discussion)
    • Exercise: Identify Testability of a Design (Review)
    • Exercise: Writing Tests for Untestable Code
    • Exercise: Writing Tests for Untestable Code (Discussion)
    • Exercise: Writing Tests for Untestable Code (Review)
    • Exercise: Make Code Testable
    • Make Code Testable (Discussion)
    • Make Code Testable (Review)
    • Assessing Your Understanding About Testability (Quiz)
  • 9
    Wrap-up
    • Finishing and Next

Pricing options

Regular pricing offers access to all resources. Group discounts are available.

Take a test drive

Try the sample lessons. Then enroll in the course to deepen your skills in sustainable design.

Instructor(s)

  • Scott Bain

    Senior Consultant

    Scott Bain

    Scott is a 40 year veteran in computer technology, with a background in development, engineering, and design. He has also designed, delivered, and managed training programs for certification and end-user skills, both in traditional classrooms and via distance learning. Scott teaches courses and consults on Agile Analysis and Design Patterns, Advanced Software Design, and Sustainable Test-Driven Development. Scott is a frequent speaker at developer conferences such as JavaOne and SDWest. He is the author of Emergent Design which won a Jolt Productivity Award. He is a co-author of Essential Skills for the Agile Developer.
  • Max Guernsey

    Senior Consultant

    Max Guernsey

    Max  Guernsey, III is a veteran software developer with more than fifteen  years' experience helping teams build quality software, identify  high-value work, improve their technical skills, and adopt agile  practices. He is an expert in applying test-driven development to database designs. He teaches courses and consults on Agile Analysis and Design Patterns, Advanced Software Design, Sustainable Test-Driven Development, and Acceptance Tests.Max is the author of Test-Driven Database Development: Unlocking Agility. It is available from Addison Wesley/Professional

Bonus material

Here is some free stuff you get with this course.

  • Free LinkedIn certification

    Showcase your achievement with certification linked to your personal LinkedIn account.

  • Premium content

    Get access to the Premium Content section of the Net Objectives portal including templates, discussion forums, and special articles.

What else you need to know

  • All courses taught by industry thought leaders and published authors

  • Affordable

  • Learn at your own pace

  • Guided code examples

  • Quizzes to test your understanding

You may also be interested in...

  • $49.00 / month

    $49.00 / monthNet Objectives Community Bundle

    Access to popular courses and portal premium content at a convenient monthly subscription.
    Buy Now

Explore our related courses.