Java Programming: Solving Problems with Software

4.6 (1285)
MOOC
Java Programming: Solving Problems with Software
Language
English
Course by Coursera
Java Programming: Solving Problems with Software
What will you learn?
Algorithms
Problem Solving
String (Computer Science)
Java Programming
About the course

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.

Program
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!
Lecturers
Owen Astrachan
Owen Astrachan
Robert Duvall
Robert Duvall
Andrew D. Hilton
Andrew D. Hilton
Susan H. Rodger
Susan H. Rodger
Platform
/storage/img/providers/coursera.svg
Courses on this platform are often free of charge. However, certification and specialization in a certain domain come at a cost. All video lectures are followed by practical assignments and content for individual study. The assignments are checked by fellow students, the teacher or the system if it is a test. Some courses do not have a Russian voice-over, but Russian subtitles are available. If students do not meet the deadlines or do not complete their assignments then they are automatically moved to the next class being compiled.
Comments (1266)
To say this course is for beginners is a misnomer. I think if one has some familiarity with another programming language then yes - this could be a beginner course. I came into this course with zero formal programming knowledge and was completely overwhelmed by the pace and material. This course does not give the students any/enough "small wins" to build muscle memory and gain confidence. I was drawn in by assumed time for completion. 4-8 hours/week sounded pretty good for the schedule of a working adult, however the 10-minute "assignments" consistently took me 6+ hours (most of the time spent calling/screen-sharing with my developer friend for help). Again, I think if one already has some programming knowledge (and therefore not *really* a 'beginner') then yes, this would probably take them that amount of time. I folded almost at the end of week 2. To echo another review here, it seems the instructors forgot what it is like to be a beginner. The instructors assume too much about what their students know. Really kicking myself for spending the money trying to limp through this course.If you are like me and starting without any experience, there are plenty of alternative free material actually geared towards 'beginners' that will give you the context and practice needed to actually comprehend the course material.
LN
Lucas N
I have just started the course, but it is way over my head. This should clearly be marked as intermediate, advanced or marked as for people already in IT industry.
RS
Rathna S
Very disappointing for me. I chose the course to learn the fundamentals of Java, but it is really everything but motivating. The lessons are short and kept very easy and informative, but for the assignments you have to do things that were never mentioned anywhere, so you spend hours of research online on how to do the assignments. That's not why I wanted to visit a course, hours of frustrating online research I can also have while learning it on my own
PW
Paul W
There are other OOP courses out there that are easier to follow & execute on assignments. The java editor used in this class is clunky and ridiculous and the assignment instructions seem out of date and disorganized - this class was infuriating. It takes simple assignments and obfuscates instructions.
TS
Theresa S
Like any other website, konevy uses «cookies». These cookies are used to store information including visitor's preferences, and the pages on the website that the visitor accessed or visited. The information is used to optimize the users' experience by customizing our web page content based on visitors' browser type and/or other information. For more general information on cookies, please read the «What Are Cookies» article on Cookie Consent website.