Home » Computer Science » Java
No. of

AP Computer Science: Java Dr. Massoud Ghyam

  • Level
  • Lessons (min)
  • Audio: English

Dr. Massoud Ghyam currently teaches several Computer Science courses at the University of Southern California (Ed.D). In the Educator Java series, Dr. Ghyam covers Java Syntax, Object Oriented Programming, Program Analysis, Data Structures, and Search Algorithms. By coupling his programming experience and interest in learning through technology, Dr. Ghyam guides you through both understanding the fundamental programming concepts and mastering the art of effective coding. Quick summaries of important concepts, common mistakes, and coding examples underneath each video complete this exemplary course.

Table of Contents

Section 1: Introduction to Programming

  Introduction to Java 32:57
   Intro 0:00 
   Process of Programming 0:07 
   Computer Systems 0:38 
    Software (System and Applications)  
   Object Oriented Programming 3:57 
    Data Hiding  
   Procedural Programming 7:05 
    Top Down and Bottom Up Design  
    Data Passing and Processing  
   Key Benefits of java 9:56 
    Platform Independence  
    Object Oriented  
    Distributed Computing  
   Using Java 13:44 
    Embedded Code  
   Defining and Running Java Programs 15:53 
    Software (Editor, Compiler, Interpreter)  
    Integrated Development Environment (IDE)  
   Simple Application 19:12 
    Hello World  
   Compiling 21:34 
    Source File  
    Imported Objects  
   Executing Applications on the Command Line 23:10 
   Creating, Compiling, and Running a Program 24:25 
   Applets 25:25 
    Applet Viewer  
   Java File Structure 29:39 
    Source File  
    Bytecode Files  
    HTML Files  

Section 2: Java Syntax from the Ground Up

  Java Syntax 34:57
   Intro 0:00 
   Primitive Data Types 0:13 
   Numeric Data Types 4:00 
   Character Data Type 5:14 
   Boolean Data Type 8:20 
    True and False  
   Unicode Formats 10:25 
    Plain Text  
   Comments 15:26 
   Reserved Words 18:17 
   Identifiers 23:17 
    Variables and Constants  
   Declaring and Initializing Variables 25:28 
    Data Type  
   Constants 33:31 
    Static Final  
  Operators 51:20
   Intro 0:00 
   Operators 0:32 
    Arithmetic Operations  
    Combo Operators  
    Increment and Decrement  
   Assignment Statements 7:14 
    Memory Space  
   Unary Operators 11:05 
   Arithmetic Operators 14:12 
   More Operators 24:10 
    Increment and Decrement  
   Mixed/Similar Mode of Operation 29:29 
   Type Conversion (Cast) 31:54 
   Relational Operators 35:30 
   Boolean Operators 37:37 
    Truth Table  
   Operator Precedence 43:30 
   Examples 44:29 
  Statements 49:20
   Intro 0:00 
   Java Statements 0:27 
    Assignment Statement  
   Statements and Expressions 4:25 
   Arithmetic Expressions 9:58 
    Integer Arithmetic  
    Integer Division  
    Real Number Arithmetic  
   Operator Precedence 10:52 
    Changing Precedence  
   Storing Data to Primitive Data Types 18:38 
    Assignment Operator  
    Storing Using =  
    Reading an Input Value  
   Input Output 20:49 
    Console Input/Output  
    Graphical User Interface  
   Reading Numeric Values 37:44 
    Numeric Wrapper Classes  
   Complete Simple Program 42:41 
  Control Statements 55:36
   Intro 0:00 
   Control Statements 0:10 
    Comparison Operators  
    Relational Operators  
    Logical Operators  
    If Else  
    Boolean Data Type  
    Displayed, Compared, Assigned  
    Compound Statements  
    Simple Statements  
   One Way Selection 17:53 
    No Else Expression  
    Decision Maker  
    Action Statement  
    Verify Data  
    Find Exception  
   Examples 24:11 
   If Else Statement 27:21 
   Nested If 32:00 
   Multi-Alternative 37:33 
   Switch Statement 44:33 
  Loop Statements 41:32
   Intro 0:00 
   While Loop 0:11 
   Counter Controlled While Loops 10:36 
   Sentinel Controlled While Loops 15:35 
   For Loop 20:31 
   Do While Loop 31:22 
   Nested Loop 35:34 
  Recursion 33:17
   Intro 0:00 
   Recursion 0:10 
    Tail Recursion, Tail-End Recursion  
    Base Case  
    Recursive Step  
   Factorials 4:28 
   Java Methods 7:24 
    Return Statement  
   Method Declarations 11:39 
    Return Type  
    Method Name  
    Parameter List  
    Exception List  
    Method Body  
   Method Example 13:14 
   Factorial Problem 19:47 
   Complete Example 22:35 
   Arithmetic Series Example 30:10 

Section 3: Object-Oriented Programming in Java

  Classes and Objects 40:05
   Intro 0:00 
   Object Oriented Programming 0:23 
    Variable Declaration  
   Encapsulation 2:31 
   Computer Memory 3:28 
    Garbage Collection  
   Objects 6:41 
    Instance Variable  
    Message Passing  
    Method Call  
    Private Data Member  
    Public Member Methods  
   Unified Modeling Language (UML) 9:18 
   Visibility 11:32 
    Private Visibility  
    Public Visibility  
    Protected Visibility  
   Example 14:26 
   Classes and Objects 18:34 
    Design Example  
    Class Structure  
    Class Template  
    Class Hierarchy  
    Employee Class  
  Using Objects 38:27
   Intro 0:00 
   Employee Objects 0:25 
    Declare and Instantiate  
    Mutator Methods  
    toString Method  
   Assignment 16:43 
   Types 21:50 
    Primitive Type  
    Reference Type  
    Null Value  
    Null Pointer Exception  
   Constructor 29:13 
    Default Constructors  
  Methods 38:27
   Intro 0:00 
   Structure 0:32 
    Return Statement  
    Void Type  
    Data Type  
   Formal and Actual Parameters 5:46 
    Position and Type  
   Local Variables 12:24 
   Helper Methods 15:02 
   Scope and Lifetime of Variables 18:44 
    Global Variables  
    Local Variables  
   Block Scope 26:50 
   Example: Methods 32:19 
   Example: Parameter Passing 38:05 
   Static Variables/Classes/Methods 48:27 
  Inner Classes 18:26
   Intro 0:00 
   Overview of Inner Classes 0:44 
    Static Member Classes  
    Member Classes  
    Local Classes  
    Anonymous Classes  
   Examples 7:11 
  Compositions 29:51
   Intro 0:00 
   Using Compositions 0:38 
   Example: Date 2:55 
   Example: Person 11:42 
  Inheritance 39:39
   Intro 0:00 
   Terminology 2:13 
   Example: Employee 5:27 
   Class Header 33:56 
   Variables 34:39 
    Protected Methods  
  Interface 21:57
   Intro 0:00 
   Java Interfaces 1:35 
    Methods and Constants  
    Implements Clause  
    Abstract Methods  
   Classes vs Interfaces 3:45 
    Instance/Class Variables  
    Instance/Class Methods  
    Public Instance Methods  
    Named Constants  
   Example: Interface 6:29 
   Summary 20:04 
  Platform 57:30
   Intro 0:00 
   System and User 0:09 
    String and Characters  
    Numeric Classes  
    Numbers and Math  
    Dates and Times  
    Input and Output Streams  
    Swing Class  
   String Class 1:24 
    Comparing, Searching, Extracting, Copying  
   Examples: Strings 10:21 
   Math Class 17:23 
    Basic Numeric Operations  
   Numeric Class 24:52 
    Wrapper Class  
    Primitive Type  
    Float, Integer, Double, Long  
   Class Date 31:07 
    Universal Time (UTC)  
    Java Virtual Machine  
   I/O Streams 35:23 
    Input Source  
    Output Destination  
    File Lines Reader  
    Buffered Reader  
   Scanner Class 44:28 
    Example: Reading Numbers  
   Vector Class 48:24 
    Dynamic Array  
   Swing Class 53:56 
  Arrays 29:45
   Intro 0:00 
   Java Syntax 0:27 
    One Dimensional Array  
    Two Dimensional Array  
   Declaring an Array 2:18 
   Accessing Array Components 4:57 
    Array Subscripting Operator  
   Example: Array Sort 18:17 
   Two Dimensional Array 23:33 
  Packages 32:13
   Intro 0:00 
   Destroying and Finalizing Objects 0:16 
    Allocated Memory  
    Automatic Garbage Collection  
    Finalize Method  
   Creating and Using Packages 5:44 
    Fundamental Classes  
    Bundled Classes  
    Using Package Members  
   Naming Conventions 17:40 
    Class and Interface  
    Methods and Variables  
   Documentation Comments 23:04 
    Doc Tags  

Section 4: Analysis of Programs

  Program Analysis, Part I 34:18
   Intro 0:00 
   Correctness 0:52 
    In Isolation  
    Boundary Cases  
    Integration Testing  
    White Box Testing  
    Black Box Testing  
   Debugging 11:18 
    Syntax Errors  
    Logical Errors  
    Run Time Errors  
   Error Handling 16:51 
    Defensive Programming  
   Exceptions 22:48 
    Run Time Exception  
    Arithmetic Exception  
    Illegal Argument Exception  
    Illegal State Exception  
    Index Out of Bounds Exception  
    Null Pointer Exception  
    Unsupported Operation Exception  
   Fixing Exceptions 28:58 
    Try Catch Statement  
  Program Analysis, Part II 44:30
   Intro 0:00 
   Program Complexity and Efficiency 0:18 
    Time, Resources, Coding  
    Complexity Analysis  
    Sum Method  
    Execution Time  
   Big-O Notation 8:59 
    Bubblesort Method  
   Common Big-O Values 27:38 
   Complexity 41:57 
    Best Case  
    Worst Case  
    Average Case  

Section 5: Additional Data Structures

  Linked List 52:51
   Intro 0:00 
   Java Syntax 0:09 
    Linked List  
   Types of Lists 2:39 
    Singly Linked List (slist)  
    Doubly Linked List  
    Circular Linked List  
   Objects 8:56 
   Adding to a Linked List 14:54 
    List Pointer  
    New Link  
   Traversing a Linked List 21:00 
    Second Pointer  
   Deleting from a Linked List 23:44 
   Example: Class Node 29:13 
   Tracing 34:55 
   Review 36:20 
    Example: Add Method  
    Example: Add Helper Method  
    Example: Traverse  
    Example: Traverse Iteratively  
    Example: Find  
    Example: Delete First  
  Stacks 22:09
   Intro 0:00 
   What is a Stack? 0:29 
    Last In First Out (LIFO)  
   Creating a Stack 5:27 
    One Dimensional Array  
    Data Field  
    Linked List  
   Stack Operations 8:20 
    Is Empty  
    Is Full  
   Examples 14:21 
  Queue 24:19
   Intro 0:00 
   What is a Queue? 0:13 
    First In First Out (FIFO)  
   Creating a Queue 3:55 
    One Dimensional Array  
    Array Index  
    Linked List  
    Data Field  
   Queue Operations 7:42 
   Java Queue 13:57 
   Examples 16:05 
  Trees 43:52
   Intro 0:00 
   Binary Tree 0:49 
    Root Node  
   Binary Search Tree 3:01 
    Example: Search  
   Binary Search Tree Operations 13:14 
    Preorder Traversal  
    Postorder Traversal  
   Binary Search Tree Examples 28:25 
  Priority Queue and Heap 19:58
   Intro 0:00 
   Priority Queue 0:31 
    Abstract Data Type (ADT)  
    Associative Array Mapping  
   Priority Queue Interface 6:05 
   Priority Queue Examples 8:17 
   Heap 10:13 
    Complete Binary Tree  
    Heap Order Property  
   Heap Examples 13:36 
  Maps and Sets 19:54
   Intro 0:00 
   What is a Map? 0:26 
    Dictionary Class  
    Collection Views  
   Map Interface 2:18 
   Map Example 5:16 
   What is a Set? 10:13 
   Set Interface 12:09 
   Set Example 14:21 

Section 6: Algorithms

  List Operations 26:27
   Intro 0:00 
   Container Traversal 0:27 
    Explicit Traveral Operations  
    Method Parameters  
   Explicit Traversal Operations 4:03 
   Cursor Traversals 6:53 
    Container with Cursor  
   Enumerations 12:43 
   Iterators 17:52 
    Remove Method  
  Searching 48:26
   Intro 0:00 
   Sequential Search 0:23 
    Sorted List  
    Unsorted List  
   Binary Search 12:46 
    Linear Search  
    Array Midpoint  
   Search Using Hashing 31:25 
  Sorting, Part I 20:23
   Intro 0:00 
   Bubble Sort 1:16 
    Scan List  
   Insertion Sort 10:22 
    Nearly Sorted  
    Worst Case  
    Best Case  
    Expected Search  
  Sorting, Part II 20:23
   Intro 0:00 
   Quicksort 0:12 
    Complexity Analysis  
   Mergesort 15:00 
    Recursive Divide and Conquer  
   Heap Sort 28:15 
    Complexity Analysis  

Duration: minutes

Number of Lessons:


Please sign in to participate in this lecture discussion.

Resetting Your Password?

Start Learning Now

Our free lessons will get you started (Adobe Flash® required).
Get immediate access to our entire library.

Membership Overview

  • Available 24/7. Unlimited Access to Our Entire Library.
  • Search and jump to exactly what you want to learn.
  • *Ask questions and get answers from the community and our teachers!
  • Practice questions with step-by-step solutions.
  • Download lecture slides for taking notes.
  • Track your course viewing progress.
  • Accessible anytime, anywhere with our Android and iOS apps.