COURSE INFORMATION

 
 
setting.png

COURSE

Algorithms in Java

DESCRIPTION

You will be taught the theoretical background of each algorithm or data structure, as well as how to write the code on a step by step basis in Eclipse, Java.

check (1).png

PREREQUISITES

  • Core java

  • Eclipse or other IDE

open-book.png

CURRICULUM

INTRODUCTION


  • Introduction
  • Why use data structures
  • Data structures and abstract data types
  • Complexity theory




ARRAYS


  • Arrays introduction - basics
  • Arrays introduction - operations
  • Using arrays
  • ArraysLists in Java




LINKED LISTS


  • Linked lists theory - basics
  • Linked list theory - operations
  • Linked list theory - doubly linked lists
  • Linked list theory - linked lists versus arrays
  • Linked list implementation I
  • Linked list implementation II
  • Linked list implementation III
  • Doubly linked list introduction
  • Linked lists in java.util




STACKS & QUEUES


  • Stack introduction
  • Stacks in memory management ( stacks, heaps )
  • Stacks and recursive method calls
  • Stack implementation with linked list I
  • Stack implementation with linked list II
  • Stack implementation with arrays
  • Dijkstra's interpreter introduction
  • Dijkstra's interpreter implementation
  • Java built in java.util.Stack
  • Queues introduction
  • Queue implementation with linked list
  • Java built in java.util.Queue




BINARY SEARCH TREES


  • Binary search trees theory - basics
  • Binary search trees theory - search, insert
  • Binary search trees theory - delete
  • Binary search trees theory - in-order traversal
  • Binary search trees theory - running times
  • Binary search trees implementation I - Node, Tree
  • Binary search trees implementation II - insertion
  • Binary search tree implementation III - maximum, minimum
  • Binary search tree implementation IV - traversal
  • Binary search tree implementation V - remove
  • Binary search tree implementation VI - remove II
  • Custom objects in a tree




BALANCED TREES: AVL TREES


  • AVL trees introduction - motivation
  • AVL trees introduction - basics
  • AVL trees introduction - height
  • AVL trees introduction - rotations cases
  • AVL trees introduction - illustration
  • AVL trees introduction - sorting
  • AVL implementation - Node and Tree
  • AVL implementation - balance and height parameters
  • AVL implementation - implementing the rotations
  • AVL implementation - insertion I
  • AVL implementation - insertion II
  • AVL implementation - testing
  • AVL tree remove introduction
  • AVL tree remove implementation I
  • AVL tree generic implementation




BALANCED TREES: RED-BLACK TREES


  • Red-black trees introduction - basics
  • Red-black trees rotations- cases I
  • Red-black trees rotations- cases II
  • Red-black trees rotations- cases III
  • Red-black trees rotations- cases IV
  • Red-black trees introduction - example I
  • Red-black trees introduction - example II
  • Red-black tree versus AVL tree
  • Red-black tree implementation I - Node class
  • Red-black tree implementation II - traverse
  • Red-black tree implementation III - insert
  • Red-black tree implementation IV - rotate left / right
  • Red-black tree implementation V - fixing the violations
  • Red-black tree implementation VI - fixing the violations
  • Red-black tree implementation VII - testing




SPLAY TREES


  • Splay tree introduction I - basics
  • Splay tree introduction II - example
  • Splay tree implementation I - find, rotate
  • Splay tree implementation II - spalying
  • Splay tree implementation III - testing




B-TREES


  • B-tree introduction - basics
  • B-tree and external memory
  • Disk access times
  • B-tree introduction - search
  • B-tree introduction - insertion
  • B-tree introduction - deletion
  • In-order traversal




BINARY HEAPS


  • Priority queues introduction
  • Heap introduction - basics
  • Heap introduction - array representation
  • Heap introduction - remove operation
  • Heap introduction - heapsort
  • Heap introduction - running times
  • Other types of heaps: binomial and Fibonacci heap
  • Heap implementation - insertion
  • Heap implementation - get the minimum/maximum
  • Heap implementation - heapsort
  • Heap implementation - testing
  • Heaps in java.util.PriorityQueue




HASHTABLES


  • Associative array ADT
  • Hashtables introduction - basics
  • Hashtables introduction - collisions
  • Hashtables introduction - load factor & dynamic resizing
  • Chaining method summary
  • Chaining implementation I - put
  • Chaining implementation II - get
  • Chaining implementation III - testing
  • Linear probing summary
  • Linear probing implementation I - put
  • Linear probing implementation II - get
  • Linear probing implementation III - testing
  • Generic linear probing implementation I - basics
  • Generic linear probing implementation II - get
  • Generic linear probing implementation IV - remove
  • Generic linear probing implementation V - resize
  • Generic linear probing implementation VI - testing
  • Generic linear probing implementation - hashCode
  • Maps in Java Collections




INTERVIEW WITH SINGAPORE EXPERT


  • Background of Expert
  • Information and Communication Technology in Singapore





coin (1).png

COURSE FEES

$517.97

You may be eligible for up to 100% of subsidy for your course fees.

Check here.

cursor (1).png

INSTRUCTIONS FOR ENROLMENT

1. Check if you are eligible for subsidies here and follow the instructions.

2. Purchase the e-module below:

3. Purchase BOTH the face-to-face lessons below:

 

 

4. Once you have completed 90% of your e-module, the Gen Infiniti team will contact you to schedule your in-person lessons.

Drop us an email at connect@geninfinitiacademy.com if you face any issues or problems enrolling in the course.