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
Quality Score

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

Overall Score : 88 / 100

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 design thinking courses

Design Thinking for Innovation

Free

Gamification
  • Gamification

  • 5.0 (505 Reviews)


    • icon Provider: Coursera
    • Time: 30h

Free

Experimentation for Improvement

Free

Machine Design Part I

Free

NodeJS 3 in 1: Basics of NodeJS & Express With Projects

$11.99

Design Thinking + Entrepreneurship: My 8-Step Launch Program

$11.99

icon
Reviews

4.4

129 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Meixuan O on 29-Nov-18

Fantastic course. Thanks to the instructors and students who helped put this coursework together. I've learned a tremendous amount about OOP and software design. Will continue on with the capstone couse to complete the specialization. Thank you.

By Jay B on 25-Nov-18

Awesome course. These professors are great. They are from Duke University

By Mike N on 16-Nov-18

The practice examples and content are top notch. Learning about markov models was particularly interesting.

By Alexander S on 18-Nov-18

great course recommend it so much

By Ariel W S on 8-Aug-18

very interesting material, thanks for your great effort.

By Pranav G on 21-Aug-18

Difficult and challenging, but worth the struggle.

By Alexander S on 20-Apr-17

best

By GAURAV S on 12-Jul-19

Principles are usually explained with code where analogies or schematics would have been more appropriate.Quizzes are sometimes poor.Help is hard to get on the forum.

By Emil G on 23-Jan-18

I loved this course! great job done by the instructors!!!

By Mohamed M I on 12-Feb-18

Loved this course, simple, easy and really really short ahah

By Alejandro M G on 10-Feb-18

Very Informative and course is well explained. Assignments are bit challenging but they worth it.

By Mengfei W on 29-Jul-18

Sometimes the quiz instruction is not very clear. Sometimes, I could get the assignment results, pass the practice quiz, but couldn't pass the review quiz.