Skip to content

Latest commit

 

History

History
 
 

Duke-Java-Programming-Principles-of-Software-Design

Duke University - Java Programming: Principles of Software Design

Smiley face

Duke University INSTRUCTORS

Instructors: Andrew D. Hilton, Robert Duvall, Owen Astrachan, Susan H. Rodger

Documentation for edu.duke library

Course 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.

After completing this course you will be able to:

  1. Use sorting appropriately in solving problems;
  2. Develop classes that implement the Comparable interface;
  3. Use timing data to analyze empirical performance;
  4. Break problems into multiple classes, each with their own methods;
  5. Determine if a class from the Java API can be used in solving a particular problem;
  6. Implement programming solutions using multiple approaches and recognize tradeoffs;
  7. Use object-oriented concepts including interfaces and abstract classes when developing programs;
  8. Appropriately hide implementation decisions so they are not visible in public methods; and
  9. Recognize the limitations of algorithms and Java programs in solving problems.
  10. Recognize standard Java classes and idioms including exception-handling, static methods, java.net, and java.io packages..

IMPORTANT NOTE:

Some code could be run in a custom Bluej Development Environment made by Duke's University especially for this course. You can get the IDE from the University website here.