subject

Coursera: Java Programming: Solving Problems with Software

 with  Owen Astrachan, Robert Duvall, Andrew D. Hilton and Susan H. Rodger
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.

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.

Syllabus

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.

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.

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

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!

12 Student
reviews
Cost Free Online Course (Audit)
Pace Upcoming
Institution Duke University
Provider Coursera
Language English
Certificates Paid Certificate Available
Calendar 4 weeks long
Sign up for free? Learn how

Disclosure: To support our site, Class Central may be compensated by some course providers.

+ Add to My Courses
FAQ View All
What are MOOCs?
MOOCs stand for Massive Open Online Courses. These are free online courses from universities around the world (eg. Stanford Harvard MIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you.  They also have student discussion forums, homework/assignments, and online quizzes or exams.

12 reviews for Coursera's Java Programming: Solving Problems with Software

Write a review
7 out of 7 people found the following review useful
2 years ago
Ericdo1810 partially completed this course, spending 6 hours a week on it and found the course difficulty to be hard.
This course, rather than teaching you how to write programs in Object-oriented programming paradigm, teaches you how to write simple programs (classes) in Java. The purpose of this course, I feel, is not to teach me Java specifically (because they do not really touch on the relationships of classes, objects, superclas Read More
This course, rather than teaching you how to write programs in Object-oriented programming paradigm, teaches you how to write simple programs (classes) in Java.

The purpose of this course, I feel, is not to teach me Java specifically (because they do not really touch on the relationships of classes, objects, superclasses, subclasses, interface, inheritance, etc). However, they teach me programming in the Java development environment. In short, the goal is to teach me how to write simple codes and perform basic algorithms in Java.

With this goal, I think the course did well, I am very comfortable with writing codes in Java after the course. The course also had ample practice via programming exercises (practice quizzes). Their assignments are also of good-quality because they do not have many MCQs (which you can usually just tick until you hit the correct one). Rather, they require us to type in our written program's output to answer. Hence, they make sure that we actually did our work, wrote the program, understand whats going on.

The course, and other courses in the specialization, will give you all the basic concepts in Java, except for the Object-oriented programming paradigm. This one is better taught in other courses like the Java specialization offered by UC San Diego.
Was this review helpful to you? YES | NO
7 out of 8 people found the following review useful
2 years ago
profile picture
Anonymous is taking this course right now.
To difficult for a beginner. You have to write very complicated code to pass the quiz. Not recommend for a beginner.
Was this review helpful to you? YES | NO
6 months ago
profile picture
Anonymous is taking this course right now.
What happened? The first course in this series was a stellar introduction to programming for those with little/no experience, with the added bonus of amazing "mentors" (moderators) in the discussion forums to help solve issues. This course, however, is a vast departure from that. The lectures are incredibly long, hard Read More
What happened? The first course in this series was a stellar introduction to programming for those with little/no experience, with the added bonus of amazing "mentors" (moderators) in the discussion forums to help solve issues. This course, however, is a vast departure from that. The lectures are incredibly long, hard to follow, and don't seem to apply to the exercises, and the forums are hardly monitored at all. I work in IT and while I am certainly a beginner, I'm neither an idiot nor unfamiliar with these concepts; yet I'm struggling to the point of wanting to quit. If it wasn't for sites like StackExchange and the help of my friends and coworkers, I'd be long gone.

Here's hoping they can bring the "magic" and care of the first course to this one- otherwise, this feels like a hastily put-together and poorly managed MOOC. That said, this course is on par with a similar free offering from EdX I took last year- don't waste your money. Go with the free option instead and you'll get the same value.
Was this review helpful to you? YES | NO
9 out of 14 people found the following review useful
2 years ago
profile picture
Anonymous dropped this course.
This course moved too quickly for a beginner learning java. Week 1 to Week 2 did not seem to tie together. The coding examples that the lecturers used in the videos and quizes did not seem to work
Was this review helpful to you? YES | NO
2 out of 3 people found the following review useful
2 years ago
profile picture
Anonymous completed this course.
This course is typically the kind of fun, beginner-friendly, challenging intro to java course that can familiarize you with basic concepts of Java very quickly. Quizzes are quite tough to complete, due to the input of answer format. However, it's worth the challenge since your written program needs to work perfectly Read More
This course is typically the kind of fun, beginner-friendly, challenging intro to java course that can familiarize you with basic concepts of Java very quickly.

Quizzes are quite tough to complete, due to the input of answer format. However, it's worth the challenge since your written program needs to work perfectly for you to score.

However, the course is not prohibitively difficult. In fact, it's quite fun.

Awesome course, love the teaching of the Duke CS Edu team :)
Was this review helpful to you? YES | NO
10 months ago
profile picture
Anonymous is taking this course right now.
I have coding experience with C++ and have been studying these materials intensely, but I am stuck on Week 2. This class is NOT for beginners. Instructors are not helpful at all in the forums. I only gave it 2 stars because it seems like it might be useful for an intermediate level.
Was this review helpful to you? YES | NO
4 out of 4 people found the following review useful
2 years ago
profile picture
Anonymous is taking this course right now.
definitely not for a beginner!!! poor teaching techniques , explanations are not clear, the classes don't tie together. not worth to purchase
Was this review helpful to you? YES | NO
1 out of 1 people found the following review useful
a year ago
Harsh Bhasin completed this course.
Was this review helpful to you? YES | NO
9 months ago
Abhilash Vj completed this course.
Was this review helpful to you? YES | NO
a year ago
Rayhaan Pirani completed this course.
Was this review helpful to you? YES | NO
8 months ago
Hussein Bilal audited this course.
Was this review helpful to you? YES | NO
a year ago
profile picture
Andrew Kharook audited this course.
Was this review helpful to you? YES | NO

Class Central

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free