Programming with Java
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Programming with Java
This course is part of Amazon Junior Software Developer Professional Certificate
17,340 already enrolled
Included with
Ask Coursera
91 reviews
Recommended experience
91 reviews
Recommended experience
What you'll learn
Develop methods to organize and reuse code effectively.
Apply object-oriented programming concepts within the Java language to design modular and scalable code.
Handle errors and exceptions in Java to create robust applications.
Skills you'll gain
Tools you'll learn
Details to know
See how employees at top companies are mastering in-demand skills
Build your Software Development expertise
- 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 from Amazon
There are 4 modules in this course
This is the second course in the Amazon Junior Software Developer Professional Certificate. In this course, you will explore advanced Object-Oriented Programming (OOP) concepts in Java, starting with an introduction to Interfaces and Abstract Classes. You'll learn how to effectively utilize interfaces for achieving multiple inheritance and how abstract classes play a crucial role in designing class hierarchies. Moving forward, you'll dive into Exception Handling, covering various types of exceptions in Java, along with best practices for handling them using try-catch-finally blocks. You'll also gain knowledge of File I/O operations, acquire skills in reading from and writing to files, understand different types of streams, and perform file operations efficiently. Finally, you'll explore Serialization and Deserialization techniques, enabling you to save and reconstruct object states, as well as use last run files for configuring current run states effectively. Overall, this course equips you with advanced Java programming skills essential for developing robust, efficient, and scalable applications.
After completing this course, you’ll be able to: • Develop methods to organize and reuse code effectively. • Apply object-oriented programming concepts within the Java language to design modular and scalable code. • Handle errors and exceptions in Java to create robust applications.
In this module, you'll explore advanced object-oriented programming (OOP) concepts, specifically interfaces and abstract classes in Java. You'll learn the importance of interfaces for code flexibility and how to implement them effectively, particularly in managing the challenges of multiple inheritance. Additionally, you'll understand the role of abstract classes in designing well-organized and extensible class hierarchies.
What's included
9 videos8 readings4 assignments4 ungraded labs
9 videos•Total 58 minutes
- Course introduction: Programming with Java•5 minutes
- Abstract classes: Concrete and abstract methods•6 minutes
- Advantages of abstract methods•5 minutes
- Class hierarchy: relationships•6 minutes
- Designing a class hierarchy•7 minutes
- The interface solution•9 minutes
- Real world interfaces•6 minutes
- Combining interfaces and abstract classes•8 minutes
- Module summary: Advanced OOP concepts•5 minutes
8 readings•Total 95 minutes
- Project preview•10 minutes
- Course syllabus•10 minutes
- How to be successful in this course•10 minutes
- Implementing interfaces•15 minutes
- Using abstract methods•15 minutes
- Understanding the importance of class design•10 minutes
- Explore complex interfaces•15 minutes
- Additional resources : Concrete and abstract•10 minutes
4 assignments•Total 75 minutes
- Module quiz: Advanced OOP concepts•30 minutes
- Knowledge check: Concrete and abstract•15 minutes
- Knowledge check: Class hierarchy•15 minutes
- Knowledge check: Multiple inheritance•15 minutes
4 ungraded labs•Total 240 minutes
- Activity: Programming with abstraction•60 minutes
- Activity: Create a class hierarchy•60 minutes
- Activity: Implementing interfaces•60 minutes
- Activity: Concrete and abstract•60 minutes
In this module, you will explore exception handling, focusing on mastering techniques to effectively manage errors in Java programs. You'll cover various aspects, including understanding the different types of exceptions in Java, such as checked and unchecked exceptions. You'll learn how to use try-catch-finally blocks to handle exceptions gracefully and ensure proper resource management. Additionally, the module will highlight best practices for exception handling in Java, equipping you with the skills to write robust and reliable code that gracefully handles unexpected situations.
What's included
11 videos6 readings4 assignments2 ungraded labs
11 videos•Total 67 minutes
- When things go wrong•5 minutes
- Exploring exception types•6 minutes
- Unchecked exceptions in action•7 minutes
- Examining the exception object•6 minutes
- Try-catch mechanism•6 minutes
- Using multiple catch blocks•6 minutes
- Using try with resources•7 minutes
- Avoiding catch-all exceptions•5 minutes
- Handling checked exceptions•8 minutes
- Handling unchecked exceptions•6 minutes
- Module summary: Error handling•7 minutes
6 readings•Total 75 minutes
- Checked exceptions in action•15 minutes
- Glossary: Exceptions•10 minutes
- Introduction to try-catch blocks•15 minutes
- Examine the finally block•15 minutes
- Throwing checked exceptions•15 minutes
- Additional resources: Error handling•5 minutes
4 assignments•Total 75 minutes
- Module quiz: Error handling•30 minutes
- Knowledge check: Exceptions•15 minutes
- Knowledge check: Handling exceptions•15 minutes
- Knowledge check: Preventative measures and best practices•15 minutes
2 ungraded labs•Total 75 minutes
- Activity: Implementing error free code•30 minutes
- Activity: Protecting your code•45 minutes
In this module, you will explore file handling operations in Java, covering topics such as reading from and writing to files, understanding different types of streams including byte streams and character streams, and performing file I/O operations such as reading, writing, and appending data to files. Additionally, you'll explore the concepts of serialization and deserialization, learning how to serialize objects to save their state and deserialize them to reconstruct their state.
What's included
11 videos5 readings4 assignments1 programming assignment4 ungraded labs
11 videos•Total 91 minutes
- What are files?•7 minutes
- Examining file paths and file objects•6 minutes
- Comparing byte streams to character streams•8 minutes
- Dealing with character encoding•9 minutes
- Reading and writing binary files•10 minutes
- Standard file I/O operations•10 minutes
- Appending data to files•8 minutes
- File navigation•7 minutes
- Working with directories•10 minutes
- The process of serialization and deserialization•8 minutes
- Module summary: File handling•7 minutes
5 readings•Total 70 minutes
- Reading from files•15 minutes
- Writing to files•15 minutes
- Reading and writing text files•15 minutes
- Closing streams•15 minutes
- Additional resources: File handling•10 minutes
4 assignments•Total 75 minutes
- Module quiz: File handling•30 minutes
- Knowledge check: Introduction to file handling•15 minutes
- Knowledge check: Input / Output streams•15 minutes
- Knowledge check: File IO operations•15 minutes
1 programming assignment•Total 75 minutes
- Graded Lab: Implementing file handling•75 minutes
4 ungraded labs•Total 120 minutes
- Activity: Reading in and writing out•30 minutes
- Activity: Writing different file types •30 minutes
- Activity: File IO and Java.nio•30 minutes
- Activity: Reading and writing objects•30 minutes
This module focuses on applying the comprehensive knowledge of Java programming acquired from previous modules to a practical, real-world project. The challenge entails integrating various aspects of Java programming to enhance the zoo project you created in the previous course by employing file I/O operations and serialization. Through this module, you will demonstrate your ability to enhance your own software program.
What's included
2 videos3 readings1 assignment1 programming assignment
2 videos•Total 11 minutes
- Course recap: Programming with Java•8 minutes
- Congratulations•3 minutes
3 readings•Total 110 minutes
- About the project•10 minutes
- Exemplar: Zoo upgrade•90 minutes
- Next steps•10 minutes
1 assignment•Total 90 minutes
- Course quiz: Programming with Java•90 minutes
1 programming assignment•Total 180 minutes
- Course project: Zoo upgrade•180 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Explore more from Software Development
- B
Birla Institute of Technology & Science, Pilani
Course
- Status: PreviewE
EDUCBA
Course
- Status: Free TrialD
Duke University
Course
- Status: Free Trial
Course
Why people choose Coursera for their career
Learner reviews
- 5 stars
62.36%
- 4 stars
19.35%
- 3 stars
5.37%
- 2 stars
3.22%
- 1 star
9.67%
Showing 3 of 91
Reviewed on Oct 8, 2025
very complete and didactic in multiple formats, visual, audio, reading and practice. Som labs need corrections but still doable and educative
Reviewed on Jan 28, 2025
Best course for Java. Covering both fundamentals and advanced concepts with hands-on practice in lab assignments.
Reviewed on Nov 11, 2024
Nice Course , explained Clearly with Hands on Lab for practical experience!
Frequently asked questions
This Professional Certificate is designed for aspiring junior software developers who are looking to kickstart their careers in the tech industry. It is also for current professionals that are seeking greater understanding of software development fundamentals.
This program is for you:
- If you are interested in the field of software development or just beginning to work in junior software development roles.
- If you want to switch or start a career in the field of software development
- If you already work in software development and are seeking a greater understanding of software development fundamentals, earning an Amazon software development certificate can help advance your career or help you address gaps in your knowledge, skills, and abilities.
While prior coding experience is beneficial, it's not mandatory. A basic understanding of programming concepts and a willingness to learn are recommended.
The primary advantage lies in acquiring practical skills and knowledge essential for launching a career as a junior software developer. This Professional Certificate not only equips you with the expertise needed for entry-level roles but also provides a recognized certification, bolstering your credibility within the industry. This credential offers hands-on learning experiences under the guidance of seasoned professionals.
A junior software developer usually supports software application design, development, and maintenance while receiving guidance from senior developers, making them suitable candidates for internships or apprenticeships.
More questions
Financial aid available,
