Java Programming: Principles of Software Design

Rated 2.9 out of 5

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; and
9. Recognize the limitations of algorithms and Java programs in solving problems.
10. Recognize standard Java classes and idioms including exception-handling static methods and packages.

14 minutes to complete
Welcome to the Course
Welcome to “Java Programming: Principles of Software Design”! 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 hear an overview of this course and be introduced to the supporting resources available.
1 video (Total 4 min) 1 reading

2 hours to complete
Earthquakes: Programming and Interfaces
In this module we will introduce a data set containing details about earthquakes around the world. You will learn how to pull this data into a program search through the data and filter the data based on desired criteria. By the end of this module you will be able to (1) write programs that include multiple classes and ArrayLists of class types (2) find the maximum value in an ArrayList (3) use a Filter interface to search through data (4) implement interfaces with method signatures and (5) combine several filters together.
11 videos (Total 57 min) 4 readings 3 quizzes

2 hours to complete
Earthquakes: Sorting Algorithms
In this module you will continue using real earthquake data to explore several sorting algorithms. You will learn how to implement a selection sort and a bubble sort then be introduced to a Java method Collections.sort which sorts with much greater efficiency. By the end of this module you will be able to (1) implement several sorting algorithms from scratch (2) use efficient pre-existing sorting classes (3) modify a class’s compareTo method to choose the criteria by which objects of that type are ordered and (4) write classes that implement the Comparator interface to create interchangeable sorting criteria.
12 videos (Total 52 min) 3 readings 3 quizzes

3 hours to complete
N-Grams: Predictive Text
In this module you will explore some of the underlying concepts of predictive text. The first lesson will introduce random character generation and then how to train the character selection based on an input text. The second lesson will extend this concept to complete words. By the end of this module you will be able to: (1) base random text generation on the frequency of characters in a training text (2) collect a set of characters that occur in a text after randomly chosen initial character(s) to create a semi-random text (3) extend the predictive text generation to use whole words and (4) implement your own .equals method to compare complex data types.
15 videos (Total 95 min) 5 readings 5 quizzes

1 hour to complete
Java: Tools and Libraries for Everyone
As you reach the end of this series you may wish to extend your Java experience to tools beyond those provided here. This module will cover some of the Java basic information that is needed to program without BlueJ or the edu.duke library. After completing this module you will be able to: (1) write a main method to start a Java program in any programming environment (2) use the “static” keyword to modify fields (3) find alternative editors to use with Java (4) use exceptions to debug your program and make it more robust and (5) reference Java libraries that are necessary to read files without the edu.duke library.
13 videos (Total 42 min) 2 readings 1 quiz

Tham gia đánh giá khóa học

Nếu bạn đã học qua khóa học này thì mời bạn tham gia đóng góp ý kiến và đánh giá để cộng đồng bạn học có thêm thông tin tham khảo.

Cung cấp bởi: Coursera /  Duke University

Thời lượng: 9 giờ
Ngôn ngữ giảng dạy: Tiếng Anh
Chi phí: Miễn phí / 0
Đối tượng: Beginner

Thông tin về nhà cung cấp

Coursera (/ kərˈsɛrə /) là một nền tảng học tập trực tuyến toàn cầu được thành lập vào năm 2012 bởi 2 giáo sư khoa học máy tính của đại học Stanford là Andrew NgDaphne Koller, nền tảng này cung cấp các khóa học trực tuyến (MOOC) cho cộng đồng người học online.

Coursera hợp tác với các trường đại học danh tiếng tại Bắc Mỹ và trên khắp thế giới, cùng với nhiều tổ chức khác để cung cấp các khóa học trực tuyến chất lượng, theo chuyên ngành và được cấp chứng chỉ trong nhiều lĩnh vực như kỹ thuật, khoa học dữ liệu, học máy, toán học, kinh doanh, khoa học máy tính, tiếp thị kỹ thuật số, nhân văn, y học, sinh học, khoa học xã hội , và nhiều ngành khác.

Các khóa học cùng chủ đề

Visual Perception for Self-Driving Cars

This course will introduce you to the main perception tasks in autonomous driving, static and dynamic object detection, and will survey common computer vision methods for robotic perception. By the...

Motion Planning for Self-Driving Cars

This course will introduce you to the main planning tasks in autonomous driving, including mission planning, behavior planning and local planning. By the end of this course, you will be...

Capstone: Autonomous Runway Detection for IoT

This capstone project course ties together the knowledge from three previous courses in IoT though embedded systems: Development of Real-Time Systems Web Connectivity & Security and Embedded Hardware and Operating...

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top