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 6 modules in this course
Welcome to our course on Object Oriented Programming in Java using data visualization. People come to this course with many different goals -- and we are really excited to work with all of you! Some of you want to be professional software developers, others want to improve your programming skills to implement that cool personal project that you’ve been thinking about, while others of you might not yet know why you’re here and are trying to figure out what this course is all about.
This is an intermediate Java course. We recommend this course to learners who have previous experience in software development or a background in computer science. Our goal is that by the end of this course each and every one of you feels empowered to create a Java program that’s more advanced than any you have created in the past and that is personally interesting to you. In achieving this goal you will also learn the fundamentals of Object Oriented Programming, how to leverage the power of existing libraries, how to build graphical user interfaces, and how to use some core algorithms for searching and sorting data. And this course is project-based, so we’ll dive right into the project immediately!
We are excited to be offering a unique course structure, designed to support learners of different backgrounds in succeeding at their own pace. The first module explains how this will work and if this course is right for you. We also recommend taking a few minutes to explore the course site. A good place to start is the navigation bar on the left. Click Course Content to see what material we’ll cover each week, as well preview the assignments you’ll need to complete to pass the course. Click Discussions to see forums where you can discuss the course material with fellow students taking the class. Be sure to introduce yourself to everyone in the Meet and Greet forum.
This course should take about 6 weeks to complete. You can check out the recommended course schedule below to see a quick overview of the lessons and assignments you’ll complete each week.
We’re excited you’re here learning with us. Let’s get started!
Welcome to the first week of our course. In this week, we'll get started by introducing ourselves and the Google engineers who will be making appearances throughout the course. We'll also give you of the unique video series we provide and help you understand how to navigate the course to get the most out of it given your background and learning speed. Finally, we'll jump right into objects and designing classes. This might be a bit of review for some of you who might have learned this in your first programming course. If that's the case, feel free to jump ahead to the Practice Quiz at the end of the week. Let's get started!
Welcome (Object Oriented Java Programming: Data Structures and Beyond Specialization)•3 minutes
Welcome (Object Oriented Programming in Java Specialization)•2 minutes
Project prototype•5 minutes
Your Path through the Course•5 minutes
Concept Challenges: what and why?•3 minutes
In the Real World: Welcome from Google Engineers•1 minute
Introduction: Classes and Objects•0 minutes
Core: Defining Classes and Creating Objects•12 minutes
When I Struggled: Objects•1 minute
Core: Overloading Methods•7 minutes
Core: Public vs. Private•7 minutes
In the Real World: Public vs. Private access•0 minutes
8 readings•Total 62 minutes
A Customized Welcome to this Course•10 minutes
After completing this course, you will be able to...•5 minutes
Is this course right for me?•10 minutes
Up Next: A short survey•10 minutes
Project overview•10 minutes
Additional Resources and Support•10 minutes
By the end of this week you will be able to...•5 minutes
A note about the main method•2 minutes
3 assignments•Total 90 minutes
Pre-Course Quiz•30 minutes
Survey: Your goals for the course•30 minutes
Basics of Objects•30 minutes
1 discussion prompt•Total 10 minutes
What questions do you have about Objects?•10 minutes
Memory Models, Scope, and Starting the Project
Module 2•11 hours to complete
Module details
We hope you’re excited about the project that we're starting to build -- we sure are! In this second part of this week, we'll walk you through setting up your system and working through your first assignment so you'll be having fun with it in no time. Before that though, we'll finish going over some of the fundamentals fundamentals of object oriented programming. Specifically, being able to trace code is a key skill in becoming a stronger programmer. Like the end of last week, the first part of this week might be a bit of a review of material you already learned in your first Java programming course. If that’s the case, you are always welcome to skip to the first graded assignment on Objects, Memory Models, and Scope.
What's included
16 videos11 readings4 assignments
Show info about module content
16 videos•Total 77 minutes
Introduction: Memory Models, Scope, and Project•0 minutes
Project: Module 1 Assignment Overview•2 minutes
Project: Setting up the starter code in Eclipse•4 minutes
Core: Drawing Memory Models with Primitive Data•5 minutes
Support: Memory Models for Primitive Types•3 minutes
Support: Setting Up and Running Examples in Eclipse•2 minutes
When I Struggled: Compiling and Running Code•1 minute
Core: Drawing Memory Models with Objects•8 minutes
Concept Challenge: Memory Models 1•6 minutes
Concept Challenge: Memory Models 2•5 minutes
Support: Memory Model Drawing Example•6 minutes
Core: Introduction to Scope•9 minutes
Concept Challenge: Scope•7 minutes
Support: Putting it all Together Part 1•3 minutes
Support: Putting it all Together Part 2•10 minutes
By the end of this week, you will be able to...•10 minutes
Getting ready to write code•10 minutes
Important note for learners working offline•10 minutes
Setting Up Java and Eclipse on Windows (and Linux)•30 minutes
Setting Up Java and Eclipse on Mac•30 minutes
Setting Up Unfolding Maps•10 minutes
Support: Troubleshooting Common Issues•10 minutes
Congratulations and quiz answers•10 minutes
Programming Assignment Instructions•300 minutes
Congratulations and quiz answers•10 minutes
4 assignments•Total 120 minutes
Objects, memory models, and scope•30 minutes
Programming Assignment Quiz (Do programming assignment FIRST)•30 minutes
Where to next?•30 minutes
Working with Code•30 minutes
Graphical output: Creating GUIs and Displaying Data
Module 3•8 hours to complete
Module details
Now that you have the tools to write and trace object oriented code, let’s get back to developing the project! In this first (real) part of the project, you will create an interactive graphical map that will display geospatial data. This is a highly interactive week, so make sure you’ve got Eclipse loaded up! We encourage you to play around as you watch the videos. Some of the code that we use in the videos is in the demos package in the starter code you set up for this course. Open it up and experiment with it while you're watching the videos. We also encourage you to dive right into the programming project, even before watching the videos, if you want. The programming assignment instructions are in the last lesson of this week - you can watch a video walkthrough of the instructions and also read the step-by-step directions in the accompanying reading. There’s lots of room for creativity, too, so have fun!
What's included
23 videos4 readings1 assignment
Show info about module content
23 videos•Total 136 minutes
Module Introduction: Graphical User Interfaces (GUIs)•0 minutes
By the end of this week you will be able to...•10 minutes
Support: Understanding Features and Markers•30 minutes
Programming Assignment Instructions•300 minutes
Congratulations and quiz answers•10 minutes
1 assignment•Total 20 minutes
Programming Assignment Quiz (Do programming assignment FIRST)•20 minutes
Inheritance
Module 4•5 hours to complete
Module details
Now that you’re in full swing with the project, let’s take a closer look at some concepts that you have already been using in your code. Specifically, the keyword “extends”. What exactly does it mean that your program “extends PApplet”? To answer this question we’ll need to dive into the details of how Java allows for Class Hierarchies through Inheritance and Polymorphism. These fundamental and powerful concepts will serve you well in the future! We’ll use these ideas to allow for displaying markers differently. If you feel you’re already comfortable with Inheritance and Polymorphism, feel free to dive straight into the project (programming assignment) for this week. As you work with the project, feel free to have some fun and introduce new levels of class hierarchies for improved functionality.
What's included
25 videos3 readings1 assignment
Show info about module content
25 videos•Total 97 minutes
Module Introduction: Inheritance and Polymorphism•0 minutes
By the end of this week, you will be able to...•5 minutes
Programming Assignment Instructions•180 minutes
Congratulations and Quiz Answers•10 minutes
1 assignment•Total 15 minutes
Programming Assignment Quiz (Do programming assignment FIRST)•15 minutes
GUIs: Responding to User Events
Module 5•4 hours to complete
Module details
You’ve reached an exciting point in the project - in this week you’ll add interactivity to your map! You’ll be learning how to design event-driven programs, using a new and powerful programming paradigm. Your map will now respond to mouse hovers and clicks. As always, make sure you're writing code along with us as you watch the videos and work through the week. Also, feel free to dive into the programming assignment (project) whenever you are ready
What's included
9 videos3 readings2 assignments
Show info about module content
9 videos•Total 28 minutes
Module Introduction: Responding to User Events•0 minutes
By the end of this week, you will be able to...•5 minutes
Programming Assignment Instructions•180 minutes
Congratulations and Quiz Answers•10 minutes
2 assignments•Total 40 minutes
Programming Assignment Quiz (Do programming assignment FIRST)•30 minutes
Events•10 minutes
Searching and Sorting: From Code to Algorithms
Module 6•8 hours to complete
Module details
You've come a long way in this course, and you've got a great project to show for it. In this last module we'll shift gears a bit to talk about some very exciting and fundamental algorithms for finding and sorting data in an array. Searching and sorting algorithms are not only fundamental to computer science, but also ideal for beginning to explore issues of algorithm efficiency. We will only begin to touch on issues of algorithm efficiency here. We will say much more about it in the next course in this specialization, so we hope you will continue with us. We'll also apply sorting to your project, and you'll wrap things up by finishing your project with an extension of your own choosing.
What's included
19 videos3 readings2 assignments2 peer reviews
Show info about module content
19 videos•Total 101 minutes
Module Introduction: Searching and Sorting•0 minutes
UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Innovation is central to who we are and what we do. Here, students learn that knowledge isn't just acquired in the classroom—life is their laboratory.
OK
Why people choose Coursera for their career
Felipe M.
Learner since 2018
"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.7
5,795 reviews
5 stars
75.86%
4 stars
18.59%
3 stars
2.88%
2 stars
1.12%
1 star
1.53%
Showing 3 of 5795
Y
YO
5·
Reviewed on Sep 18, 2015
Thanks a lot to all of the team of this Course University of California San Diego, The Professors Christine, Leo and Mia for their efforts and Style of teaching , and Coursera for the Platform
M
MM
5·
Reviewed on Feb 17, 2019
This course is really amazing, and the instructors help you out along the way. The concepts and the programming assignments are engaging. Thanks for the USCD CS team for compiling this course.
H
HW
5·
Reviewed on Mar 20, 2016
It is good!!! I learnt a bit of Java beforehand but not the object oriented concept. Would definitely attend the courses by UC San Diego again as well as pay for the course when I can afford it!
This course is meant for learners with a bit of programming background, preferably in Java, who are looking to expand their Software Engineering abilities. Specifically, learners should be already comfortable with loops ("for", "while"), conditionals ("if", "else"), and both calling and authoring methods (functions).
If you're not sure, that's okay! We have a practice quiz right at the start of the course which will help steer you in the right direction.
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.