Java Object-Oriented Programming: AP Computer Science B

AP Computer Science, Java Programming, Object-Oriented Programming, Java GUI, OOP, Java, Algorithms, Data Structure
4.6 (33 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
1,544 students enrolled
$19
$40
52% off
Take This Course
  • Lectures 205
  • Length 19.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 5/2016 English

Course Description

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

What are the requirements?

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

What am I going to get from this course?

  • 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

What is the target audience?

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

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction
07:05

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.

05:02

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

Article

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

Article

Think Java: Companion book for this course. 

Article

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

13:37

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

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

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.

Article

Exercise on different object-oriented program styles. 

00:30

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

07:28

Discussion on the constructor methods for creating objects.

Article

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

07:23
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.
Article

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

12:29

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

Article

Modify the Fuel2 project into Fuel3 project with multiple objects. 

03:30

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

Article

Modify Fuel3 project into array format. 

10:25

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

Article

Modify Fuel4 into arraylist format.

04:56

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

09:02
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.
03:56

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.

01:33

Demonstrate the idea of static variables and the instance variables. 

15:51

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.

Article

Chapter project using AP Physics Rules for calculation of projectile. 

01:45

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/channel/UCXGHpbLr9O5GydD0Ja9C7Nw

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

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

Twitter: https://twitter.com/eCwarlephant

Email: echou510@gmail.com

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

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

07:01

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

08:46

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

03:54

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

Article

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

11:26

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.

11:24

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

01:39

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

Article

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. 

09:45

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.

12:33

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

06:35

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

07:25

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

13:45

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

09:33

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

08:05

Use load Class to demonstrate the class abstraction and Ecapsulation

00:58

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

Article

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

11:05

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.

Chapter 10 Quiz:
20 questions
Section 4: Unit 4/Chapter 11: Inheritance and Polymorphism
14:52

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

06:19

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

12:17

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

12:15

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.

01:10

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

Article

Apply the Inheritance and overriding methods to Geometric project. 

06:45

Use numbers package to demonstrate polymorphism.

15:13

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.

13:40

Example for Object class in equality package.

12:41

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())

Article

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

01:35

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

09:50

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

07:50

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

20 questions

Quiz on Inheritance and Polymorphisn

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

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

08:30

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

14:50

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

09:53

A group of advanced topics on exception handling.

08:41

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

06:30

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

02:17

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

Article

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

15 questions

Quiz on Exception and Assertion

09:47

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

10:52

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

09:22

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

11:47

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

07:58

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

00:49

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. 

Article

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 Object Stream (Non-AP Topic)
07:06
05:22

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

10 questions

Quiz on File Class and Input/Output Streams

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

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

04:02

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

Article

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

05:14

GregorianCalendar is a concrete subclass of the abstract class Calendar.

05:07

Discuss the final keyword and the abstract methods.

04:52

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

Article

Add two anonymous class (actually should be anonymous objects) into the arraylist glist. 

08:18

An interface is a class-like construct that contains only constants and abstract methods.

07:12

The Comparable interface defines the compareTo method for comparing objects.

06:01

The Cloneable Interface specifies that an object can be cloned.

12:02

The Iterable Interface has one method iterator(). The Iterator Class has hasNext(), next() and remove() methods.

The ListIterator Class many more methods.

These three interfaces are useful to allow the classes that implements these interfaces to have the iterator to traverse through the class with these three interfaces.

07:48

Compare and contrast between abstract class and interface. Both of them are useful to provide a class with extra feature. Abstract class can be viewed as core data class, while interface can be viewed as a collection of unimplemented methods. An abstract class implemented an interface is a core data class with the collection of unimplemented methods.

04:30

Use Rational Class to demonstrate a class extend Number abstract class and implement Comparable Interface.

Lab Project: Geometric 10
Article

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Dr. Eric Chou, IEEE Senior Member, an engineer and an inventor

I love computational research and its application to real world. i have involved in many large-scale computer/communication product research development in many world-leading company such as HP, Micrel, and many startups. I also involved in founding a startup company. I also enjoy sharing my ideas through teaching. I hold many US and international patents in technical fields such as software development, mobile computing, IC design and communication receiver design. I am also a certified coach in Taekwondo in both UAST and AAU.

Ready to start learning?
Take This Course