Syllabus

Module Week Content Materials
Introduction and Basic Data Structures

Visualising data structures and algorithms through animation http://visualgo.net

Week I – Introduction
  1. Motivation
  2. Java generalities
Week II -Arrays and  Dynamic Arrays
  • Arrays
  • ADT : Abstract Data Types
  • Dynamic Arrays
Week III -Lists
  • Lists
  • Singly-Linked Lists
  • Doubly-Linked Lists
Week IV -Stacks and Queues
I
  • Stacks
  • Queues:
Binary Trees Week V – Binary Trees
  • Trees
  • Tree Traversal
  •  Binary Trees
  • Tree Height Remark
First Exam
Heaps and Priority Queues, and Disjoint Sets Weeks VI – Heaps, Heap Sort and Priority Queues
  • Priority Queues
  • Basic Operations
  • Complete Binary Trees
  • Heaps
  • Building a Heap
  • Heap Sort
  • Priority Queues
Week  VIII – Programming Contests, Challenges and Competitions.
  • Maratones ICCP, IEEE Exterme 10.0, Estrategias de Algorítmicas  Bolsa Millonaria
Week  IX – Disjoint Sets
  • Disjoint Sets
  • Union by Rank
  • Path Compression
  • Analysis
Hash Tables Week X
  • Applications of Hashing
  • Direct Addressing
  • List-based Mapping
  • Notion of Hash Function
  • Chaining Scheme
  • Chaining Implementation and Analysis

Week XI
  • Open Addressing
  • Good Hash Functions
Week XII
  • Universal Family
  • Hashing Integers
  • Hashing Strings
Week XIII
  • Search Pattern in Text
  • Rabin-Karp’s Algorithm
  • Optimization: Precomputation
  • Optimization: Implementation and Analysis
  • Online Storage Systems
  • Distributed Hash Tables
Binary Search Trees Week XIV
  • Search Trees
Week XV
  • Balanced Trees
  • AVL Trees
Skip Lists Week XVI
  • Skip Lists
Final Exam