Skip to content
CourseraJavaFree courseCertificate

Java Programming: Principles of Software Design

Take your first step towards a career in software development with this introduction to Java"one of the most in-demand programming languages and the foundation of the Android operating system. Designed for beginners, this Specialization will teach you core programming concepts and equip you to write programs to solve complex problems. In addition, you will gain the foundational skills a software engineer needs to solve real-world problems, from designing algorithms to testing and debugging your programs.

Created by: Robert Duvall

icon
Course Description

Solve real world problems with Java using multiple classes. Learn how to create programming solutions that scale using Java interfaces. Recognize that software engineering is more than writing code - it also involves logical thinking and design. By the end of this course you will have written a program that analyzes and sorts earthquake data, and developed a predictive text generator.After completing this course, you will be able to:1. Use sorting appropriately in solving problems;2. Develop classes that implement the Comparable interface;3. Use timing data to analyze empirical performance;4. Break problems into multiple classes, each with their own methods;5. Determine if a class from the Java API can be used in solving a particular problem;6. Implement programming solutions using multiple approaches and recognize tradeoffs;7. Use object-oriented concepts including interfaces and abstract classes when developing programs;8. Appropriately hide implementation decisions so they are not visible in public methods; and9. Recognize the limitations of algorithms and Java programs in solving problems.10. Recognize standard Java classes and idioms including exception-handling, static methods, java.net, and java.io packages.

icon
Instructor Details

placeholder

Robert Duvall is a Lecturer in the Department of Computer Science at Duke University. Having taught computer science at Duke for over 15 years, Professor Duvall has helped to transform introductory computing curricula several times by consistently being an early adopter of ideas, research, or software design practices. His goal is always to find ways to present novice students with a simplified, yet intellectually rigorous, interface that enables them to take advantage of advances in technology and solve significant problems. In recent years, Professor Duvall has worked with colleagues to redesign Duke's introductory computer science course to reach a broader range of students at Duke from a variety of backgrounds and fields. Professor Duvall holds a MSc in Computer Science from Brown University.

icon
More Java courses

Free

$84.99

$119.99

$174.99

$17.99

$12.99

icon
Reviews

4.4

129 reviews in total

Select a bar to show only those reviews.Select the bar again to show every rating.

By Dimas T L on 4-Nov-19

Many of the assignments in week three were incredibly hard to understand and required scouring the forums to locate where other classmates had to beg instructional staff for assistance. In many instances, the staff agreed that the course had many shortcomings that would be addressed in "upcoming iterations" of the course. However, many of these posts were made up to three years ago, so it made the student feel that not only did the class have errors that the staff did little to address for new cohorts, but also that the updating of the curriculum is not a priority and therefore that the class is now an afterthought.

By Vladyslav S on 31-Oct-19

Bad sources formatting, bad codestyle and bad project design

By Jerrold on 31-Oct-19

This course has been fantastic. A step up in difficulty, week 3 in particular was grueling. I learned so many useful things in this course

By Nikolay A on 7-Oct-19

Poor level of support and detail. Problems are getting hard - not enough resources available.

By Manju A on 30-Sep-19

very thought provoking and in depth course.

By Vaibhav S on 15-Sep-19

Really Helpful course. It helped me a lot to become familiar with the Java language and enlighten me with the fact that java can be used to solve a wide array of problems, which i considered impossible and tricky when i used java earlier.

By Dojung K on 17-Aug-19

I loved this course, all the videos and assignments are perfectly directed. now I really have a deeper understanding about Interface. Thank you so much.

By kai k on 16-Aug-19

amazing material - solid learning for Javaone struggle - discussion boards don't seem to be monitored by staff most of the time - expect to do most on your own without teacher input

By Ogonna I on 8-Aug-19

My confidence level in Java programming has grown significantly since completing this specialisation. It gave me the necessary knowledge and practice I need to take up a role as a software engineer.

By Aleksei M on 5-Aug-19

It was harder than expected and was a pleasure to find a solutions.

By Itai E on 21-Jul-19

This course really increased the difficulty in Week 3 and gave poorly written instructions to go along with it. Overall, the course was very interesting and I learned a lot from it. Anyone who is interested in expanding their Java programming skills and write "neater" or "better code, this course is for you.

By Thi T L on 13-Jul-19

easy to understand, lots of programming practice

Showing 12 of 129 reviews

icon
Quality Score

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 88 / 100