King Fahd University of Petroleum & Minerals

College of Computer Sciences and Engineering

ICS 202: Data Structures (3-3-4)

Summer Semester 2007-2008 (073)

 << Syllabus >>

N.B. All course material and related resources are made available

through WebCT and will be added here soon.

 

Office: 22-108 

Phone: 03-860-1930, 

E-mail: alfy@kfupm.edu.sa

URL: http://faculty.kfupm.edu.sa/ics/alfy/

Office Hours: UT @ 10:20am-11:00am or by appointment

 

  Day Time Room
Lecture SUMTW 9:20am-10:20am 24-141
Lab UT 2:10pm-5:10pm 22-416

 

Introduction to Design Patterns. Introduction to Algorithm Analysis. Review and Analysis of Linear Data Structures. Recursion, Trees and Graphs. Implementations of Tree and Graph Traversals. BST, AVL, Heaps and B-Trees. Hashing Techniques. Data Compression. Memory Management. Practice in Developing Medium Scale Programs.

 

  1. Introduce students to fundamental data structures; their algorithms, implementations and applications.

  2. Teach students how to analyze the efficiency of the fundamental data structures in terms of both time and space so that they are able to decide what data structure is suitable for a given problem.
     

 Upon completion of the course, you should be able to:

  1. Apply object oriented concepts (inheritance, polymorphism, design patterns, etc.) in software design.
  2. Implement various data structures and their algorithms, and apply them in implementing simple applications.
  3. Analyze simple algorithms and determine their efficiency using big-O notation.
  4. Apply the knowledge of data structures to other application domains like data compression and memory management.
     

 

Activity

Weight

Laboratory [Participation = 0.5% * 12, Open Book Programming Quizzes = 14%]

20%

Practice Assignments 

0 %

Project

13 %

Quizzes

12 %

Midterm

25 %

Final Exam

30 %

 

Note: Material will be updated as necessary.

 

Date Lectures   Laboratories Readings
Lec # Topics Other Activities   Lab # Topics Other Activities
5-Jul Sat 1 Review of OO Concepts           Preiss Chapter 5
6-Jul Sun 2 Design Patterns     0 Getting Started

<download>

 
7-Jul Mon 3 Complexity Analysis I           Preiss Chapter 3, Drozdek Chapter 2
8-Jul Tue 4 Complexity Analysis II     01 Design Patterns I

<html> <zip>

 
9-Jul Wed 5 Complexity Analysis II (Cont.) HW1 Assign        
10-Jul Thu                
11-Jul Fri                
12-Jul Sat 6 Singly Linked List Quiz 1         Preiss Chapter 4, Drozdek Chapter 3
13-Jul Sun 7 Doubly Linked List     02 Design Patterns II

<html> <zip>

 
14-Jul Mon 8 Stacks           Preiss Chapter 6, Drozdek Chapter 4
15-Jul Tue 9 Queues HW1 Due   03 Linked List

<html> <zip>

 
16-Jul Wed 10 Recursion I HW2 Assign         Slides, Drozdek Chapter 5
17-Jul Thu              
18-Jul Fri              
19-Jul Sat 11 Recursion II          
20-Jul Sun 12 Analysis of Recursive Algorithms     04 Stacks & Queues

<html> <zip>

Lab Quiz1: Design Patterns & Linked Lists
21-Jul Mon 13 Trees HW2 Due         Preiss Chapter 9, Drozdek Chapter 6 and 7, Heap Sort (Drozdek pg 484)
22-Jul Tue 14 Binary Search Trees (BSTs)     05 Recursion

<html> <zip>

 
23-Jul Wed 15 Tree Traversal Algorithms          
24-Jul Thu              
25-Jul Fri              
26-Jul Sat 16 Heaps          
27-Jul Sun 17 AVL Trees I     06 Binary Trees & BST

<html> <zip>

 
28-Jul Mon 18 AVL Trees II          
29-Jul Tue 19 B-Trees     07 Binary Heaps

<html> <zip>

 
30-Jul Wed 20 Huffman Coding Quiz 2: on Complexity, Linked Lists, Stacks and Queues        
31-Jul Thu                
1-Aug Fri                
2-Aug Sat 21 Introduction to Graphs HW3 Assign         Preiss Chapter 16, Drozdek Chapter 8
3-Aug Sun 22 Graph Implementation     08 AVL Trees

<html> <zip>

 
4-Aug Mon 23 Graph Traversals          
5-Aug Tue 24 Graphs: Topological Sort     09 Huffman Coding

<html> <zip>

 
6-Aug Wed 25 Review HW3 Due        
7-Aug Thu              
8-Aug Fri              
9-Aug Sat 26 Review Midterm: from lecture 1 to lecture 20        
10-Aug Sun 27 Graphs: Cycles and Connectedness     10 Review Lab Quiz 2: Stack, Queue, BST 
11-Aug Mon 28 Graphs: Shortest Path Algorithm

(run the applet by C. Laffra at Pace University)

         
12-Aug Tue 29 Graphs: Minimum Spanning Tree (MST)     11 Graphs

<html> <zip>

 
13-Aug Wed 30 Hashing I HW4 Assign         Preiss Chapter 8
14-Aug Thu              
15-Aug Fri              
16-Aug Sat 31 Hashing II          
17-Aug Sun 32 Hashing III     12 Graph Algorithms

<html> <zip>

 
18-Aug Mon 33 Data Compression: LZ78           Slides, Drozdek Chapter 10
19-Aug Tue 34 Data Compression: LZW HW4 Due   13 Hashing

<html> <zip>

 
20-Aug Wed 35 Garbage Collection           Preiss Chapter 13, Drozdek Chapter 12
21-Aug Thu              
22-Aug Fri              
23-Aug Sat 36 Memory Management Quiz3: Graphs + Hashing        
24-Aug Sun 37 Review & Project Presentations   14 Review Lab Quiz 3: Heaps, Huffman, Graphs  
25-Aug Mon 38          
27-Aug Wed  

Final Exam As Posted by the  Registrar

 

 

 

                                        Download Software (portable versions)

                                        1. J2SE6 Documentation

                                        2. JCreator

                                        3. JGrasp

                                        4. JEdit

                                        5. SmartDraw

 

 

 

888  Best of luck!!  888

 

 

Data Structures and Algorithms in Java, 4th edition,

Michael T. Goodrich and Roberto Tamassia, 

John Wiley & Sons, 2006.

 

Data Structures, Algorithms, and Applications in Java, 2nd edition,

Sartaj Sahni,

Silicon Press, 2004.

 

Data Structures with Java,

William H. Ford and William R. Topp,

Prentice Hall, 2005.

 

Data Structures and the Java Collections Framework, 2nd edition,

William Collins,

McGraw-Hill, 2005.

 

Object-oriented Data Structures Using Java, 2nd edition,

N. Dale, D. Joyce, C. Weems,

Jones and Bartlett, 2006.

 

Data Structures and Algorithms in Java

Peter Drake,

Prentice-Hall, 2006.

 

 Data Structures & Other Objects Using Java:  Michael MainData Structures & Other Objects Using Java, 3rd edition,

Michael Main,

Addison-Wesley, 2006.

 

 

Data Structures and Problem Solving Using Java, 2nd edition

Mark Allen Weiss,

Addison-Wesley, 2001.
 

 

Introduction to Algorithms and Java CD-ROMIntroduction to Algorithms and Java CD-ROM,

Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Clifford Stein

Mc-Graw Hill, 2003

 

DSAA in Java 2/e Book Cover

Data Structures and Algorithm Analysis in Java, 2nd edition,

Mark Allen Weiss

Addison-Wesley, 2007

 

Robert Sedgewick,"Algorithms in Java, Part 5 Graph Algorithms"

Algorithms in Java, Parts 1-4 (Fundamental Algorithms, Data Structures, Sorting, Searching), 2002

Algorithms in Java, Part 5 (Graph Algorithms), 2003

Robert Sedgewick

 

          Others

 

Algorithms: Design Techniques and Analysis

M. H. Alsuwaiyel

World Scientific Publishing Company, 1998

 

 

The Algorithm Design Manual, 2nd edition,

 Steven S. Skiena

Springer, 2008

 

 Data Structures and Algorithms:  Alfred V. AhoData Structures and Algorithms

Alfred V. Aho, John E. Hopcroft, Jeffrey Ullman

Addison-Wesley, 1982
 

 

 

Fundamentals of Computer Algorithms

Ellis Horowitz

 

Data Structure Techniques

Thomas A. Standish

 

The Java Language Specification, Third Edition, Sun Microsystems, Inc. 2005

James Gosling
Bill Joy
Guy Steele
Gilad Bracha

 

 

The Design Patterns Java Companion, 1998 [online]  [pdf]

James W. Cooper