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 : 90 / 100

icon
Live Chat with CourseDuck's Co-Founder for Help

Need help deciding on a design thinking course? Or looking for more detail on Robert Duvall's Java Programming: Principles of Software Design? Feel free to chat below.
Join CourseDuck's Online Learning Discord Community

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

Robert Duvall

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
Reviews

4.5

137 total reviews

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

By Amaliya A on 6-Apr-19

Super course!Well designed, structured, with a sense of humor :)To be specific, with this course you are able to write complicated programs step by step with linearly growing difficulty. Thanks!

By Aleksandr V on 31-Jan-19

great!

By LAKKOJU N S S R T on 22-Feb-19

very helpful in understanding how to write a logic to a complex program easily.

By Aminath K G on 25-Feb-19

Enjoyed this course and the examples used to learn algorithms (earthquakes data and predictive text). I did find that week 3 had a lot of work packed into one week. Otherwise, interesting and fun course.

By Nazeeh A on 18-Feb-19

Amaaaaaaaaaaaaaaazing.

By Bogdan U on 12-Apr-19

As the previous 3 Courses, very well-thought off and practical - this is exactly what I wanted from a course.

By Haoran on 13-Jul-18

good intro for programming in java

By Catalin T B on 26-Jan-16

Very good course, it is brief but very interesting and practical.

By Chen H C on 30-Dec-15

very good course, and the projects are fun!!! good choice

By Afranio M S on 12-Sep-16

Good problems to solve: creative, challenging & interesting.

By Mateusz A on 13-Mar-16

Most excellent MOOC.

By Jose G on 20-Nov-17

Great course. I feel like i learned a lot.