This course is an introduction to the Java programming language and the concepts of object-oriented design. It not only covers the fundamentals of programming in Java, but it also brings in the concepts of object-oriented design and guides students to build GUI-based applications to address real-world problems. Topics include, but not limited to, fundamentals of programming in Java, classes and methods, objects and references, overloading, inheritance, polymorphism, abstract classes and interfaces, basic data structures, and GUI applications. Students are expected to apply learned knowledge to address an identified problem found in the real world.

Mastering UX & Business App Development with OOP

Recommended experience
Recommended experience
Intermediate level
1 year of programming experience in high-level programming languages such as Java, C++
Recommended experience
Recommended experience
Intermediate level
1 year of programming experience in high-level programming languages such as Java, C++
Details to know

Add to your LinkedIn profile
10 assignments
See how employees at top companies are mastering in-demand skills

There are 4 modules in this course
In this module, you will be setting up the foundation to learn computation and programming, review the fundamentals of programming using Java programming language and write Java programs with basic syntax, including variables, I/O, Strings, control flow, conditions, methods, arrays, and file I/O.
What's included
6 videos52 readings1 assignment2 discussion prompts
6 videos• Total 42 minutes
- What Makes Up a Computer?• 6 minutes
- Programming Environment (Building and Running a Program)• 8 minutes
- Example of Using String Formatting• 7 minutes
- Demonstration - Opening a File for Reading• 10 minutes
- Demonstration: Trace Code• 7 minutes
- Visibility Modifiers and Accessor/Mutator Methods• 4 minutes
52 readings• Total 728 minutes
- Course Overview• 1 minute
- Syllabus - UX & Business App Development with OOP• 10 minutes
- Academic Integrity• 1 minute
- Setting Up Your IDE & Exercise• 30 minutes
- Introduction to Computation and Programming• 10 minutes
- Variables• 15 minutes
- Data Types• 10 minutes
- Data Types — Alphanumeric• 10 minutes
- Data Types — Boolean• 10 minutes
- Introduction to Program Input and Output• 10 minutes
- Program Output• 10 minutes
- Program Input• 10 minutes
- Exercise: Java Program with Three Integers• 10 minutes
- Format String• 10 minutes
- Exercise: Program that asks User for Decimal Value• 10 minutes
- Control Flow and Conditions• 10 minutes
- if-else• 10 minutes
- Multiple ‘else if’ Statements• 10 minutes
- do-while Loops• 10 minutes
- While Loops• 10 minutes
- For loops• 10 minutes
- Introduction to Methods• 10 minutes
- Types of Methods• 15 minutes
- Predefined Methods in Java• 15 minutes
- More Examples• 15 minutes
- The Process of Methods• 15 minutes
- Introduction to Arrays• 10 minutes
- Creating Arrays• 15 minutes
- Arrays in Memory• 15 minutes
- Array Elements and Length• 15 minutes
- Out-of-Bound Errors• 15 minutes
- Initializing Arrays• 15 minutes
- Arrays as Method Arguments• 5 minutes
- File Objects• 15 minutes
- File Output• 15 minutes
- Using a PrintWriter• 15 minutes
- Exercise: Reading from a File• 60 minutes
- Exercise: Writing to a File• 60 minutes
- OO Programming Concepts• 15 minutes
- UML (Unified Modeling Language) Class Diagram• 10 minutes
- Exercise: Objects and Classes• 30 minutes
- Constructors• 15 minutes
- Default Constructors• 15 minutes
- Declaring Object Reference Variables• 15 minutes
- Accessing Object’s Members• 15 minutes
- Default Value for a Data Field• 10 minutes
- Exercise: Data Field• 10 minutes
- Primitive Data Type vs. Class Types• 15 minutes
- Garbage Collections• 15 minutes
- Instance Variables and Methods• 10 minutes
- Static Variables, Constants, and Methods• 10 minutes
- Module Summary• 1 minute
1 assignment• Total 30 minutes
- Module Quiz - Fundamentals of Programming• 30 minutes
2 discussion prompts• Total 40 minutes
- Meet Your Fellow Learners• 10 minutes
- Introductory Java• 30 minutes
You will continue exploring object-oriented programming by focusing on the concept of arrays of objects by creating and manipulating multiple instances of objects in a sequential manner, learning how to pass objects to methods, along with an in-depth examination of class abstraction and encapsulation. You will extend your exploration to wrapper classes and harness the capabilities of String, StringBuilder, and StringBuffer classes to devise solutions for real-world problems.
What's included
5 videos40 readings2 assignments1 discussion prompt
5 videos• Total 38 minutes
- The this Reference• 4 minutes
- Wrapper Classes• 9 minutes
- The String Class• 10 minutes
- The StringBuilder and StringBuffer Classes• 6 minutes
- Superclasses and Subclasses• 8 minutes
40 readings• Total 576 minutes
- Passing Object to Methods• 15 minutes
- Generic Example of Passing Objects by Methods• 10 minutes
- Array of Objects• 15 minutes
- [OPTIONAL] Exercise: Array of Objects• 15 minutes
- [OPTIONAL] Exercise: Passing Objects to Methods• 15 minutes
- Thinking in Objects• 15 minutes
- Case Study: The BMI Class• 20 minutes
- Processing Primitive Data Types Values as Objects• 15 minutes
- The Static valueOf Methods• 10 minutes
- The Methods for Parsing Strings into Numbers• 10 minutes
- Interned Strings• 10 minutes
- Replacing and Splitting Strings• 10 minutes
- Matching, Replacing and Splitting by Patterns• 10 minutes
- Convert Character and Numbers to Strings• 5 minutes
- Introduction to Superclasses and Subclasses• 20 minutes
- Is Superclass’s Constructor Inherited?• 10 minutes
- Using the Keyword super• 10 minutes
- Introduction to Inheritance• 10 minutes
- Constructor Chaining• 10 minutes
- Introduction to Constructor Invocation in Java Inheritance• 60 minutes
- The Impact of a Superclass without no-arg Constructor• 20 minutes
- Defining a Subclass• 5 minutes
- Calling Superclass Methods• 10 minutes
- Overriding Methods in the Superclass• 10 minutes
- Overriding vs. Overloading• 20 minutes
- The Object Class and Its Methods• 20 minutes
- The toString() method in Object Class• 20 minutes
- Polymorphism• 10 minutes
- Polymorphism and Dynamic Binding• 10 minutes
- Casting Objects• 10 minutes
- The instanceof Operator• 20 minutes
- The equals Method• 10 minutes
- The protected Modifier• 15 minutes
- Visibility Modifiers• 15 minutes
- The final Modifier• 15 minutes
- The ArrayList Class• 20 minutes
- Array Lists from/to Arrays• 20 minutes
- Max and Min in an Array List• 10 minutes
- Introduction to Shuffling an Array List• 20 minutes
- Module Summary• 1 minute
2 assignments• Total 60 minutes
- Module Quiz - Basics of Object-Oriented Programming Part 2• 30 minutes
- Module Quiz - Fundamentals of Programming Part 2• 30 minutes
1 discussion prompt• Total 30 minutes
- Object-Oriented Programming• 30 minutes
This module, you will be taking a closer look into the world of Graphical User Interface (GUI) programming which are the essential components of modern software applications, enabling users to interact with software in a visually intuitive and user-friendly manner. You will learn the fundamental principles of designing and creating basic GUI applications.During this week, you will also recall the fundamental characteristics of each GUI toolkit and articulate, and demonstrate the ability to configure a programming environment for JavaFX and apply basic programming skills to write and execute simple JavaFX applications and create user interfaces using pages, groups, UI controls and shapes.
What's included
4 videos39 readings2 assignments1 discussion prompt
4 videos• Total 15 minutes
- Environment Setup for JavaFX in Eclipse• 8 minutes
- Definition and Example of Abstract Class• 3 minutes
- Interface Definition• 2 minutes
- Example of Using Interface Design in Java: Integer and BigInteger Classes• 2 minutes
39 readings• Total 381 minutes
- Graphical User Interface• 10 minutes
- Historical Context and Evolution of JavaFX vs. Swing and AWT• 10 minutes
- JavaFX vs. Swing and AWT• 10 minutes
- JavaFX features • 10 minutes
- Exercise: Setting up JavaFX• 10 minutes
- Basic Structure of JavaFX• 10 minutes
- Panes, UI Controls, and Shapes• 10 minutes
- [OPTIONAL] Exercise: Creating a JavaFX Project• 10 minutes
- Property Binding• 10 minutes
- [OPTIONAL] Exercise: Continuing with Creating a JavaFx Project• 10 minutes
- Classes—Color, Font, Image, ImageView• 10 minutes
- [OPTIONAL] Exercise: Creating a JavaFX Application using Image and ImageView• 10 minutes
- Layout Panes• 10 minutes
- [OPTIONAL] Exercise: Creating an App • 10 minutes
- Shapes• 10 minutes
- Shape Class• 10 minutes
- Text• 10 minutes
- Line• 10 minutes
- Rectangle• 10 minutes
- Circle• 10 minutes
- Ellipse• 10 minutes
- Arc• 10 minutes
- Arc Examples• 10 minutes
- Polygon and Polyline• 10 minutes
- Eclipse and Scene Builder• 10 minutes
- Tools: Scene Builder• 10 minutes
- [OPTIONAL] Exercise: Creating a JavaFX app with Scene Builder• 10 minutes
- Abstract Method in Abstract Class• 10 minutes
- Abstract Class as a Type• 10 minutes
- Case Study: Abstract Calendar Class and GregorianCalendar Subclass• 10 minutes
- [OPTIONAL] Exercise: Creating an Abstract Class• 10 minutes
- Interface Usage• 10 minutes
- [OPTIONAL] Exercise: Defining an Interface• 10 minutes
- The Comparable Interface• 10 minutes
- Interface Design in Different Classes• 10 minutes
- [OPTIONAL] Exercise: Example of Using Integer and Date Classes With Their compareTo() Method• 10 minutes
- The Cloneable Interface• 10 minutes
- Interfaces vs. Abstract Classes• 10 minutes
- Module Summary• 1 minute
2 assignments• Total 60 minutes
- Module Quiz - Basics of GUI programming in Java• 30 minutes
- Module Quiz - Basics of Abstract Classes and Interfaces• 30 minutes
1 discussion prompt• Total 30 minutes
- UX Design• 30 minutes
This module, you will be introduced to event-driven programming, a paradigm to respond to various events or actions. Primarily focusing on how applications can be designed to respond to user actions on JavaFX GUI applications. This week's topic emphasizes explaining the mechanism and designing responses for interaction in JavaFX. You will also learn about the concept of handler classes in event-driven programming, including how handler objects are registered to respond to specific events. You will learn how to describe events, event sources, and event classes and apply that to write and analyze code that effectively manages and responds to various events.
What's included
9 videos49 readings5 assignments1 discussion prompt
9 videos• Total 28 minutes
- Procedural vs. Event-Driven Programming• 2 minutes
- Events• 3 minutes
- Overview of Generics• 4 minutes
- Declaring Generic Classes and Interfaces• 4 minutes
- Computing Factorials• 5 minutes
- Java Collections Hierarchy Framework• 3 minutes
- The List and ListIterator Interfaces• 2 minutes
- ArrayList and LinkedList Classes• 3 minutes
- Vector and Stack• 3 minutes
49 readings• Total 442 minutes
- Event-Driven Programming• 10 minutes
- Taste of Event-Driven Programming• 10 minutes
- Handling GUI Events• 10 minutes
- Selected User Actions and Handlers• 10 minutes
- Registering Handlers, Handling Events, and The Delegation Model• 10 minutes
- [OPTIONAL] Exercise: Creating a JavaFX application with a response for user’s action• 10 minutes
- (Handler) class, Inner Class, and Anonymous Inner Class• 10 minutes
- Listener (Handler) Class• 10 minutes
- Inner Classes• 10 minutes
- Anonymous Inner Classes• 10 minutes
- Simplifying Event Handling Using Lambda Expressions• 10 minutes
- Single Abstract Method Interface (SAM)• 10 minutes
- The MouseEvent Class• 10 minutes
- The KeyEvent Class• 10 minutes
- The KeyCode Constants• 10 minutes
- [OPTIONAL] Exercise: Creating a JavaFX Program(MyKeyEvent)• 10 minutes
- Overview of Event-Driven Programming with Scene Builder• 10 minutes
- The Pros and Cons of Screen Builder• 10 minutes
- Creating Interactive JavaFX Applications With Scene Builder• 10 minutes
- [OPTIONAL] Exercise: Creating a Java Application With an Interaction• 10 minutes
- Getting and Fixing the Warning in Generics• 10 minutes
- Exercise: Generics• 10 minutes
- What is Generics? Why Generics?• 10 minutes
- No Casting Needed• 10 minutes
- Generic Methods• 5 minutes
- [OPTIONAL] Exercise: Generic Methods• 10 minutes
- Example — Generic Class• 10 minutes
- Bounded Generic Type• 10 minutes
- Raw Type and Backward Compatibility• 10 minutes
- Wildcards• 10 minutes
- Generic Types and Wildcard Types• 10 minutes
- Introduction to Erasure and Restrictions on Generics• 10 minutes
- Exercise: Generic Array• 10 minutes
- Trace Recursive Factorial• 5 minutes
- Fibonacci Numbers• 10 minutes
- Characteristics of Recursion• 5 minutes
- Data Structures• 5 minutes
- Collections• 10 minutes
- The Collection Interface• 10 minutes
- Iterators• 5 minutes
- Notes for Iterator• 5 minutes
- The List Interface• 10 minutes
- UML Class Diagrams of Java.util.ArrayList and Java.util.LinkedList• 10 minutes
- The Comparator Interface• 10 minutes
- Example of Using the Comparator Interface• 10 minutes
- Queues and Priority Queues• 10 minutes
- The Queue Interface and PriorityQueue Class• 10 minutes
- Module Summary• 1 minute
- Congratulations• 1 minute
5 assignments• Total 150 minutes
- Module Quiz - Event-Driven Programming• 30 minutes
- Module Quiz - Generics• 30 minutes
- Module Quiz - Recursion• 30 minutes
- Module Quiz - Collections and Iterators• 30 minutes
- Module Quiz - Lists, Stacks, and Queues• 30 minutes
1 discussion prompt• Total 30 minutes
- Advanced Java Programming• 30 minutes
Prepare for a degree
Taking this course by Northeastern University may provide you with a preview of the topics, materials and instructors in a related degree program which can help you decide if the topic or university is right for you.
Prepare for a degree
Taking this course by Northeastern University may provide you with a preview of the topics, materials and instructors in a related degree program which can help you decide if the topic or university is right for you.
Northeastern University
Master of Science in Information Systems
Degree · 1.5-3 years
Instructor

Offered by

Offered by

Founded in 1898, Northeastern is a global research university with a distinctive, experience-driven approach to education and discovery. The university is a leader in experiential learning, powered by the world’s most far-reaching cooperative education program. The spirit of collaboration guides a use-inspired research enterprise focused on solving global challenges in health, security, and sustainability.
Why people choose Coursera for their career

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
Explore more from Computer Science

Guided Project
NNortheastern University
Course
NNortheastern University
Course
