Java Programming: Principles of Software Design

Java Programming: Principles of Software Design

Credential
Department

Computer Science

Electrical and Computer Engineering

Beginner

English

4 weeks

Variable

Overview

Java Programming: Principles of Software Design is course 4 of 5 in the Java Programming and Software Engineering Fundamentals Specialization.

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:

  • Use sorting appropriately in solving problems;
  • Develop classes that implement the Comparable interface;
  • Use timing data to analyze empirical performance;
  • Break problems into multiple classes, each with their own methods;
  • Determine if a class from the Java API can be used in solving a particular problem;
  • Implement programming solutions using multiple approaches and recognize tradeoffs;
  • Use object-oriented concepts including interfaces and abstract classes when developing programs;
  • Appropriately hide implementation decisions so they are not visible in public methods;
  • Recognize the limitations of algorithms and Java programs in solving problems; and
  • Recognize standard Java classes and idioms including exception-handling, static methods, java.net, and java.io packages.

 

Instructors

Owen Astrachan
Owen Astrachan

Professor of the Practice of Computer Science

Robert Duvall
Robert Duvall

Lecturer in the Department of Computer Science

Susan Rodger
Susan Rodger

Professor of the Practice Computer Science

Drew Hilton
Drew Hilton

Assistant Professor of the Practice in the Department of Electrical and Computer Engineering

Computer Science / Open online course

Programming Fundamentals

Programming is an increasingly important skill, whether you aspire to a career in software development, or in other fields. This course is the first in the... Learn More

Engineering / Open online course

Nanotechnology: A Maker's Course

How can we create nano-structures that are 10,000 times smaller than the diameter of a human hair? How can we “see” at the nano-scale? Through instruction and lab... Learn More

Have Questions ? Contact Us or visit our FAQ.