We may earn an affiliate commission when you visit our partners.
Course image
Eric Chou

[CS 23]

[Please watch all preview videos before signing up this course]

Read more

[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.

Enroll now

What's inside

Learning objectives

  • 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

Syllabus

Guide students through the preparation to start this course.

Overview of AP Computer Science Course as a whole. It also includes the table of contents for part 2 and part 3. Provide readers a good big picture of what to expect in the course. The slides (.pdf file) is also made downloadable.

Read more

Overview of Part 2 (AP Computer Computer Science B) and the related issues in AP Exam.

If you have not signed up for the College Level Java 1 course: Java Programming Essentials: AP Computer Science A

Think Java: Companion book for this course. 

Show student the resources and other educational materials provided by the Lecturer.  To guide student to learn Programming step by step. 

Extra Practice Exam by University of Washington. 

(Additional Lecture) Installation of BlueJ from AP Computer Science Part 1: Java Programming Essentials

https://www.udemy.com/ap-computer-science-a-java-programming-essentials

Demonstrate the advantages of BlueJ as the first Integrated IDE for beginning students.

Java Compiler Installation Guide

Java 10, IntelliJ IDEA Installation.

Installation Guide for Java JDK 11

Installation Guide for Eclipse (Neon) and plugins. (The same method can be used for all other versions of Eclipse)

Review section for Students who did not sign up the "Java Programming Essentials: AP Computer Science A" course.

Discuss classes and objects for data record with states and behaviors. States are properties or variables. Behaviors are methods. Any simple example of SimpleCircle class is used to show the idea of class and objects.

Exercise on different object-oriented program styles. 

[Java Coffee Break] Showing the concept of using objects as data collection. 

A data object can with proper information hiding and encapsulation should only be accessed by getter methods and setter methods. 

Discussion on the constructor methods for creating objects.

Construct a car fuel usage information class and object to exercise on basic object oriented programming skills. 

Talk about pointers and reference data type for Java. The main focus in this lecture is to summarize the various reference data type. For operations for reference data type, please refer to the external web link.

Continue the Fuel Series program to add two member (instance methods) into it. 

Discuss the scope and lifetime of local variables, instance variables (methods), and class variables (methods).

Modify the Fuel2 project into Fuel3 project with multiple objects. 

Discuss the visibility modifiers (public, protected, default (no modifier) and private ) and where a variable, a method or object can be accessed.

Modify Fuel3 project into array format. 

Starts Design Styles for Classes and Objects. First lecture on Static Members.

Modify Fuel4 into arraylist format.

Use an example to show the idea of Data Encapsulation in Java

Discuss the ways to access objects by methods: (1) use accessor and mutator (2) passing objects as parameter for instance methods or class methods. Please also refers to the attached web-links fore more ways to pass objects to methods.

Discuss how to design an immutable class. Three principles:

(1) All data fields must be private.

(2) No public setter methods.

(3) No accessor methods should return reference data type so that the reference data type may provide a back door (some mutator metthod) to update internal data which is supposed to be immutable.

Demonstrate the idea of static variables and the instance variables. 

Introduce this keyword, it is a keyword to indicate the current object to distinguish the instance variable from argument, local variable and other variables of the same name. Class.variable is also presented.

Chapter project using AP Physics Rules for calculation of projectile. 

Show the internet resources available for eC Learning Channel by Dr. Eric Chou to support this course. 


My Udemy: https://www.udemy.com/user/eric-chou/

Youtube channel: https://www.youtube.com/c/EricChouPHD

Facebook: https://www.facebook.com/profile.php?id=100007999848206

Quora: https://www.quora.com/profile/Eric-Chou-21 

Twitter: https://twitter.com/eCwarlephant

Email: [email protected]

Study the OOP Paradigm and explore the relationship between classes. Works on Wrapper classes in more details.

Review of classes and objects and provide overview for the Object-Oriented Programming in Unit 4 and Chapter 10.

Use Course class as an example to show how to define a class and class coherence.

Thinking in Object-Oriented Programming way. To build a complete class for BMI calculation.

Design a BMR class to experience designing a cohesive and complete class.

Create two classes for the Geometric project 1. Rectangle and Triangle classes. 

Using conversion from a structual program into the BMR class and TestBMR class as an example to demonstrate the conversion between a structural program to object-oriented program.

To design classes, you need to explore among classes. The common relationships among classes are association, composition and inheritance.

Video clip to shop the relationship of classes including is_a and has_a relationships. 

Use the violet tool to construct class diagram with Aggregation relationship.  Build a Lego class has has_A relationship for the Lego class and Rectangle and Triangle classes. 

Lab project on stack of integers. This is the first project in a series on user-defined data structure using object-oriented programming. These basic data structure will be very useful in AP Exam. It is also a good introduction for Unit 5 (Algorithms and Data Structure).

This lab project is also a good example for OOP design guidelines for coherence, completeness and design styles.

Provide examples, demo programs, and lab project to use this.

Use of this reference for conversion of static method and constructor calls.

Use String, StringBuilder and StringBuffer classes to separate the responsibilities for operating strings. (Part 1)

Use String, StringBuilder and StringBuffer classes to separate the responsibilities for operating strings. (Part 2)

Use Palindrome check to demonstrate the advanced String processing and StringBuilder/StringBuffer Class.

Use load Class to demonstrate the class abstraction and Ecapsulation

Show the three important top level classes for Java language: Object, Number and String classes.

Add the methods inherited from the Object class into the Rectangle and Triangle Class. Also add the mutator methods into these classes. 

Introduction of BigInteger and BigDecimal classes along with conversion of int, double, Integer, Double, String data type conversion. BigInteger and BigDecimal classes are data classes with mathematical operations.

In this lab project, the concept of using Raw ArrayList of Object type is tested.  Also, student are required to handle the removal of elements from an arraylist. (from the end of an arraylist instead of from the head.)

Answer Key to the Lab

Chapter 10 Quiz:
Subclass definition. Overloading and Overwriting. super keyword. To explore the relationship between parent class and the offspring classes. Variable scopes and many other issues are also discussed.

Inheritance enables you to define a general class (i.e., a superclass) and later extend it to more specialized classes (i.e. subclass)

The keyword super refers to the superclass and can be used to invoke the super-class's methods and constructors.

Polymorphism means that a variable of a supetype can refer to a subtype object.

To override a method, the method must be defined in the subclass using the same signature and the same return type as in its superclass. Overloading means ti define multiple methods with the same name but different signatures.

Show the concept of Inheritance, member properties, overriding, overloading. 

Apply the Inheritance and overriding methods to Geometric project. 

Use numbers package to demonstrate polymorphism.

One object reference can be typecast into another object reference. This is called casting object. Define method return value and parameters in more general (or abstract) superclass will make it more useful.

Example for Object class in equality package.

A method can be implemented in several classes along the inheritance chain. The JVM decides which method is invoked at run-time. (super.getNum(), this.getNum())

Exercise Polymorphism on the Geometric Project.  Add three more classes, Square, Cube and Equilateral. 

Show the nature and need for polymorphism and why it makes Java language platform-dependent with dynamic binding (linking)

Constructors for Parent class and Child class for the initialization of data fields in parent objects and children objects.

A protected member of a class can be accessed from a subclass.

Quiz on Inheritance and Polymorphisn

Study more other classes including the exception handler and File Class. Learn try-catch code block to handle exceptions.

Exceptions are thrown from a method. The caller of the method can catch and handle the exception.

Exceptions are objects, and objects are defined using classes. The root class for exceptions is java.lang.Throwable.

A handler for an exception is found by propagating the exception backward through a chain of method calls, starting from the current method.

A group of advanced topics on exception handling.

You can define a custom exception class by extending the java.lang.Exception class. We provide an example to show how to do it.

Discuss the keyword assert that can be used to check the program correctness. If the assertion is false, an error will be raised. This operator make initial error for program checking and testing. It is replaced by JUnit Test which is in another course that we have "Java JUnit for Unit Testing

Objected Oriented Programming is for the following purpose: (1) Multi-threading, (2) Dynamic Binding, (3) Module Management. 

Reading Geometric Object information from file. Add the Exception Handling mechanism into the program. 

Quiz on Exception and Assertion

The file class contains the methods for obtaining the properties of a file/directory and for renaming and deleting a file/directory.

This lecture focused on the general I/O concepts and the Stream class which is the top level class for the data stream hierarchy. 

DataInputStream and DataOutputStream for the int, double, and other primitive data type and String data type I/O is presented. 

Using BufferedInputStream, BufferedOutputStream,BufferedWriter, BufferedReader to speed up the I/O for Java Programs. 

Write objects to files with ObjectOutputStream and read in objects from ObjectInputStream. 

After learning the object-oriented programming, students need to understand what is the purpose for object-oriented programming. OOP is widely used for class management and library building.  In modern terms, the packages of library code are called module, package, application programming interface (API), or even bigger, design framework. All of these are built up using object-oriented programming technology.  The Java Core classes means the classes available in Java development kit (JDK) that came with the Java compiler. 

Read and write objects from files or to files.  This is one of the project in the Geometric project series to work on the file operation (using Object Streams). Class used as a format of data record in this lab project. 

Advanced Topics in advanced object stream

Just like you can read data from a file on your computer, you ca read data from a file on the Web.

Quiz on File Class and Input/Output Streams

Study Abstract Classes and Interfaces for generalization of classes. And, how dynamic binding can be done right? Comparable, Cloneable interfaces.

An abstract class cannot be used to create objects. An abstract class can contain abstract methods, which are implemented in concrete subclasses.

Number is an abstract superclass for numeric wrapper classes, BigInteger, and BigDecimal.

Use abstract class to organize classes sharing the same methods and data fields together. 

GregorianCalendar is a concrete subclass of the abstract class Calendar.

Discuss the final keyword and the abstract methods.

Using an event listener for a button to explain the anonymous class. Anonymous class is very useful in GUI design.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Taught by Eric Chou, who has created and contributed to numerous renowned Java courses
Develops Java programming skills which are highly relevant to AP Computer Science Exam and College Level Java Programming Courses
Examines Java Object-Oriented programming which is standard in industry
This is one of the best Java Programming courses on-line ever
Provides a good big picture of what to expect in the course
Goes through the preparation to start this course, including overview of AP Computer Science, resources, and extra practice exams

Save this course

Save Java Object-Oriented Programming: AP Computer Science B to your list so you can find it easily later:
Save

Reviews summary

Theoretical primer on java oop concepts

According to students, Java Object-Oriented Programming: AP Computer Science B is largely a theoretical course. It provides detailed explanations of Java OOP principles, but some learners may have preferred to see more practical code-writing examples.
In-depth explanations of concepts.
"explicações de detalhes"
Heavy focus on theory.
"Não era o que eu esperava pois é toda baseada apenas em explicações de detalhes teóricos"
Limited practical code examples.
"Preferia um curso que em cada aula fosse escrevendo novos códigos Java"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Java Object-Oriented Programming: AP Computer Science B with these activities:
Practice Java syntax
Refresh your memory on basic Java syntax to prepare for the course.
Browse courses on Java Syntax
Show steps
  • Review the Java language reference documentation.
  • Complete the online Java tutorial at the Oracle website.
  • Solve coding challenges on websites like LeetCode or HackerRank.
Read Head First Java, 2nd Edition
Gain a comprehensive understanding of Java concepts and best practices through this acclaimed book.
Show steps
  • Read the book thoroughly, taking notes and highlighting important concepts.
  • Complete the exercises and quizzes at the end of each chapter.
  • Discuss the book's concepts with classmates or online forums.
Complete Java tutorials on YouTube
Enhance your understanding of Java through engaging and interactive video tutorials.
Browse courses on Online Learning
Show steps
  • Search for Java tutorials on YouTube from reputable sources.
  • Watch the tutorials and take notes or create summaries.
  • Practice the concepts demonstrated in the tutorials.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Join a Java study group
Enhance your understanding and retention through discussions and collaboration with peers.
Show steps
  • Find a study group or create one with classmates.
  • Meet regularly to discuss course materials, solve problems, and share knowledge.
  • Participate actively in group discussions and contribute to the learning experience.
Solve Java coding problems
Sharpen your problem-solving skills and improve your ability to write efficient Java code.
Show steps
  • Find coding problems on websites like LeetCode or HackerRank.
  • Attempt to solve the problems on your own.
  • Review solutions and learn from others' approaches.
Connect with experienced Java developers
Seek guidance and advice from experienced professionals to accelerate your Java journey.
Browse courses on Mentorship
Show steps
  • Attend meetups or networking events related to Java.
  • Reach out to Java developers on LinkedIn or other social media platforms.
  • Request mentorship or advice on specific Java topics or career goals.
Build a simple Java project
Apply your Java skills to create a functional project that showcases your abilities.
Browse courses on Software Development
Show steps
  • Identify a project idea that aligns with your learning goals.
  • Design the project, including the classes, methods, and data structures.
  • Implement the project and test its functionality.
Answer questions on Java forums
Reinforce your knowledge by helping others, while contributing to the Java community.
Browse courses on Mentoring
Show steps
  • Join Java forums or online communities.
  • Identify questions that you can answer based on your knowledge.
  • Provide thoughtful and helpful responses, explaining concepts and offering guidance.

Career center

Learners who complete Java Object-Oriented Programming: AP Computer Science B will develop knowledge and skills that may be useful to these careers:
Computer and Information Research Scientist
Computer and Information Research Scientists design and develop software to solve problems in a variety of fields, such as healthcare, business, and government. They may also work on developing new theories and algorithms for computer science. This course can help you develop the skills you need to be a successful Computer and Information Research Scientist by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Software Developer
Software Developers design, develop, and test software applications. They may also work on developing new software or upgrading existing software. This course can help you develop the skills you need to be a successful Software Developer by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Computer Systems Analyst
Computer Systems Analysts design, implement, and maintain computer systems for businesses and organizations. They may also work on developing new software or upgrading existing systems. This course can help you develop the skills you need to be a successful Computer Systems Analyst by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Database Administrator
Database Administrators design, implement, and maintain databases. They may also work on developing new databases or upgrading existing databases. This course can help you develop the skills you need to be a successful Database Administrator by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Computer Network Architect
Computer Network Architects design, implement, and maintain computer networks. They may also work on developing new networks or upgrading existing networks. This course can help you develop the skills you need to be a successful Computer Network Architect by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Web Developer
Web Developers design and develop websites. They may also work on developing new websites or upgrading existing websites. This course can help you develop the skills you need to be a successful Web Developer by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Technical Writer
Technical Writers write technical documentation for software, hardware, and other products. They may also work on developing new technical documentation or upgrading existing documentation. This course can help you develop the skills you need to be a successful Technical Writer by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Computer Programmer
Computer Programmers write code to implement software applications. They may also work on developing new software applications or upgrading existing software applications. This course can help you develop the skills you need to be a successful Computer Programmer by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Project Manager
Project Managers plan and execute projects for businesses and organizations. They may also work on developing new project management techniques or upgrading existing techniques. This course can help you develop the skills you need to be a successful Project Manager by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Software Quality Assurance Analyst
Software Quality Assurance Analysts test and evaluate software to ensure that it meets quality standards. They may also work on developing new software testing techniques or upgrading existing techniques. This course can help you develop the skills you need to be a successful Software Quality Assurance Analyst by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Business Analyst
Business Analysts work with businesses and organizations to identify and solve business problems. They may also work on developing new business solutions or upgrading existing solutions. This course can help you develop the skills you need to be a successful Business Analyst by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Data Analyst
Data Analysts collect, analyze, and interpret data to help businesses and organizations make better decisions. They may also work on developing new data analysis techniques or upgrading existing techniques. This course can help you develop the skills you need to be a successful Data Analyst by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Information Security Analyst
Information Security Analysts design, implement, and maintain security systems for businesses and organizations. They may also work on developing new security systems or upgrading existing systems. This course can help you develop the skills you need to be a successful Information Security Analyst by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Information Technology Specialist
Information Technology Specialists provide technical support to businesses and organizations. They may also work on developing new information technology solutions or upgrading existing solutions. This course can help you develop the skills you need to be a successful Information Technology Specialist by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.
Computer Scientist
Computer Scientists research and develop new computer technologies. They may also work on developing new computer theories or upgrading existing theories. This course can help you develop the skills you need to be a successful Computer Scientist by providing you with a solid foundation in object-oriented programming, data structures, and algorithms.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Java Object-Oriented Programming: AP Computer Science B.
The Java: The Complete reference book recommended textbook or reference for many college level Java courses. It is useful for students who want to have a complete go-to reference to supplement the knowledge learned in the online course.
Thinking in Java highly recommended textbook for a foundational level experience with Java programming. It is commonly used at academic institutions and will provide a comprehensive understanding of Java.
Effective Java book on Java programming conventions, practices, and idioms. is recommended for experienced Java programmers to improve their knowledge about Java best practices.
The Java Programming Black Book comprehensive resource for Java programmers of all levels, providing a deep dive into the language's features.
Object-Oriented Programming in Java is useful for students with a beginner to intermediate level of Java programming knowledge. will expand upon knowledge learned in this online course for object-oriented programming.
Head First Java popular book for teaching introductory Java. It is recommended for students who may not yet be familiar with coding in Java and are taking this course for beginners.
Java Concurrency in Practice introduces the techniques needed to build explicit synchronization control into concurrent software applications.
Java For Dummies is an excellent resource for students who are new to programming altogether or have little coding experience. It good introduction to Java and can be used alongside this course.
Java Persistence with Hibernate great reference for Hibernate, which is an object-relational mapping framework for Java.
Java 8 in Action good resource for learning about the new features of Java 8, including lambda expressions and streams.
Java 9 Programming By Example good resource for learning about the new features of Java 9, including the module system and the Jigsaw project.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Java Object-Oriented Programming: AP Computer Science B.
Java Programming Essentials: AP Computer Science A
Most relevant
Decoding AP Computer Science A
Most relevant
Introduction to Java Programming: Writing Good Code
Most relevant
101: Introduction to Computer Science
Most relevant
Introduction to Java Programming: Fundamental Data...
Most relevant
Programming for a Networked World
Computer Science: Programming with a Purpose
Computer Science: Algorithms, Theory, and Machines
102: Introduction to Computer Science
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser