課程信息
27,915 次近期查看

100% 在線

立即開始,按照自己的計劃學習。

可靈活調整截止日期

根據您的日程表重置截止日期。

初級

完成時間大約為21 小時

建議:4 weeks of study, 4-8 hours/week...

英語(English)

字幕:英語(English), 韓語

您將獲得的技能

Programming PrinciplesInterfacesSoftware DesignJava Programming

100% 在線

立即開始,按照自己的計劃學習。

可靈活調整截止日期

根據您的日程表重置截止日期。

初級

完成時間大約為21 小時

建議:4 weeks of study, 4-8 hours/week...

英語(English)

字幕:英語(English), 韓語

教學大綱 - 您將從這門課程中學到什麼

1
完成時間為 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.

...
1 個視頻 (總計 4 分鐘), 1 個閱讀材料
1 個視頻
Welcome!4分鐘
1 個閱讀材料
Programming Resources10分鐘
完成時間為 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.

...
11 個視頻 (總計 57 分鐘), 4 個閱讀材料, 3 個測驗
11 個視頻
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分鐘
4 個閱讀材料
Module Learning Outcomes / Resources10分鐘
Location class documentation and license resources10分鐘
Programming Exercise: Searching Earthquake Data10分鐘
Programming Exercise: Filtering Data10分鐘
3 個練習
Searching Earthquake Data12分鐘
Filtering Data10分鐘
Earthquakes: Programming and Interfaces24分鐘
2
完成時間為 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.

...
12 個視頻 (總計 52 分鐘), 3 個閱讀材料, 3 個測驗
12 個視頻
Developing an Algorithm4分鐘
Translating to Code3分鐘
In Place8分鐘
Efficiency4分鐘
Summary47
Introduction5分鐘
Comparable4分鐘
Ordering Quakes by Magnitude7分鐘
Comparator5分鐘
Comparator for Distance from a Location5分鐘
Summary32
3 個閱讀材料
Module Learning Outcomes / Resources10分鐘
Programming Exercise: Implementing Selection Sort10分鐘
Programming Exercise: Sorting at Scale10分鐘
3 個練習
Implementing Selection Sort10分鐘
Sorting at Scale6分鐘
Earthquakes: Sorting Algorithms16分鐘
3
完成時間為 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.

...
15 個視頻 (總計 95 分鐘), 5 個閱讀材料, 5 個測驗
15 個視頻
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分鐘
5 個閱讀材料
Module Learning Outcomes / Resources10分鐘
Programming Exercise: Generating Random Text10分鐘
Programming Exercise: Interface and Abstract Class10分鐘
Programming Exercise: Word N-Grams10分鐘
Programming Exercise: WordGram Class10分鐘
5 個練習
Generating Random Text14分鐘
Interface and Abstract Class8分鐘
Word N-Grams6分鐘
WordGram Class10分鐘
N-Grams: Predictive Text20分鐘
4
完成時間為 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.

...
13 個視頻 (總計 42 分鐘), 2 個閱讀材料, 1 個測驗
13 個視頻
Main Method3分鐘
Static4分鐘
Editors8分鐘
Summary53
Introduction1分鐘
Understanding Exceptions4分鐘
Handling Exceptions2分鐘
Declaring Exceptions1分鐘
Throwing Exceptions1分鐘
Reading Files with Java.nio6分鐘
Hello Around the World with Eclipse4分鐘
Summary45
2 個閱讀材料
Module Learning Outcomes / Resources10分鐘
Where To Go From Here10分鐘
1 個練習
Java: Tools and Libraries for Everyone18分鐘
4.6
123 個審閱Chevron Right

38%

完成這些課程後已開始新的職業生涯

38%

通過此課程獲得實實在在的工作福利

17%

加薪或升職

來自Java 程序设计:软件设计原理的熱門評論

創建者 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.

創建者 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

講師

Avatar

Robert Duvall

Lecturer
Computer Science
Avatar

Owen Astrachan

Professor of the Practice
Computer Science
Avatar

Andrew D. Hilton

Associate Professor of the Practice
Electrical and Computer Engineering
Avatar

Susan H. Rodger

Professor of the Practice
Computer Science

關於 杜克大学

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

常見問題

  • 注册以便获得证书后,您将有权访问所有视频、测验和编程作业(如果适用)。只有在您的班次开课之后,才可以提交和审阅同学互评作业。如果您选择在不购买的情况下浏览课程,可能无法访问某些作业。

  • 您注册课程后,将有权访问专项课程中的所有课程,并且会在完成课程后获得证书。您的电子课程证书将添加到您的成就页中,您可以通过该页打印您的课程证书或将其添加到您的领英档案中。如果您只想阅读和查看课程内容,可以免费旁听课程。

  • 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.

還有其他問題嗎?請訪問 學生幫助中心