Object Oriented Programming in Java Specialization

Starts Oct 02

Object Oriented Programming in Java Specialization

Grow Your Portfolio as a Software Engineer

Learn about Object Oriented Design in four project-based courses.

About This Specialization

This Specialization is for aspiring software developers with some programming experience in at least one other programming language (e.g., Python, C, JavaScript, etc.) who want to be able to solve more complex problems through objected-oriented design with Java. In addition to learning Java, you will gain experience with two Java development environments (BlueJ and Eclipse), learn how to program with graphical user interfaces, and learn how to design programs capable of managing large amounts of data. These software engineering skills are broadly applicable across wide array of industries.

Created by:

courses
4 courses

Follow the suggested order or choose your own.

projects
Projects

Designed to help you practice and apply the skills you learn.

certificates
Certificates

Highlight your new skills on your resume or LinkedIn.

Projects Overview

Courses
Beginner Specialization.
No prior experience required.
  1. COURSE 1

    Java Programming: Solving Problems with Software

    Upcoming session: Oct 2 — Nov 6.
    Commitment
    4 weeks of study, 4-8 hours/week
    Subtitles
    English, Turkish

    About the Course

    Learn to code in Java and improve your programming and problem-solving skills. You will learn to design algorithms as well as develop and debug programs. Using custom open-source classes, you will write programs that access and transform images, websites, and other types of data. At the end of the course you will build a program that determines the popularity of different baby names in the US over time by analyzing comma separated value (CSV) files. After completing this course you will be able to: 1. Edit, compile, and run a Java program; 2. Use conditionals and loops in a Java program; 3. Use Java API documentation in writing programs. 4. Debug a Java program using the scientific method; 5. Write a Java method to solve a specific problem; 6. Develop a set of test cases as part of developing a program; 7. Create a class with multiple methods that work together to solve a problem; and 8. Use divide-and-conquer design techniques for a program that uses multiple methods.
  2. COURSE 2

    Java Programming: Arrays, Lists, and Structured Data

    Upcoming session: Oct 2 — Nov 6.
    Commitment
    4 weeks of study, 4-8 hours/week
    Subtitles
    English

    About the 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.
  3. COURSE 3

    Object Oriented Programming in Java

    Upcoming session: Sep 25 — Nov 13.
    Commitment
    6 weeks of study, 4-6 hours/week
    Subtitles
    English, Korean, Chinese (Simplified)

    About the 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!
  4. COURSE 4

    Data Structures and Performance

    Upcoming session: Sep 25 — Nov 13.
    Commitment
    6 weeks of study, 6-10 hours/week
    Subtitles
    English

    About the Course

    How do Java programs deal with vast quantities of data? Many of the data structures and algorithms that work with introductory toy examples break when applications process real, large data sets. Efficiency is critical, but how do we achieve it, and how do we even measure it? 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, and in particular, we recommend that you have taken the first course in this specialization (which also requires some previous experience with Java). In this course, you will use and analyze data structures that are used in industry-level applications, such as linked lists, trees, and hashtables. You will explain how these data structures make programs more efficient and flexible. You will apply asymptotic Big-O analysis to describe the performance of algorithms and evaluate which strategy to use for efficient data retrieval, addition of new data, deletion of elements, and/or memory usage. The program you will build throughout this course allows its user to manage, manipulate and reason about large sets of textual data. This is an intermediate Java course, and we will build on your prior knowledge. This course is designed around the same video series as in our first course in this specialization, including explanations of core content, learner videos, student and engineer testimonials, and support videos -- to better allow you to choose your own path through the course!

Creators

  • University of California, San Diego

    The UC San Diego Department of Computer Science and Engineering (CSE) embodies the university's tradition of excellence as a world-class leader in computer science and engineering education and research.

    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.

  • Duke University

    Duke University is consistently ranked as a top research institution, with graduate and professional schools among the leaders in their fields.

    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.

  • Leo Porter

    Leo Porter

    Assistant Teaching Professor
  • Andrew D. Hilton

    Andrew D. Hilton

    Assistant Professor of the Practice
  • Robert Duvall

    Robert Duvall

    Lecturer
  • Christine Alvarado

    Christine Alvarado

    Associate Teaching Professor
  • Mia Minnes

    Mia Minnes

    Assistant Teaching Professor
  • Susan H. Rodger

    Susan H. Rodger

    Professor of the Practice
  • Owen Astrachan

    Owen Astrachan

    Professor of the Practice

FAQs

More questions? Visit the Learner Help Center.