When you enroll in this course, you'll also be asked to select a specific program.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 5 modules in this course
Build on the software engineering skills you learned in “Java Programming: Solving Problems with Software” by learning new data structures. Use these data structures to build more complex programs that use Java’s object-oriented features. At the end of the course you will write an encryption program and a program to break your encryption algorithm.
After completing this course, you will be able to:
1. Read and write data from/to files;
2. Solve problems involving data files;
3. Perform quantitative analyses of data (e.g., finding maximums, minimums, averages);
4. Store and manipulate data in an array or ArrayList;
5. Combine multiple classes to solve larger problems;
6. Use iterables and collections (including maps) in Java.
Welcome to “Java Programming: Arrays, Lists, and Structured Data”! 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.
What's included
1 video2 readings
Show info about module content
1 video•Total 3 minutes
Welcome•3 minutes
2 readings•Total 15 minutes
Programming Resources•10 minutes
Report a problem with the course •5 minutes
Cryptography: Keeping Information Secret
Module 2•5 hours to complete
Module details
In this module, you will learn about the basics of cryptography, the science of keeping information private and secure. You will learn about simpler cryptographic systems, which were used from the Roman Empire through the early 1900s. You will learn how to implement these ciphers, as well as how to break them. To solve these problems, you will work more with processing Strings, but also learn about arrays—a way to store an indexable sequence of elements. You will be able to: (1) combine Strings using concatenation; (2) build Strings within a Java program using StringBuilder; (3) use arrays to store and manipulate collections of data; (4) refactor your programs for improved organization using object-oriented principles; (5) and practice effective algorithm design.
What's included
21 videos5 readings4 assignments
Show info about module content
21 videos•Total 111 minutes
A Brief History of Cryptography•5 minutes
Introduction•5 minutes
Creating and Manipulating Strings•6 minutes
Counting Loops•9 minutes
Character Class•6 minutes
Developing an Algorithm•5 minutes
Translating into Code•5 minutes
Testing and Debugging•2 minutes
Summary•1 minute
Introduction•5 minutes
Arrays•9 minutes
Random Numbers and Arrays•11 minutes
Counting with Arrays•10 minutes
Developing an Algorithm•6 minutes
Summary•3 minutes
Introduction•3 minutes
Rewriting with Encapsulation•4 minutes
Fields•6 minutes
Visibility•4 minutes
Constructors•4 minutes
Summary•1 minute
5 readings•Total 50 minutes
Module Learning Outcomes / Resources•10 minutes
Programming Exercise: Implementing the Caesar Cipher•10 minutes
Programming Exercise: Breaking the Caesar Cipher•10 minutes
Programming Exercise: Object Oriented Caesar Cipher•10 minutes
End of Module Survey•10 minutes
4 assignments•Total 120 minutes
Implementing the Caesar Cipher•30 minutes
Breaking the Caesar Cipher•30 minutes
Object Oriented Caesar Cipher•30 minutes
Cryptography•30 minutes
GladLibs: Stories from Templates
Module 3•3 hours to complete
Module details
After completing this module, you will be able (1) to program a word frequency counter to analyze any input text file, (2) to select and substitute words from a list into a document template using both ArrayList and HashMap, (3) to create new lists to use in templates, (4) to recognize brittle code, and (5) to improve code with flexible, object-oriented design. You will gain these skills in the framework of developing a randomly generated story that we call GladLibs. You may discover that bald lions change peoples’ lives, or that fluffy dinosaurs get things done in a jiffy. We hope you have fun developing your Java skills this week!
What's included
13 videos4 readings3 assignments
Show info about module content
13 videos•Total 72 minutes
Introduction•2 minutes
High-level Design Concepts•6 minutes
ArrayList•6 minutes
ArrayList for Unique Words•7 minutes
ArrayList Advantages and Issues•8 minutes
Summary•4 minutes
Introduction•7 minutes
Brittle Code•3 minutes
Adding New Labels•5 minutes
HashMap•7 minutes
HashMap for Unique Words•5 minutes
HashMap for Flexible Design•7 minutes
Summary•4 minutes
4 readings•Total 40 minutes
Module Learning Outcomes / Resources•10 minutes
Programming Exercise: Telling a Random Story•10 minutes
In this module, you will learn about how web server logs store information about visitors to a website, and you will write programs to access information like user IP address, date and time of access, and more. Using Java programs you write in this module, you will be able (1) to read information from a web server log, (2) to count the number of unique visitors to your website, and (3) to count the number of times each visitor uses your website.
In this module, you will develop a program to break the Vigenère Cipher, a more complex version of the Caesar Cipher. You will improve your program in three stages: first decrypting messages where you know the language and key length, then adding the capability to handle messages with unknown key length, then extending the program to handle messages in a range of possible languages. Through this project, you will be able (1) to effectively use HashSet and HashMap, (2) to expand an algorithm from solving a simpler problem to handle broader, more complex problems, and (3) to design and modify program code involving a more complex collection of classes, methods, and data.
What's included
4 videos6 readings3 assignments
Show info about module content
4 videos•Total 17 minutes
Introduction•3 minutes
Known Language and Key Length•5 minutes
Unknown Key Length•5 minutes
Unknown Language•5 minutes
6 readings•Total 60 minutes
Module Resources•10 minutes
Programming Exercise: Known Language and Key Length•10 minutes
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.
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Learner reviews
4.6
3,215 reviews
5 stars
75.10%
4 stars
19.13%
3 stars
3.20%
2 stars
0.99%
1 star
1.55%
Showing 3 of 3215
J
JA
4·
Reviewed on Sep 4, 2020
Learned a lot from the course, but the amount of programming assignment and number of Qs to complete the module (especially week2) was absurdly large. Could be split into separate sessions.
S
SZ
5·
Reviewed on Jan 12, 2020
This is my second Duke course, i'll take them all they are great. And i like the feel when i finish it. I'm still a student, i finish one course every two weeks.
V
VS
5·
Reviewed on Aug 13, 2022
It was very helpul in knowing the concepts of Caeser Cipher and how can we implement in our daily use.So that the information hacked by the hackers may get reduced.
Will I receive a transcript from Duke University for completing this course?
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.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
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.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.