Object Oriented Programming in Java
Description
When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan .
- Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
- Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.
About 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 en…
Frequently asked questions
There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.
When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan .
- Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
- Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.
About 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!
Created by: University of California, San Diego-
Taught by: Mia Minnes, Assistant Teaching Professor
Computer Science and Engineering -
Taught by: Leo Porter, Assistant Teaching Professor
Computer Science and Engineering -
Taught by: Christine Alvarado, Associate Teaching Professor
Computer Science and Engineering
Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.
Help from your peersConnect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.
CertificatesEarn official recognition for your work, and share your success with friends, colleagues, and employers.
University of California, San Diego 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.Syllabus
WEEK 1
Welcome and Project Overview: Visualizing Data
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!
13 videos, 8 readings, 3 practice quizzes expand
- Video: Course Opening Title
- Reading: A Customized Welcome to this Course
- Video: Welcome (Object Oriented Java Programming: Data Structures and Beyond Specialization)
- Video: Welcome (Object Oriented Programming in Java Specialization)
- Reading: After completing this course, you will be able to...
- Reading: Is this course right for me?
- Practice Quiz: Pre-Course Quiz
- Reading: Up Next: A short survey
- Practice Quiz: Survey: Your goals for the course
- Reading: Project overview
- Video: Project prototype
- Video: Your Path through the Course
- Video: Concept Challenges: what and why?
- Video: In the Real World: Welcome from Google Engineers
- Reading: Additional Resources and Support
- Video: Introduction: Classes and Objects
- Reading: By the end of this week you will be able to...
- Reading: A note about the main method
- Video: Core: Defining Classes and Creating Objects
- Video: When I Struggled: Objects
- Video: Core: Overloading Methods
- Video: Core: Public vs. Private
- Video: In the Real World: Public vs. Private access
- Practice Quiz: Basics of Objects
- Discussion Prompt: What questions do you have about Objects?
WEEK 2
Memory Models, Scope, and Starting the Project
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.
16 videos, 11 readings, 2 practice quizzes expand
- Video: Introduction: Memory Models, Scope, and Project
- Reading: Remember to Choose Your Own Path
- Reading: By the end of this week, you will be able to...
- Reading: Getting ready to write code
- Video: Project: Module 1 Assignment Overview
- Reading: Important note for learners working offline
- Reading: Setting Up Java and Eclipse on Windows (and Linux)
- Reading: Setting Up Java and Eclipse on Mac
- Reading: Setting Up Unfolding Maps
- Video: Project: Setting up the starter code in Eclipse
- Reading: Support: Troubleshooting Common Issues
- Video: Core: Drawing Memory Models with Primitive Data
- Practice Quiz: Where to next?
- Video: Support: Memory Models for Primitive Types
- Video: Support: Setting Up and Running Examples in Eclipse
- Practice Quiz: Working with Code
- Video: When I Struggled: Compiling and Running Code
- Video: Core: Drawing Memory Models with Objects
- Video: Concept Challenge: Memory Models 1
- Video: Concept Challenge: Memory Models 2
- Video: Support: Memory Model Drawing Example
- Video: Core: Introduction to Scope
- Video: Concept Challenge: Scope
- Video: Support: Putting it all Together Part 1
- Video: Support: Putting it all Together Part 2
- Reading: Congratulations and quiz answers
- Video: Project: Module 1 Assignment Walkthrough
- Reading: Programming Assignment Instructions
- Reading: Congratulations and quiz answers
Graded: Objects, memory models, and scope
Graded: Programming Assignment Quiz (Do programming assignment FIRST)
WEEK 3
Graphical output: Creating GUIs and Displaying Data
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!
23 videos, 4 readings expand
- Video: Module Introduction: Graphical User Interfaces (GUIs)
- Reading: By the end of this week you will be able to...
- Video: Project: Module 3 Programming Assignment Overview
- Video: Core: Graphical User Interfaces
- Video: Core: Using PApplet
- Video: When I struggled: GUIs
- Video: Core: Resizing Images
- Video: Core: Colors
- Video: When I Struggled: Documentation
- Video: Support: Setting up a Canvas
- Video: Support: Drawing Happy Face
- Video: Support: Loading and Displaying Images
- Video: Core: Why Processing?
- Video: Support: Using Documentation
- Video: In the Real World: Documentation
- Video: Core: Setting up map visualization
- Video: Core: Adding markers
- Video: Core: Using live data
- Reading: Support: Understanding Features and Markers
- Video: Bonus: Visualizing life expectancy
- Video: Bonus: Setting up the map
- Video: Bonus: Representing data
- Video: Bonus: Coloring markers
- Video: Support: ArrayLists and Generics
- Video: Project: Module 3 Programming Assignment Walkthrough
- Reading: Programming Assignment Instructions
- Reading: Congratulations and quiz answers
Graded: Programming Assignment Quiz (Do programming assignment FIRST)
WEEK 4
Inheritance
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.
25 videos, 3 readings expand
- Video: Module Introduction: Inheritance and Polymorphism
- Reading: By the end of this week, you will be able to...
- Video: Project: Module 4 Programming Assignment Overview
- Video: Core: Why use Inheritance?
- Video: Core: Extends
- Video: In the Real World: Inheritance 1
- Video: Core: Reference vs. Object Type
- Video: When I struggled: the "Is a" relationship
- Video: Concept Challenge: References and Objects
- Video: Core: Visibility Modifiers
- Video: When I Struggled: Inheritance
- Video: Core: Object Creation in Java
- Video: Core: Compiler Rules for Class Construction
- Video: Core: Variable Initialization in a Class Hierarchy
- Video: Concept Challenge: Inheritance Constructors 1
- Video: Concept Challenge: Inheritance Constructors 2
- Video: Core: Method Overriding
- Video: Core: Introduction to Polymorphism
- Video: When I struggled: Polymorphism
- Video: Core: Rules to Follow for Polymorphism
- Video: Core: Casting Objects
- Video: Concept Challenge: Polymorphism Part 1
- Video: Concept Challenge: Polymorphism Part 2
- Video: Core: Abstract Classes and Interfaces
- Video: In the Real World: Inheritance 2
- Video: Project: Module 4 Programming Assignment Walkthrough
- Reading: Programming Assignment Instructions
- Reading: Congratulations and Quiz Answers
Graded: Programming Assignment Quiz (Do programming assignment FIRST)
WEEK 5
GUIs: Responding to User Events
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
9 videos, 3 readings, 1 practice quiz expand
- Video: Module Introduction: Responding to User Events
- Reading: By the end of this week, you will be able to...
- Video: Project: Module 5 Programming Assignment Overview
- Video: Core: Introduction to Event-Driven Programming
- Video: In the Real World: Events
- Video: Core: Implementing Events in UnfoldingMaps
- Video: Core: Implementing Buttons in UnfoldingMaps
- Video: When I Struggled: Buttons and GUIs
- Video: Core: Listener Hierarchy
- Practice Quiz: Events
- Video: Project: Module 5 Programming Assignment Walkthrough
- Reading: Programming Assignment Instructions
- Reading: Congratulations and Quiz Answers
Graded: Programming Assignment Quiz (Do programming assignment FIRST)
WEEK 6
Searching and Sorting: From Code to Algorithms
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.
19 videos, 3 readings, 1 practice quiz expand
- Video: Module Introduction: Searching and Sorting
- Reading: By the end of this week, you will be able to...
- Video: Project Overview
- Video: In the Real World: Searching and Sorting
- Video: Core: Linear Search, Part 1
- Video: Core: Linear Search, Part 2
- Video: Core: Binary Search
- Video: Core: Binary Search Example
- Video: When I Struggled: Search
- Practice Quiz: Searching Quiz
- Video: Core: Introduction to Sorting
- Video: Core: Selection Sort Algorithm
- Video: Core: Selection Sort Implementation
- Video: Core: Selection Sort Analysis
- Video: Concept Challenge: Selection Sort
- Video: Core: Mystery Sort
- Video: Core: Java's Built-In Sort
- Video: Core: Comparable Interface, Revisited
- Video: Concept Challenge: Which Sort?
- Video: Project: Module 6 Programming Assignment Walkthrough
- Reading: Programming Assignment Instructions
- Reading: Congratulations and quiz answers
- Peer Review: Optional: Pre-grading Feedback on Programming Assignment Extension
- Video: End of Course Message
Graded: Programming Assignment Quiz (Do programming assignment FIRST)
Graded: Programming Assignment Extension Peer Review
Share your review
Do you have experience with this course? Submit your review and help other people make the right choice. As a thank you for your effort we will donate £1.- to Stichting Edukans.There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.