Java ObjectOriented Programming AP Computer Science B

AP Computer Science, Java Programming, Object-Oriented Programming, Java GUI, OOP, Java, Algorithms, Data Structure
Java ObjectOriented Programming AP Computer Science B
File Size :
26.86 GB
Total length :
52h 30m



Eric Chou


Last update

Last updated 3/2019



Java ObjectOriented Programming AP Computer Science B

What you’ll learn

Learn object-oriented programming in Java.
Study basic algorithms and data structure using Java
Meet the course requirements for AP Computer Science B (2nd Semester)
Complete review materials for AP Computer Science Exam and College Level Java Programming Courses

Java ObjectOriented Programming AP Computer Science B


Finish the AP Computer Science Part 1: Java Programming Essentials or equivalent course.
Minimum mathematical background: algebra I


[CS 23][Please watch all preview videos before signing up this course][This is the 2nd semester of College Level Java Course. Please make sure that you have done 1st semester College Level Java equivalent course before signing up this course.  You may signed up both at the same time but make sure you have enough capability to handle this course.]This course covers the second semester of AP Computer Science which includes complete introduction for Java Object-Oriented programming. The course is suitable for people who are seeking for a on-line class for introduction to Java programming, who are preparing for AP Computer Science Exam in high school and who want to sharpen their knowledge in Java.This part B course includes complete tutorials for Java Object-Oriented Programming, Program Analysis, and introduction to algorithms which included recursive programming, data structure and algorithm development. This course revolutionize the way computer science is taught. Instead of teaching textbook chapter by chapter.This course will be focused on an example program in each lecture. Lucid big idea in computer science will be introduced by the example program. It is followed by explanation of Java syntax and other language features. Practice questions, quizzes, and programming exercises will be given thereafter to enhance the understanding of the idea and to help to improve programming efficiency and test scores.A spiral study model is suggested for student to build up good programming habits and shorten learning cycles in programming.I would proudly say that this is one of the best Java Programming course on-line ever.In this course, you will get:(1) On-line lectures (with .pdf slides)(2) sample programs (in Java)(3) Quiz and exams (in multiple choice format) with solution(4) AP format exam with solution.(5) Free-online textbook access.(6) Free on-line related information links and book chapters.(7) Demo programs(8) Lab projects(9) Chapter projects.(10) Facebook Q&A support and Gmail responses.


Section 1: Introduction (You may skip if you are ready.)

Lecture 1 Overview of this Java Programming Course (AP Edition)

Lecture 2 Overview of AP Computer Science Part 2: OOP/GUI/Algorithms

Lecture 3 Get the College Level Java 1 (AP Computer Science A)

Lecture 4 Think Java

Lecture 5 How to master Java Programming?

Lecture 6 AP Computer Science A Practices by University of Washington & Runestrone

Lecture 7 Installation of Java Software and BlueJ

Lecture 8 Why BlueJ?

Lecture 9 Java 8 Standard Edition Installation Guide 9(Stand-alone Version)

Lecture 10 InlelliJ IDEA, Java JDK 10, and Android Studio

Lecture 11 Java JDK 11

Lecture 12 Eclipse IDE Installation

Section 2: Unit 3/Chapter 9: Revisit AP CSA Ch.9 – Classes and Objects

Lecture 13 Class Definition and Object Creation

Lecture 14 Lab Project: Program Styles (Review, skip if done)

Lecture 15 [Java Coffee Break] Objects and Data Encapsulation

Lecture 16 Constructors (Overloading, Overwriting) (revisti)

Lecture 17 Lab Project: Fuel1 (Review, skip if done)

Lecture 18 Reference Variables (Accessing String, Array, ArrayList, and Objects) (revisit)

Lecture 19 Lab Project: Fuel2 (Review, skip if done)

Lecture 20 Scope of Members (Static/Instance, Local/Global) (revisit)

Lecture 21 Lab Project: Fuel3 (Review, skip if done)

Lecture 22 Visibility Modifiers (revisit)

Lecture 23 Lab Project: Fuel4 (Review, skip if done)

Lecture 24 Classes and Objectes (1): Static Members (revisit)

Lecture 25 Lab Project: Fuel5 (Review, skip if done)

Lecture 26 Classes and Objects (2) : Data Encapsulation 1 (revisit)

Lecture 27 Classes and Objects (3): Data Encapsulation 2, Pass Objects to Methods (revisit)

Lecture 28 Classes and Objects (4): Immutable Objects and Classes (revist)

Lecture 29 Static versus Instance Properties

Lecture 30 this Reference (revisit)

Lecture 31 Chapter Project: Catapult Projectile (review, skip if done)

Lecture 32 eC Learning: Quality MOOC STEM Education

Section 3: Unit 4/Chapter 10: Object-Oriented Thinking (Examples of Ch. 9 Topics)

Lecture 33 Design of Classes

Lecture 34 Demo Program: Course Class and Coherence

Lecture 35 Demo Program: BMI Class, Completeness and Design Conventions

Lecture 36 Lab Project: BMR class

Lecture 37 Lab Project: Geometric 1

Lecture 38 Demo: Conversion of Structural Program to Object-Oriented Program

Lecture 39 Class Use Relationship (Association, Composition and Aggregation)

Lecture 40 [Java Coffee Break] Class to Class Relationship

Lecture 41 Lab Project: Geometric 2

Lecture 42 Lab Project: Stack Of Integers

Lecture 43 Standard Methods for Object Class

Lecture 44 Use of this Reference

Lecture 45 String, StringBuilder, and StringBuffer I (Separation of Responsibilities)

Lecture 46 String, StringBuilder, and StringBuffer II (Separation of Responsibilities)

Lecture 47 Demo Program: Check Palindrome (String Processing)

Lecture 48 Demo Program: Loan Class

Lecture 49 [Java Coffee Break] Java Top Level Classes

Lecture 50 Lab Project: Geometric 3

Lecture 51 Math Processing I: (Data/Object Type Conversion)

Lecture 52 Lab Project: Raw ArrayList Type and Element Removal in an ArrayList

Lecture 53 Lab Project: Raw ArrayList Type and Element Removal in an ArrayList (Answer)

Section 4: Unit 4/Chapter 11: Inheritance and Polymorphism

Lecture 54 Inheritance (Super Class and Subclass)

Lecture 55 super keyword

Lecture 56 Polymorphism

Lecture 57 Overriding and Overloading

Lecture 58 [Java Coffee Break] Inheritance

Lecture 59 Lab Project: Geometric 4

Lecture 60 Demo Program: numbers package

Lecture 61 Casting and instanceof Operator

Lecture 62 Demo Program: equality package

Lecture 63 Dynamic Binding

Lecture 64 Lab Project: Geometric 5

Lecture 65 [Java Coffee Break] Polymorphism and Java Platform-independency

Lecture 66 Base class Constructor (people package)

Lecture 67 The protected Data and Methods (people package: Non-AP Topic)

Section 5: Unit 4/Chapter 12: Exception Handling and I/O (Binary I/O Optional)

Lecture 68 Exception-Handling Overview

Lecture 69 Exception Types

Lecture 70 Exception Handling

Lecture 71 Advanced Topics (finally, Rethrowing, and Chained Exceptions)

Lecture 72 Defining Custom Exception Classes

Lecture 73 Assertions

Lecture 74 [Java Coffee Break] Object-Oriented Programming is for Module Management

Lecture 75 Lab Project: Geometric 6

Lecture 76 File Class (Non-AP Topic)

Lecture 77 Stream Class and Basic I/O Concepts (Non-AP Topic)

Lecture 78 Data Stream (Non-AP Topic)

Lecture 79 Buffered Stream (Non-AP Topic)

Lecture 80 Console Stream and Object Stream (Non-AP Topic)

Lecture 81 [Java Coffee Break] Java Core Classes

Lecture 82 Lab Project: Geometric 7 (Non-AP Lab Project)

Lecture 83 Advanced Object Stream (Non-AP Topic)

Lecture 84 Random Access File (Non-AP Topic)

Section 6: Unit 4/Chapter 13: Abstract Classes and Interfaces

Lecture 85 Abstract Classes

Lecture 86 Abstract Number Class

Lecture 87 Lab Project: Geometric 8

Lecture 88 Calendar and GregorianCalendar Class (Non-AP Topic)

Lecture 89 Demo Program: absfinal package

Lecture 90 Anonymous Class

Lecture 91 [Java Coffee Break] Abstract Class

Lecture 92 Lab Project Geometric 9 (Non-AP Topic)

Lecture 93 Interfaces

Lecture 94 Comparable Interface

Lecture 95 Cloneable Interface

Lecture 96 Iterable Interface (Non-AP Topic)

Lecture 97 [Java Coffee Break] Interface

Lecture 98 Abstract Class Versus Interfaces

Lecture 99 Demo Program: The Rational Class

Lecture 100 Lab Project: Geometric 10

Lecture 101 Lab Project: Geometric 11

Lecture 102 Class Design Guidelines

Lecture 103 Java Design Patterns (Group of Classes and Interfaces) (Non-AP Topic)

Lecture 104 Adapter Classes (Non-AP Topic)

Lecture 105 Adapter Pattern Demo (adapterpattern package) (Non-AP Topic)

Lecture 106 Front Controller Design Pattern (frontcontroller package) (Non-AP Topic)

Lecture 107 [Java Coffee Break] Adapters

Section 7: Unit 4/Review 1: Review of Advanced OOP (AP: Optional)

Lecture 108 Java Software Installation and Swing Packages

Lecture 109 Demo Program: Swing, AWT and objectdraw packages

Lecture 110 GUI Simple Application Classes (Swing/Javafx)

Lecture 111 Overview of GUI Programming with Sparring Score Example (Non-AP Topic)

Lecture 112 Class Hierarchy of AWT/Swing Package for Java GUI Basics

Lecture 113 Frame (Top Level Container) (Non-AP Topic)

Lecture 114 Sub-Containers (Panel) (Non-AP Topic)

Lecture 115 Helper Classes (Color, Font, FontMetrics, Graphics, and Dimension) (Non-AP)

Lecture 116 Graphics Class as Canvas in Swing Graphics Design (An Overview) (Non-AP Topic)

Lecture 117 Lab Project: Geometric 12 (GUI 1 – awt.Applet)

Lecture 118 Drawing Geometric Objects (Non-AP Topic)

Lecture 119 Lab Project: Geometric 12 (GUI 2 – JFrame)

Lecture 120 Lab Project: Geometric 13 (GUI 3 – JApplet – BlueJ default style)

Lecture 121 Lab Project: Geometric 14 (GUI 4 – JApplet in JFrame)

Lecture 122 Event-Driven Programming using AWT Event package (Non-AP Topic)

Lecture 123 Event Objects (Non-AP Topic)

Lecture 124 Event Listener and Anonymous Inner Class (Non-AP Topic)

Lecture 125 Development of GUI Projects

Section 8: Unit 5/Chapter 14: Recursion

Lecture 126 Real World Recursive Problems and Reading Recursion

Lecture 127 Fractals

Lecture 128 Computing Factorials and Tail Recursion

Lecture 129 Fibonacci Numbers

Lecture 130 Lab Project: Fibonacci Numebrs

Lecture 131 Problem Solving using Recursion

Lecture 132 [Java Coffee Break] Recursive Patterns

Lecture 133 Recursive Processing I (Traverse, Sum/Avg/Max/Min, Reverse)

Lecture 134 Recursive Processing II (Text Processing)

Lecture 135 Recursive Processing III (Selection Sort, Binary Search) (Non-AP Topic)

Lecture 136 [Java Coffee Break] Iterative VS Recursive

Lecture 137 Lab Project: Palindrome

Lecture 138 Recursion vs. Iteration

Lecture 139 Tower of Hanoi (Non-AP Topic)

Section 9: Unit 5/Chapter 15: Searching, Sorting and Program Efficiency Analysis

Lecture 140 Overview of Algorithms

Lecture 141 Analysis of Algorithms: Big-O Notation

Lecture 142 Lab Project: Geometric 15 (Comparable Interface)

Lecture 143 Time Complexity

Lecture 144 Standard Algorithms

Lecture 145 Euclidean Algorithm (Non-AP Topic)

Lecture 146 Finding Prime Numbers (Non-AP Topic)

Lecture 147 Linear Search (Enhanced with Implementation from Chapter 7)

Lecture 148 [Java Coffee Break] Algorithms

Lecture 149 Lab Project: Geometric 16 (Linear Search)

Lecture 150 Binary Search (Enhanced with Implementation from Chapter 7)

Lecture 151 Sorting I: Insertion Sort

Lecture 152 [Java Coffee Break] Insertion Sort

Lecture 153 Lab Project: Geometric 17 (Insertion Sort)

Lecture 154 Sorting II: Selection Sort

Lecture 155 [Java Coffee Break] Selection Sort

Lecture 156 Lab Project: Geometric 18 (Selection Sort)

Lecture 157 Lab Project: Geometric 19 (Binary Search)

Lecture 158 Sorting III: Bubble Sort

Lecture 159 [Java Coffee Break] Bubble Sort

Lecture 160 Lab Project: Geometric 20 (Bubble Sort)

Lecture 161 Sorting IV: Merge Sort

Lecture 162 Lab Project: Geometric 21 (Merge Sort)

Lecture 163 Sorting V: Quick Sort (Non-AP Topic)

Lecture 164 Lab Project: Geometric 22 (Quick Sort)

Section 10: Unit 5/Chapter 16: Lists, Stacks, Queues, Sets, Maps, and HashMap (Optional)

Lecture 165 Overview of Basic Data Structure

Lecture 166 ArrayList

Lecture 167 LinkedList

Lecture 168 Lab Project: Moon Landing (Analyzing word occurrence count for JFK speech)

Lecture 169 Vector Class (Non-AP Topic)

Lecture 170 enum Type (Non-AP Topic) [revisit]

Lecture 171 List Interface (Linear Data Structure)

Lecture 172 Lab Project: Reverse of an array

Lecture 173 Custom Data Structure by Pointers-Reference Data Type (Non-AP Topic)

Lecture 174 Custom-Designed Linked List

Lecture 175 Stacks Class and Queue (Non-AP Topic)

Lecture 176 Priority Queue (Non-AP Topic)

Lecture 177 Stack Class and Queue Interface (Collections Framework)

Lecture 178 Maps (Non-Linear) (Non-AP Topic)

Lecture 179 Map Application (Word Occurrence) (Non-AP Topic)

Lecture 180 Sets (HashSet and LinkedHashSet) (Non-AP Topic)

Lecture 181 Set (TreeSet) (Non-AP Topic)

Section 11: Unit 5/Chapter 17: Java Generic Programming: Parametric Polymorphism

Lecture 182 Overview of Java Generics

Lecture 183 What is Java Generics?

Lecture 184 Universal Reference Type -Object

Lecture 185 Universal Reference Type -Object (Example Program

Lecture 186 Generics Basics

Lecture 187 Generic Methods

Lecture 188 Bounded Generic Type

Lecture 189 Case Study: Generic Sorting program

Lecture 190 Raw Type

Lecture 191 Wildcard Generics

Lecture 192 Unbounded Wildcard Generics

Lecture 193 Super-Wildcard Generics

Lecture 194 Erasure and Restriction on Generics (Implementation Issues)

Lecture 195 Case Study: Generic Matrix

Section 12: Unit 5/Review 2: Algorithms (Software Engineering Issues)

Lecture 196 Software Engineering and Software Testing

Lecture 197 Introduction to Unit Test Using JUnit

Lecture 198 JUnit API

Lecture 199 Set Up JUnit Test Classes

Lecture 200 Running Tests and Interpreting Test Results

Lecture 201 Packaging and Deployment

Section 13: Unit 6: AP Computer Science Labs

Lecture 202 Introduction to AP Labs

Lecture 203 Unit 6/Lab 1 [C1]: Magpie Lab (Chatbot) [Part 1]

Lecture 204 Unit 6/Lab 1 [C2]: Magpie Lab (Chatbot) [Part 2]

Lecture 205 Unit 6/Lab 2 [P1]: Picture Lab

Lecture 206 Unit 6/Lab2 [P2]: Picture Lab

Lecture 207 Unit 6/Lab2 [P3]: Picture Lab

Lecture 208 Unit 6/Lab2 [P4]: Picture Lab

Lecture 209 Unit 6/Lab 3 [E1]: Introduction to Elevens Lab [Activity 1-2]

Lecture 210 Unit 6/Lab 3 [E2]: Introduction to Elevens Lab [Activity 3-4 Shuffle]

Lecture 211 Unit 6/Lab 3[E3] Introduction to Elevens Lab [Activity 5-6 Testing and Rules ]

Lecture 212 Unit 6/Lab3[E4] Introduction to Elevens Lab [Activity 7-9 Inheritance]

Section 14: Unit 7/Review 4: Exam Practice (3 Weeks at Least)

Lecture 213 Design Pattern (AP FRQ format) Using ArrayLists (Review)

Lecture 214 AP Computer Science Exam Format

Lecture 215 Overview of AP Exam Preparation

Lecture 216 Tips for Preparation of Multiple Choice Section

Lecture 217 Tips for Preparation of Free Response Section

Lecture 218 Practice Exam 1: (Day 1) Multiple Choice Questions

Lecture 219 Practice Exam 1: (Day 2) Free Response Questions

Lecture 220 Practice Exam 2: (Day 3) Multiple Choice Questions

Lecture 221 Practice Exam 2: (Day 4) Free Response Questions

Lecture 222 Practice Exam 3: (Day 5) Multiple Choice Questions

Lecture 223 Practice Exam 3: (Day 6) Free Response Questions

Lecture 224 Practice Exam 4: (Day 7) Multiple Choice Questions

Lecture 225 Practice Exam 4: (Day 8) Free Response Questions

Lecture 226 Practice Exam 5: (Day 9) Multiple Choice Questions

Lecture 227 Practice Exam 5: (Day 10) Free Response Questions

Section 15: Unit 7/Exam Review 1: Past Multiple Choice Problems

Lecture 228 Released 2009 AP Computer Science Exam (Multiple Choice Section)

Lecture 229 Released AP 2009 AP Computer Science Exam Multiple Choice Solution

Lecture 230 Released 2015 AP Computer Science Exam (Multiple Choice Section)

Lecture 231 Released AP 2015 AP Computer Science Exam Multiple Choice Solution

Section 16: Unit 7/Exam Review 2: Past Free Response Questions. (At least 5 days 5 exams)

Lecture 232 Exam Format for AP Computer Science A Free Response Questions

Lecture 233 Free Response Questions 2018

Lecture 234 2018 APCSA Exam FRQ Sample Answer

Lecture 235 Free Response Questions 2017

Lecture 236 2017 APCSA Exam FRQ Sample Answer

Lecture 237 Free Response Questions 2016

Lecture 238 2016 APCSA Exam FRQ Sample Answer

Lecture 239 Free Response Questions 2015

Lecture 240 2015 APCSA Exam FRQ Sample Answer

Lecture 241 Free Response Questions 2014

Lecture 242 2014 APCSA Exam FRQ Sample Answer

Lecture 243 Free Response Questions 2013

Lecture 244 2013 APCSA Exam FRQ Sample Answer

Lecture 245 Free Response Questions 2012

Lecture 246 2012 APCSA Exam FRQ Sample Answer

Lecture 247 Free Response Questions 2011

Lecture 248 2011 APCSA Exam FRQ Sample Answer

Lecture 249 Free Response Questions 2010

Lecture 250 2010 APCSA Exam FRQ Sample Answer

Lecture 251 Free Response Questions 2009

Lecture 252 2009 APCSA Exam FRQ Sample Answer

Section 17: Appendix A: This Course and AP Computer Science Exam

Lecture 253 How to proceed in this course?

Section 18: Appendix B: Software Installation and Tools

Lecture 254 Setup Eclipse for JUnit Test

Lecture 255 Why BlueJ? (Extra Materials)

Lecture 256 DrJava IDE Installation Guide (Optional)

Working individuals who want to learn data structure and algorithms using Java,Students who want to take AP Computer Science Exam,Programmers who finished the first Java Programming course and seeking for Java Programming course at intermediate level.

Course Information:

Udemy | English | 52h 30m | 26.86 GB
Created by: Eric Chou

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top