About this Course
202,133 recent views

100% online

Start instantly and learn at your own schedule.

Flexible deadlines

Reset deadlines in accordance to your schedule.

Beginner Level

Approx. 25 hours to complete

Suggested: 4 weeks of study, 4-8 hours/week...


Subtitles: English, Korean

Skills you will gain

AlgorithmsProblem SolvingString (Computer Science)Java Programming

100% online

Start instantly and learn at your own schedule.

Flexible deadlines

Reset deadlines in accordance to your schedule.

Beginner Level

Approx. 25 hours to complete

Suggested: 4 weeks of study, 4-8 hours/week...


Subtitles: English, Korean

Syllabus - What you will learn from this course

22 minutes to complete

Introduction to the Course

Welcome to “Java Programming: Solving Problems with Software”! 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 get to meet the instructor team from Duke University and have an overview of the course. Have fun!

5 videos (Total 12 min), 1 reading
5 videos
Resources to Help You Succeed1m
Tips for Learning Programming1m
Using Forums: How to Ask for Help Effectively3m
Object Oriented Programming with Java Specialization2m
1 reading
Programming Resources10m
5 hours to complete

Fundamental Java Syntax and Semantics

In this module, you will learn to write and run your first Java programs, including one program that prints “Hello!” in various countries’ languages and another where you will analyze the perimeters and other information of shapes. To accomplish these tasks, you will learn the basics of Java syntax and how to design stepwise solutions with programs. By the end of this module, you will be able to: (1) Download and run BlueJ, the Java programming environment for this course; (2) Access the documentation for the Java libraries specially designed for this course; (3) Edit, compile, and run a Java program; (4) Construct methods, variables, if else statements, and for each loops in Java; and (5) Use Iterables (like DirectoryResource) to run a program that iterates over multiples lines in a document or webpage or multiple files in a directory.

17 videos (Total 76 min), 4 readings, 5 quizzes
17 videos
Using BlueJ to Program in Java6m
Shapes: Collections of Points2m
Why Semantics: Motivation to Read Code1m
Mathematical Operators2m
For Each Loops7m
Solving Programming: A Seven Step Approach6m
Seven Steps in Action: Developing an Algorithm7m
Seven Steps in Action: Testing the Algorithm4m
Seven Steps in Action: Translating to Code5m
4 readings
Module Learning Outcomes10m
Download BlueJ and Open Your First BlueJ Project10m
Let's learn some basic Java syntax!1m
Calculating the Perimeter of a Shape2h
5 practice exercises
Getting Started with BlueJ10m
Variables and Mathematical Operators10m
Functions and Conditionals15m
Classes, Types, and For Each Loops30m
Calculating the Perimeter of a Shape30m
4 hours to complete

Strings in Java

This module begins with a short presentation from Raluca Gordân, an assistant professor in Duke University’s Center for Genomic and Computational Biology, about an important problem genomics scientists encounter regularly: how to identify genes in a strand of DNA. To tackle this problem, you will need to understand strings: series of characters such as letters, digits, punctuation, etc. After learning about Java methods that work with strings, you will be able to find genes within a DNA string as well as tackle other string related problems, such as finding all of the links in a web page. By the end of this module, you will be able to: (1) Use important methods for the Java String class; (2) Use conditionals, for loops, and while loops appropriately in a Java program; (3) Find patterns in the data represented by strings to help develop the algorithm for your program; (4) Understand the importance of designing programs that keep different data processing steps separate; (5) Use the StorageResource iterable for this course to store some data for further processing; and (6) Rely on Java documentation to better understand how to use different Java packages and classes.

21 videos (Total 122 min), 3 readings, 6 quizzes
21 videos
Understanding Strings3m
Developing an Algorithm5m
Positions in Strings8m
Translating into Code11m
Java Math8m
Conceptual Understanding4m
While Loops9m
While Loop Syntax and Semantics3m
Coding While Loops6m
Three Stop Codons5m
Coding Three Stop Codons - Part I7m
Coding Three Stop Codons - Part II4m
Logical And / Or8m
Coding And / Or6m
Finding Multiple Genes5m
Translating to Code8m
Separation of Concerns5m
StorageResource Class3m
Coding StorageResource Class4m
3 readings
Programming Exercise: Finding a Gene and Web Links10m
Programming Exercise: Finding Many Genes10m
Programming Exercise: Storing All Genes10m
6 practice exercises
Finding a Gene in DNA12m
Finding All Genes in DNA8m
Debugging: Part 124m
Debugging: Part 222m
Using StorageResource12m
Strings in Java14m
2 hours to complete

CSV Files and Basic Statistics in Java

A common format for storing tabular data (any data organized into columns and rows) is in comma separated values (CSV) files. In this module, you will learn how to analyze and manipulate data from multiple CSV data files using a powerful open-source software package: Apache Commons CSV. Using this library will empower you to solve problems that could prove too complex to solve with a spreadsheet. By the end of this module, you will be able to: (1) Use the open-source Apache Commons CSV package in your own Java programs; (2) Access data from one or many CSV files using Java; (3) Convert strings into numbers; (4) Understand how to use “null” in Java programs (when you want to represent “nothing”); (5) Devise an algorithm (and implement in Java) to answer questions about CSV data; and (6) Analyze CSV data across multiple CSV files (for example, find maximums, minimums, averages, and other simple statistical results).

14 videos (Total 56 min), 3 readings, 3 quizzes
14 videos
Using CSV Libraries7m
Which Countries Export...? Developing an Algorithm4m
Which Countries Export...? Translating into Code5m
CSVExport: Summary48s
Hottest Day in a Year: Comma Separated Values2m
Converting Strings to Numbers4m
Maximum Temperature: Developing an Algorithm5m
Java for Nothing—null: When You Don't Have an Object4m
Maximum Temperature: Translating into Code4m
Maximum Temperature: Testing Code3m
Maximum Temperature from Multiple Datasets5m
Maximum Temperature Refactored4m
CSVMax: Summary41s
3 readings
Module Learning Outcomes10m
Programming Exercise: Parsing Export Data10m
Programming Exercise: Parsing Weather Data10m
3 practice exercises
Which Countries Export...?12m
Weather Data18m
CSV Files and Basic Statistics in Java22m
2 hours to complete

MiniProject: Baby Names

This module wraps up the course with a mini project that ties together the different practices, skills, and libraries you have gained across the course! Using data on the popularity of different baby names in the United States from the past several decades, you will be able to compare different names’ popularity over time. While the data we have collected for this course is from the United States, we welcome you to share data from other countries in the course discussion forums. Good luck with the mini project!

9 videos (Total 47 min), 3 readings, 2 quizzes
9 videos
Baby Names MiniProject: Data Overview6m
Baby Names MiniProject: Total Births7m
Batch Grayscale: Converting Many Files2m
Grayscale Algorithm: Seven Step Approach4m
Image Iterable in BlueJ: Grayscale5m
Batch Processing Grayscale3m
Saving Images with New Names11m
Batch Grayscale Summary: Converting Many Files1m
3 readings
MiniProject Exercise Guide10m
Extend Your Program10m
Programming Exercise: Batch Grayscale and Image Inversion10m
2 practice exercises
Baby Names28m
Batch Grayscale Images12m
527 ReviewsChevron Right


started a new career after completing these courses


got a tangible career benefit from this course


got a pay increase or promotion

Top reviews from Java Programming: Solving Problems with Software

By FAOct 8th 2017

Excellent explanations and amount of course work for practice, the tests made good use of the examples and work given, I am satisfied with what I learned in this course and see it's real world usage.

By CCMar 29th 2018

Great course, it does help to have some background knowledge in another language but it is doable without any. goes through some fun projects but also some work usable items such as CSV parsing.



Owen Astrachan

Professor of the Practice
Computer Science

Robert Duvall

Computer Science

Andrew D. Hilton

Associate Professor of the Practice
Electrical and Computer Engineering

Susan H. Rodger

Professor of the Practice
Computer Science

About Duke University

Duke University has about 13,000 undergraduate and graduate students and a world-class faculty helping to expand the frontiers of knowledge. The university has a strong commitment to applying knowledge in service to society, both near its North Carolina campus and around the world....

Frequently Asked Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

  • No. Completion of a Coursera course does not earn you academic credit from Duke; therefore, Duke is not able to provide you with a university transcript. However, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

More questions? Visit the Learner Help Center.