Об этом курсе
4.6
Оценки: 644
Рецензии: 104
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, java.net, and java.io packages....
Globe

Только онлайн-курсы

Начните сейчас и учитесь по собственному графику.
Calendar

Гибкие сроки

Назначьте сроки сдачи в соответствии со своим графиком.
Beginner Level

Начальный уровень

Clock

Approx. 19 hours to complete

Предполагаемая нагрузка: 4 weeks of study, 4-8 hours/week...
Comment Dots

English

Субтитры: English, Korean...

Приобретаемые навыки

Programming PrinciplesInterfacesSoftware DesignJava Programming
Globe

Только онлайн-курсы

Начните сейчас и учитесь по собственному графику.
Calendar

Гибкие сроки

Назначьте сроки сдачи в соответствии со своим графиком.
Beginner Level

Начальный уровень

Clock

Approx. 19 hours to complete

Предполагаемая нагрузка: 4 weeks of study, 4-8 hours/week...
Comment Dots

English

Субтитры: English, Korean...

Программа курса: что вы изучите

Week
1
Clock
14 минуты на завершение

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....
Reading
1 видео (всего 4 мин.), 1 материал для самостоятельного изучения
Video1 видео
Welcome!4мин
Reading1 материал для самостоятельного изучения
Programming Resources10мин
Clock
2 ч. на завершение

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....
Reading
11 видео (всего 57 мин.), 4 материалов для самостоятельного изучения, 3 тестов
Video11 видео
Relationships Between Classes4мин
Licensing and APIs3мин
Coding a Magnitude Filter10мин
Coding the Closest Quakes12мин
Summary2мин
Introduction1мин
Interfaces to Avoid Duplication6мин
Interfaces in More Depth3мин
MatchAll4мин
Summary1мин
Reading4 материала для самостоятельного изучения
Module Learning Outcomes / Resources10мин
Location class documentation and license resources10мин
Programming Exercise: Searching Earthquake Data10мин
Programming Exercise: Filtering Data10мин
Quiz3 практического упражнения
Searching Earthquake Data12мин
Filtering Data10мин
Earthquakes: Programming and Interfaces24мин
Week
2
Clock
2 ч. на завершение

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....
Reading
12 видео (всего 52 мин.), 3 материалов для самостоятельного изучения, 3 тестов
Video12 видео
Developing an Algorithm4мин
Translating to Code3мин
In Place8мин
Efficiency4мин
Summaryмин
Introduction5мин
Comparable4мин
Ordering Quakes by Magnitude7мин
Comparator5мин
Comparator for Distance from a Location5мин
Summaryмин
Reading3 материала для самостоятельного изучения
Module Learning Outcomes / Resources10мин
Programming Exercise: Implementing Selection Sort10мин
Programming Exercise: Sorting at Scale10мин
Quiz3 практического упражнения
Implementing Selection Sort10мин
Sorting at Scale6мин
Earthquakes: Sorting Algorithms16мин
Week
3
Clock
3 ч. на завершение

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....
Reading
15 видео (всего 95 мин.), 5 материалов для самостоятельного изучения, 5 тестов
Video15 видео
Order-Zero, Order-One6мин
Finding Follow Set7мин
Implementing Order-Two9мин
Testing and Debugging7мин
Interfaces and Abstract Classes9мин
Summary2мин
Introduction3мин
Order-One Concepts6мин
Order-One Helper Functions8мин
WordGram Class4мин
WordGram Class Implementation4мин
Equals and HashCode Methods5мин
Equals Method Implementation10мин
Summary3мин
Reading5 материала для самостоятельного изучения
Module Learning Outcomes / Resources10мин
Programming Exercise: Generating Random Text10мин
Programming Exercise: Interface and Abstract Class10мин
Programming Exercise: Word N-Grams10мин
Programming Exercise: WordGram Class10мин
Quiz5 практического упражнения
Generating Random Text14мин
Interface and Abstract Class8мин
Word N-Grams6мин
WordGram Class10мин
N-Grams: Predictive Text20мин
Week
4
Clock
1 ч. на завершение

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. ...
Reading
13 видео (всего 42 мин.), 2 материалов для самостоятельного изучения, 1 тест
Video13 видео
Main Method3мин
Static4мин
Editors8мин
Summaryмин
Introduction1мин
Understanding Exceptions4мин
Handling Exceptions2мин
Declaring Exceptions1мин
Throwing Exceptions1мин
Reading Files with Java.nio6мин
Hello Around the World with Eclipse4мин
Summaryмин
Reading2 материала для самостоятельного изучения
Module Learning Outcomes / Resources10мин
Where To Go From Here10мин
Quiz1 практическое упражнение
Java: Tools and Libraries for Everyone18мин
4.6
Direction Signs

60%

начал новую карьеру, пройдя эти курсы
Briefcase

83%

получил значимые преимущества в карьере благодаря этому курсу

Лучшие рецензии

автор: MNFeb 26th 2017

This nicely packaged course is learner centered. It engages the learner by enforcing practice through interesting exercises and quizzes. Kudos and Thumbs up to the team of great instructors

автор: NSJun 16th 2016

Like all the modules of this Java specialization, the teachers are very good and the course reaches the objective of teaching the fundamentals of software design with an excellent didactic.

Преподавателя

Robert Duvall

Lecturer
Computer Science

Owen Astrachan

Professor of the Practice
Computer Science

Andrew D. Hilton

Associate Professor of the Practice
Electrical and Computer Engineering

Susan H. Rodger

Professor of the Practice
Computer Science

О Duke University

Duke University has about 13,000 undergraduate and graduate students and a world-class faculty helping to expand the frontiers of knowledge. The university has a strong commitment to applying knowledge in service to society, both near its North Carolina campus and around the world....

О специализации ''Java Programming and Software Engineering Fundamentals'

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....
Java Programming and Software Engineering Fundamentals

Часто задаваемые вопросы

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

  • No. Completion of a Coursera course does not earn you academic credit from Duke; therefore, Duke is not able to provide you with a university transcript. However, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

Остались вопросы? Посетите Центр поддержки учащихся.