1 months
Tuition fee
Apply date
Start date


This Java Programming - Principles of Software Design offered by Coursera in partnership with Duke University is part of the Java Programming and Software Engineering Fundamentals Specialization.

Visit the official programme website for more information


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 Java Programming - Principles of Software Design offered by Coursera in partnership with Duke University 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:

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

Programme Structure

Courses include:

  • Welcome to the Course
  • Earthquakes: Programming and Interfaces
  • Earthquakes: Sorting Algorithms
  • N-Grams: Predictive Text
  • Java: Tools and Libraries for Everyone

More Details on Coursera Plus:

  • Learn Anything: Explore any interest or trending topic, take prerequisites, and advance your skills
  • Save money: Spend less money on your learning if you plan to take multiple courses this year
  • Flexible Learning: Learn at your own pace, move between multiple courses, or switch to a different course
  • Unlimited Certificates: Earn a certificate for every learning program that you complete at no additional cost

Key information


  • Part-time
    • 1 months

Start dates & application deadlines

You can apply for and start this programme anytime.




  • Self-paced

Academic requirements

We are not aware of any academic requirements for this programme.

English requirements

We are not aware of any English requirements for this programme.

Other requirements

General requirements

  • Beginner Level

Tuition Fee

To alway see correct tuition fees
  • International

    Tuition Fee
    Based on the tuition of 0 USD for the full programme during 1 months.
  • National

    Tuition Fee
    Based on the tuition of 0 USD for the full programme during 1 months.

You can choose from hundreds of free courses, or get a degree or certificate at a breakthrough price. You can now select Coursera Plus, an annual subscription that provides unlimited access.


Coursera provides financial aid to learners who cannot afford the fee. Apply for it by clicking on the Financial Aid link beneath the "Enroll" button on the left. You'll be prompted to complete an application and will be notified if you are approved. You'll need to complete this step for each course in the Specialization, including the Capstone Project. 

Studyportals Tip: Students can search online for independent or external scholarships that can help fund their studies. Check the scholarships to see whether you are eligible to apply. Many scholarships are either merit-based or needs-based.

Fresh content

Updated in the last 3 months

Check the official programme website for potential updates.

Our partners

Java Programming - Principles of Software Design


Go to your profile page to get personalised recommendations!