Good program comes from appropriately using the "resources" on the computer. There are two types of key resources: computational units (CPU, FPU, etc.) and storage units (memory, disk, etc., along with channels and networks). Data Structures and Algorithms discuss how to use those two types of resources suitably and effectively. Traditionally, data structures aim at the use of storage units, while algorithms aim at the use of computational units. But the two aims are actually inseparable: succinct data structures require coupling with corresponding algorithms; efficient algorithms require coupling with corresponding data structures. The course, designed as a required course for NTU CSIE students in the freshman year, introduces basic data structures and their corresponding algorithms. We will move from the concrete side of implementing basic data structures to the abstract side of analyzing the complexity of storage and computation.
date  syllabus  teaching plan  documents and reading assignments 
02/21 
 homework 1 announced on 2/23 

02/28  no class because of Peace Memorial Day 
 
03/06 
 homework 1 due on 3/7  
03/13 

homework 2 announced on 3/14  
03/20 
 
03/27 

homework 2 due on 3/28; homework 3 announced 

04/03  no class because of Spring Break  
04/10 

homework 3 due on 4/13; homework 4 announced 

04/17 

homework 4 due on 4/20 

04/24  midterm exam (Chapters 1 to 6, including all supplmentary materials taught in class, excluding Chapter 2)  
05/01  tree/heap  homework 5 announced 

05/08  priority queue/hash table 


05/15  hash table/skip list  homework 5 due 

05/22  avl tree/234 tree  homework 6 announced 

05/29  234 tree/redblack tree 


06/05  sorting  homework 6 due 

06/12  no class because of heavy rain  
06/19  sorting/string/final words  final project competition end (6/19); final project due (6/29) 
