Java Programming: Principles of Software Design

  • 4.6
Approx. 13 hours to complete

Course Summary

This Java programming course with a focus on design principles teaches students how to write efficient, maintainable code using object-oriented programming concepts.

Key Learning Points

  • Learn key design principles in object-oriented programming
  • Gain practical experience writing Java code
  • Understand how to write efficient and maintainable code

Related Topics for further study


Learning Outcomes

  • Understand key design principles in Java programming
  • Write efficient and maintainable Java code
  • Gain practical experience with Java programming

Prerequisites or good to have knowledge before taking this course

  • Basic knowledge of programming concepts
  • Access to a computer with Java installed

Course Difficulty Level

Intermediate

Course Format

  • Online course
  • Self-paced
  • Video lectures
  • Hands-on exercises

Similar Courses

  • Java Programming: Solving Problems with Software
  • Java Programming: Arrays, Lists, and Structured Data
  • Object Oriented Programming in Java

Related Education Paths


Notable People in This Field

  • Author of Effective Java
  • Java Language Architect at Oracle

Related Books

Description

Solve real world problems with Java using multiple classes. Learn how to create programming solutions that scale using Java interfaces. Recognize that software engineering is more than writing code - it also involves logical thinking and design. By the end of this course you will have written a program that analyzes and sorts earthquake data, and developed a predictive text generator.

Outline

  • Welcome to the Course
  • Welcome!
  • Programming Resources
  • Earthquakes: Programming and Interfaces
  • Introduction
  • Relationships Between Classes
  • Licensing and APIs
  • Coding a Magnitude Filter
  • Coding the Closest Quakes
  • Summary
  • Introduction
  • Interfaces to Avoid Duplication
  • Interfaces in More Depth
  • MatchAll
  • Summary
  • Module Learning Outcomes / Resources
  • Location class documentation and license resources
  • Programming Exercise: Searching Earthquake Data
  • Programming Exercise: Filtering Data
  • Searching Earthquake Data
  • Filtering Data
  • Earthquakes: Programming and Interfaces
  • Earthquakes: Sorting Algorithms
  • Introduction
  • Developing an Algorithm
  • Translating to Code
  • In Place
  • Efficiency
  • Summary
  • Introduction
  • Comparable
  • Ordering Quakes by Magnitude
  • Comparator
  • Comparator for Distance from a Location
  • Summary
  • Module Learning Outcomes / Resources
  • Programming Exercise: Implementing Selection Sort
  • Programming Exercise: Sorting at Scale
  • Implementing Selection Sort
  • Sorting at Scale
  • Earthquakes: Sorting Algorithms
  • N-Grams: Predictive Text
  • Introduction
  • Order-Zero, Order-One
  • Finding Follow Set
  • Implementing Order-Two
  • Testing and Debugging
  • Interfaces and Abstract Classes
  • Summary
  • Introduction
  • Order-One Concepts
  • Order-One Helper Functions
  • WordGram Class
  • WordGram Class Implementation
  • Equals and HashCode Methods
  • Equals Method Implementation
  • Summary
  • Module Learning Outcomes / Resources
  • Programming Exercise: Generating Random Text
  • Programming Exercise: Interface and Abstract Class
  • Programming Exercise: Word N-Grams
  • Programming Exercise: WordGram Class
  • Generating Random Text
  • Interface and Abstract Class
  • Word N-Grams
  • WordGram Class
  • N-Grams: Predictive Text
  • Java: Tools and Libraries for Everyone
  • Miscellaneous Java
  • Main Method
  • Static
  • Editors
  • Summary
  • Introduction
  • Understanding Exceptions
  • Handling Exceptions
  • Declaring Exceptions
  • Throwing Exceptions
  • Reading Files with Java.nio
  • Hello Around the World with Eclipse
  • Summary
  • Module Learning Outcomes / Resources
  • Where To Go From Here
  • Java: Tools and Libraries for Everyone

Summary of User Reviews

Discover the principles of Java programming design through Coursera's Java Programming Design Principles course. Students have praised the course for its comprehensive content and engaging teaching style. One key aspect that users found helpful is the way the course breaks down complex concepts into manageable parts.

Pros from User Reviews

  • Comprehensive content
  • Engaging teaching style
  • Excellent support from instructors and peers
  • Clear explanations of complex concepts
  • Great assignments to practice skills

Cons from User Reviews

  • Some users found the course too basic
  • Assignments can be time-consuming
  • Some users found the course too theoretical and not practical enough
  • Some users found the course slow-paced
  • Some users experienced technical difficulties
English
Available now
Approx. 13 hours to complete
Robert Duvall, Owen Astrachan, Andrew D. Hilton, Susan H. Rodger
Duke University
Coursera

Instructor

Robert Duvall

  • 4.6 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses