Java Programming: Solving Problems with Software (Coursera)

Offered by Duke University,
Java Programming: Solving Problems with Software (Coursera)

Learn to code in Java and improve your programming and problem-solving skills. You will learn to design algorithms as well as develop and debug programs. Using custom open-source classes, you will write programs that access and transform images, websites, and other types of data. At the end of the course you will build a program that determines the popularity of different baby names in the US over time by analyzing comma separated value (CSV) files.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

After completing this course you will be able to:

  1. Edit, compile, and run a Java program;
  2. Use conditionals and loops in a Java program;
  3. Use Java API documentation in writing programs.
  4. Debug a Java program using the scientific method;
  5. Write a Java method to solve a specific problem;
  6. Develop a set of test cases as part of developing a program;
  7. Create a class with multiple methods that work together to solve a problem; and
  8. Use divide-and-conquer design techniques for a program that uses multiple methods.

This course is part of multiple programs
This course can be applied to multiple Specializations or Professional Certificates programs. Completing this course will count towards your learning in any of the following programs:

Syllabus

WEEK 1
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!
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.

WEEK 2
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.

WEEK 3
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).

WEEK 4
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!

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera) Coursera
Hebrew University of Jerusalem

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera)

In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform.

Sep 14th 2026
5-12 Weeks
Persistent Memory Technology - Introduction and Deployment (Coursera) Coursera
EDUCBA

Persistent Memory Technology - Introduction and Deployment (Coursera)

Embark on a dynamic learning journey through this course. In the first module, explore the intricacies of Persistent Memory (PMEM), unraveling its fundamental concepts, characteristics, and operating system support. Transition seamlessly into the second module, mastering transactional concepts, optimizing hardware configurations, and discerning between volatile and persistent libraries. In the final module, dive into advanced programming with libpmemobj, overcoming C++ Standard limitations, and applying insights to real-world scenarios like building a phonebook.

Sep 14th 2026
3 Weeks
Samsung Customer Care Essentials (Coursera) Coursera
Samsung

Samsung Customer Care Essentials (Coursera)

Prepare to join a group of over 10,000 Samsung Mobile certified repair technicians in the U.S. who have gone through a training certification that equips them with the skills to conduct a mobile repair safely. Samsung has more than 1,000 Authorized Service Centers and service locations which is a care network that 75% of Americans have access to. This is an entry level course that will teach you the basics of Samsung Care that are needed to become a Samsung mobile repair technician or customer care representative.

Sep 14th 2026
3 Weeks
Creative Problem Solving (Coursera) Coursera
University of Minnesota

Creative Problem Solving (Coursera)

This course deals directly with your ability for creativity which is a critical skill in any field. It focuses on divergent thinking, the ability to develop multiple ideas and concepts to solve problems. Through a series of creativity building exercises, short lectures, and readings, learners develop both an understanding of creativity and increase their own ability.

Sep 14th 2026
4 Weeks
Uso de bases de datos con Python (Coursera) Coursera
University of Michigan

Uso de bases de datos con Python (Coursera)

Este curso presentará a los estudiantes los conceptos básicos del lenguaje de consulta estructurado (Structured Query Language, SQL), así como el diseño básico de bases de datos para almacenar datos como parte de una iniciativa de varios pasos para recopilar, analizar y procesar datos. El curso utilizará SQLite3 como base de datos. También crearemos rastreadores web y procesos de visualización y recopilación de datos de varios pasos. Utilizaremos la biblioteca D3.js para realizar la visualización básica de datos.

Sep 14th 2026
5-12 Weeks
Laboratório de Programação Orientada a Objetos - Parte 2 (Coursera) Coursera
Universidade de São Paulo, Brasil

Laboratório de Programação Orientada a Objetos - Parte 2 (Coursera)

Esta é a segunda parte do curso avançado de Programação Orientada a Objetos oferecido pelo Departamento de Ciência da Computação do IME-USP. O curso é voltado para profissionais ou estudantes interessados em Desenvolvimento de Software Avançado e que já dominam uma linguagem de programação e já conhecem os fundamentos básicos da orientação a objetos.

Sep 14th 2026
5-12 Weeks
Introduction to Engineering Design (Coursera) Coursera
Starweaver

Introduction to Engineering Design (Coursera)

In today's fast-paced technological environment, understanding the fundamentals of engineering design is crucial for aspiring engineers and professionals alike. This comprehensive course serves as a primer, introducing participants to key concepts and methodologies essential for designing innovative solutions to complex problems. It provides an overview of the engineering design process, emphasizing the integration of creativity and functionality in problem-solving.

Sep 14th 2026
4 Weeks
Machine Design Part I (Coursera) Coursera
Georgia Institute of Technology

Machine Design Part I (Coursera)

“Machine Design Part I” is the first course in an in-depth three course series of “Machine Design.” The “Machine Design” Coursera series covers fundamental mechanical design topics, such as static and fatigue failure theories, the analysis of shafts, fasteners, and gears, and the design of mechanical systems such as gearboxes. Throughout this series of courses we will examine a number of exciting design case studies, including the material selection of a total hip implant, the design and testing of the wing on the 777 aircraft, and the impact of dynamic loads on the design of an bolted pressure vessel. In this first course, you will learn robust analysis techniques to predict and validate design performance and life.

Sep 14th 2026
5-12 Weeks
Digital Signal Processing 1: Basic Concepts and Algorithms (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Digital Signal Processing 1: Basic Concepts and Algorithms (Coursera)

Digital Signal Processing is the branch of engineering that, in the space of just a few decades, has enabled unprecedented levels of interpersonal communication and of on-demand entertainment. By reworking the principles of electronics, telecommunication and computer science into a unifying paradigm, DSP is a the heart of the digital revolution that brought us CDs, DVDs, MP3 players, mobile phones and countless other devices.

Sep 14th 2026
4 Weeks