1. Course Description
This course introduces the basic concept of data representation and manipulation.
We will teach how to solve problems efficiently and effectively by using proper
and specific data structures, and organizing series of operations called
algorithms to manipulate data to solve the problems. For instance, you will be
able to understand how to use link list and hash function to create block
chains.
2. Prerequisite Course
C/C++ Programming Language

3. Text Books
Fundamentals of Data Structures in C++, E. Horowitz, S. Sahni, and D.
Mehta, 2nd ed., 2006.

4. References
Introduction to Algorithms, 3rd ed., by Cormen et al.
C++ reference (http://www.cplusplus.com/reference/)

5. Teaching Method: Online Lectures + In class discussions

6. Course Outline
Basic Concepts
Arrays
Stacks and queues
linked lists
Trees
Graphs
Sorting
Hashing
Selected related topics

7. Evaluation
In Class Exercises: 25%
Online Judge: 25%
Project 1: 15%
Project 2: 15%
Final Project: 20%

8. Weblink: ILMS (http://lms.nthu.edu.tw/)