Enter your Sign on user name and password.

Forgot password?
Sign In | Subscribe

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

expand all   collapse all

I. Introduction to Programming

  Introduction to Java 32:57
   Intro 0:00 
   Process of Programming 0:07 
   Computer Systems 0:38 
    Hardware  
    Software (System and Applications)  
    Users  
   Object Oriented Programming 3:57 
    Classes  
    Data Hiding  
    Encapsulation  
    Inheritance  
   Procedural Programming 7:05 
    Sub-Programs  
    Top Down and Bottom Up Design  
    Data Passing and Processing  
   Key Benefits of java 9:56 
    Platform Independence  
    Object Oriented  
    Threading  
    Networking  
    Distributed Computing  
   Using Java 13:44 
    Application  
    Applet  
    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  
    Compiler  
    Bytecode  
   Executing Applications on the Command Line 23:10 
    Bytecode  
    Interpreter  
   Creating, Compiling, and Running a Program 24:25 
   Applets 25:25 
    HTML  
    Applet Viewer  
   Java File Structure 29:39 
    Source File  
    Bytecode Files  
    HTML Files  

II. Java Syntax from the Ground Up

  Java Syntax 34:57
   Intro 0:00 
   Primitive Data Types 0:13 
   Numeric Data Types 4:00 
    Double  
    Float  
    Long  
    Int  
    Short  
   Character Data Type 5:14 
    char  
   Boolean Data Type 8:20 
    True and False  
   Unicode Formats 10:25 
    ASCII  
    Plain Text  
   Comments 15:26 
   Reserved Words 18:17 
    Import  
    Class  
    Private  
   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  
    Modulus/Remainder  
    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  
    Semi-colon  
   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  
    String  
   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 
    Example  
   Counter Controlled While Loops 10:36 
    Example  
   Sentinel Controlled While Loops 15:35 
    Example  
   For Loop 20:31 
    Example  
   Do While Loop 31:22 
    Example  
   Nested Loop 35:34 
    Example  
  Recursion 33:17
   Intro 0:00 
   Recursion 0:10 
    Tail Recursion, Tail-End Recursion  
    Advantages  
    Disadvantages  
    Base Case  
    Recursive Step  
   Factorials 4:28 
   Java Methods 7:24 
    Header  
    Body  
    Return Statement  
   Method Declarations 11:39 
    Modifiers  
    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 

III. Object-Oriented Programming in Java

  Classes and Objects 40:05
   Intro 0:00 
   Object Oriented Programming 0:23 
    Class  
    Variable Declaration  
    Methods  
    Object  
   Encapsulation 2:31 
    Instantiation  
   Computer Memory 3:28 
    Garbage Collection  
   Objects 6:41 
    Behavior  
    State  
    Identity  
    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  
    Accessors  
    toString Method  
   Assignment 16:43 
   Types 21:50 
    Primitive Type  
    Reference Type  
    Null Value  
    Null Pointer Exception  
   Constructor 29:13 
    Default Constructors  
    Examples  
  Methods 38:27
   Intro 0:00 
   Structure 0:32 
    Return Statement  
    Void Type  
    Data Type  
   Formal and Actual Parameters 5:46 
    Arguments  
    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 
    Root  
    Subclasses  
    Object  
    Superclass  
    Descendants  
   Example: Employee 5:27 
   Class Header 33:56 
   Variables 34:39 
    Protected Methods  
    Constructors  
    Super  
  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  
    Specification  
   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  
    Vectors  
    Swing Class  
   String Class 1:24 
    Comparing, Searching, Extracting, Copying  
    Concatenation  
    toString  
   Examples: Strings 10:21 
   Math Class 17:23 
    Basic Numeric Operations  
    Examples  
   Numeric Class 24:52 
    Wrapper Class  
    Primitive Type  
    Float, Integer, Double, Long  
    Examples  
   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 
    Tokens  
    Example: Reading Numbers  
   Vector Class 48:24 
    Dynamic Array  
    Constructors  
    Examples  
   Swing Class 53:56 
    Examples  
  Arrays 29:45
   Intro 0:00 
   Java Syntax 0:27 
    Element  
    Index  
    One Dimensional Array  
    Two Dimensional Array  
   Declaring an Array 2:18 
    int  
   Accessing Array Components 4:57 
    Index  
    Array Subscripting Operator  
    Example  
   Example: Array Sort 18:17 
   Two Dimensional Array 23:33 
    Loops  
    Example  
  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 
    Types  
    Fundamental Classes  
    Bundled Classes  
    Using Package Members  
   Naming Conventions 17:40 
    Class and Interface  
    Methods and Variables  
    Constants  
   Documentation Comments 23:04 
    Doc Tags  
    Javadoc  

IV. Analysis of Programs

  Program Analysis, Part I 34:18
   Intro 0:00 
   Correctness 0:52 
    Testing  
    In Isolation  
    Boundary Cases  
    Integration Testing  
    White Box Testing  
    Black Box Testing  
   Debugging 11:18 
    Syntax Errors  
    Logical Errors  
    Run Time Errors  
    Debuggers  
   Error Handling 16:51 
    Defensive Programming  
    Classes  
   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 
    Example  
    Bubblesort Method  
   Common Big-O Values 27:38 
    Examples  
   Complexity 41:57 
    Best Case  
    Worst Case  
    Average Case  

V. Additional Data Structures

  Linked List 52:51
   Intro 0:00 
   Java Syntax 0:09 
    Linked List  
    Node  
   Types of Lists 2:39 
    Singly Linked List (slist)  
    Doubly Linked List  
    Circular Linked List  
   Objects 8:56 
    Reference  
   Adding to a Linked List 14:54 
    List Pointer  
    New Link  
   Traversing a Linked List 21:00 
    Reference  
    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 
    Top  
    Last In First Out (LIFO)  
    Push  
    Pop  
   Creating a Stack 5:27 
    Vector  
    One Dimensional Array  
    Node  
    Data Field  
    Linked List  
    Null  
   Stack Operations 8:20 
    Push  
    Pop  
    Top  
    Is Empty  
    Is Full  
   Examples 14:21 
  Queue 24:19
   Intro 0:00 
   What is a Queue? 0:13 
    First In First Out (FIFO)  
    Head  
    Tail  
   Creating a Queue 3:55 
    One Dimensional Array  
    Vector  
    Array Index  
    Linked List  
    Node  
    Data Field  
    Front  
    Rear  
   Queue Operations 7:42 
    Empty  
    peekFirst  
    peekLast  
    Pull  
    Push  
    removeFirst  
    removeLast  
    Search  
   Java Queue 13:57 
    Add  
    Offer  
    Remove  
    Poll  
    Element  
    Peek  
   Examples 16:05 
  Trees 43:52
   Intro 0:00 
   Binary Tree 0:49 
    Node  
    Root Node  
    Sub-Trees  
    Parent  
    Child  
   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)  
    Element  
    Peek  
    Associative Array Mapping  
    Priority  
   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  
    HashMap  
    TreeMap  
    LinkedHashMap  
   Map Interface 2:18 
   Map Example 5:16 
   What is a Set? 10:13 
    Collection  
    HashCode  
   Set Interface 12:09 
   Set Example 14:21 

VI. Algorithms

  List Operations 26:27
   Intro 0:00 
   Container Traversal 0:27 
    Explicit Traveral Operations  
    Cursors  
    Method Parameters  
    Iterators  
   Explicit Traversal Operations 4:03 
    outputELements  
    findIndex  
    sumOfElements  
    capitalizeElements  
   Cursor Traversals 6:53 
    Container with Cursor  
   Enumerations 12:43 
    hasMoreELements  
    nextElements  
    NoSuchElementException  
    Example  
   Iterators 17:52 
    Remove Method  
    IllegalStateException  
    Example  
  Searching 48:26
   Intro 0:00 
   Sequential Search 0:23 
    Sorted List  
    Unsorted List  
    Algorithm  
    Variations  
    Example  
   Binary Search 12:46 
    Iteration  
    Linear Search  
    Array Midpoint  
    Loop  
    Examples  
   Search Using Hashing 31:25 
    Key  
    Hash  
    Examples  
  Sorting, Part I 20:23
   Intro 0:00 
   Bubble Sort 1:16 
    Scan List  
    Examples  
   Insertion Sort 10:22 
    Nearly Sorted  
    Worst Case  
    Best Case  
    Expected Search  
    Inversions  
    Examples  
  Sorting, Part II 20:23
   Intro 0:00 
   Quicksort 0:12 
    Examples  
    Complexity Analysis  
    Implementation  
    Stack  
    Recursively  
   Mergesort 15:00 
    Recursive Divide and Conquer  
    mergeSortHelper  
    copyBuffer  
    Examples  
   Heap Sort 28:15 
    Heap  
    Complexity Analysis  
    Examples