Duke University
Java Programming: Principles of Software Design
Duke University

Java Programming: Principles of Software Design

Robert Duvall
Owen Astrachan
Andrew D. Hilton

Instructors: Robert Duvall

108,019 already enrolled

Included withCoursera Plus

Gain insight into a topic and learn the fundamentals.
4.6

(1,480 reviews)

Beginner level
No prior experience required
Flexible schedule
Approx. 12 hours
Learn at your own pace
92%
Most learners liked this course
Gain insight into a topic and learn the fundamentals.
4.6

(1,480 reviews)

Beginner level
No prior experience required
Flexible schedule
Approx. 12 hours
Learn at your own pace
92%
Most learners liked this course

Details to know

Earn a career certificate

Add to your LinkedIn profile

Assessments

12 assignments

Taught in English

See how employees at top companies are mastering in-demand skills

Placeholder

Build your subject-matter expertise

This course is part of the Java Programming and Software Engineering Fundamentals Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate
Placeholder
Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

There are 5 modules in this course

Welcome to “Java Programming: Principles of Software Design”! We are excited that you are starting our course to learn how to write programs in Java, one of the most popular programming languages in the world. In this introductory module, you will hear an overview of this course and be introduced to the supporting resources available.

What's included

1 video1 reading

In this module, we will introduce a data set containing details about earthquakes around the world. You will learn how to pull this data into a program, search through the data, and filter the data based on desired criteria. By the end of this module, you will be able to (1) write programs that include multiple classes and ArrayLists of class types, (2) find the maximum value in an ArrayList, (3) use a Filter interface to search through data, (4) implement interfaces with method signatures, and (5) combine several filters together.

What's included

11 videos4 readings3 assignments

In this module, you will continue using real earthquake data to explore several sorting algorithms. You will learn how to implement a selection sort and a bubble sort, then be introduced to a Java method Collections.sort, which sorts with much greater efficiency. By the end of this module, you will be able to (1) implement several sorting algorithms from scratch, (2) use efficient pre-existing sorting classes, (3) modify a class’s compareTo method to choose the criteria by which objects of that type are ordered, and (4) write classes that implement the Comparator interface to create interchangeable sorting criteria.

What's included

12 videos3 readings3 assignments

In this module, you will explore some of the underlying concepts of predictive text. The first lesson will introduce random character generation and then how to train the character selection based on an input text. The second lesson will extend this concept to complete words. By the end of this module, you will be able to: (1) base random text generation on the frequency of characters in a training text, (2) collect a set of characters that occur in a text after randomly chosen initial character(s) to create a semi-random text, (3) extend the predictive text generation to use whole words, and (4) implement your own .equals method to compare complex data types.

What's included

15 videos5 readings5 assignments

As you reach the end of this series, you may wish to extend your Java experience to tools beyond those provided here. This module will cover some of the Java basic information that is needed to program without BlueJ or the edu.duke library. After completing this module, you will be able to: (1) write a main method to start a Java program in any programming environment, (2) use the “static” keyword to modify fields, (3) find alternative editors to use with Java, (4) use exceptions to debug your program and make it more robust, and (5) reference Java libraries that are necessary to read files without the edu.duke library.

What's included

13 videos2 readings1 assignment

Instructors

Instructor ratings
4.7 (126 ratings)
Robert Duvall
Duke University
8 Courses860,673 learners
Owen Astrachan
Duke University
8 Courses860,673 learners

Offered by

Duke University

Recommended if you're interested in Software Development

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Learner reviews

Showing 3 of 1480

4.6

1,480 reviews

  • 5 stars

    74.52%

  • 4 stars

    18.78%

  • 3 stars

    4.12%

  • 2 stars

    1.01%

  • 1 star

    1.55%

LY
5

Reviewed on Sep 27, 2016

SS
5

Reviewed on Jul 27, 2020

BB
5

Reviewed on Dec 6, 2020

New to Software Development? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 7,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions