CSE2011 EECS2011: Fundamentals of Data Structures

Readme, Course Information, Course Description, Dates, Photos Fun, Your Marks, Forum, Class submit

Topics Slides Videos Notes
(Java,OO)
Abstract Data Types
Positions and Pointers
Contracts and Invariants
Running Time
Recursion
Balanced Trees
Hash Tables
Graphs
Programming Methods
Other
Review
Notes Code Ass1 Ass1 Sol
Ass2 Ass2 Sol
Midterm Review Midterm Sol
Ass3 MainGUI TreeWalker Ass3 Sol
Ass4 Ass4 Sol

About Course:
     This is your basic data structures course with a focus on systems
     invariants and understanding.
     Jeff will also teaches how to think about algorithms in an abstract way
     so that one can talk about them, design new ones, and know that they
     are correct.
Request:
     Jeff tends to talk too fast. Please help him go pole pole slowly.
Help Required: It is the first time me teaching it. (oops) I should start learning Java.
Texts:

Other's web pages:
Introduction: (ppt)


Andy's slides: These are slides of
Andranik Mirzaian.
My current thinking is to not cover it.
(Partly because I don't know it).
But you may find it useful.


Abstract Data Types: (
ppt, Notes Data Structures)
           (What the user of the data structure needs to know about how it is
           used, without needing to know how it is implemented.)


Positions and Pointers: (
ppt)
           (One data structure points at another forming linked lists and trees.
           They are often a challenge for new programmers in C or Java.)


Contracts, Assertions, and Invariants: (
ppt, Steps, Notes Invariants, Notes Data Structures)
           (Big systems need clear specifications about how its parts
           communicate. Big systems, data structures, and algorithms alike need
           to have clear specifications that never change.)
           (Jeff strongly believes that loop invariants is the most important topic in
           Algorithms. Instead of worrying about the entire computation, only
           worry about one step at a time - make progress while maintaining the
           loop invariant.)


Asymptotic Analysis of Time Complexity: (
ppt, Useful Math)
           (We classify algorithms based on whether they are polynomial or
           exponential time.)


Recursion: (
ppt, Notes)
           (Again do not try to understand the entire computation. Trust your
           friends to solve a smaller instances of your problem and use these to
           the solve your own instance.)


Midterm Review:


Balanced Trees:
ppt
           (A great data structure storing objects is a binary tree. If it is
           balanced than its depth is only log(n) with n nodes. Hence, operations
           are quick.)


Maps Hash Tables and Dictionaries:
ppt
           (Items are "randomly" placed in at table.)

Graph Search Algorithms (ppt, ass, ass sol, Soccer Strategies)
           (Graphs, ie nodes and edges, are very useful for representing
           data. The first task on them is to search through the nodes. )


Programming Methods: (
ppt, greedy, dynamic programming, NP)
           (There are a few programming meta-algorithms that most algorithms fit
           into. These should be understood.)


Other: (
Andy's Text Processing and Memory Management:)

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.