Hsuan-Tien Lin

Home | MOOCs | Courses | Research Group | Awards | Publications | Presentations | Programs


Data Structures and Algorithms

Course Description

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.

Course Information

Announcements

Course Plan

datesyllabusplandocuments and reading assignments
02/24 class introduction (taught by Prof. Roger Jang)
03/02, 03/03 DSA introduction and some C++ introduction (Chapter 1)
03/09, 03/10 C++ introduction (Chapter 1) and arrays (Section 3.1) homework 1 announced
03/16, 03/17 arrays (Section 3.1), linked lists (Section 3.2), and GitHub (guest lecture)
03/23,03/24 linked lists (Section 3.2), recursion (Section 3.3), analysis tools (Chapter 4) homework 1 due; homework 2 announced
03/30, 03/31 analysis tools (Chapter 4), stack (Section 5.1)
04/06, 04/07 no class on 04/06 because of spring vacation; stack (Sections 5.1) homework 3 announced
04/13, 04/14 queue/deque/list/iterator (Section 5.2 to Chapter 6) homework 2 due
04/20, 04/21 no class on 04/20 because of last-minute studying; midterm exam on 04/21 final project announced
  • midterm range: Chapters 1, 3, 4, 5, 6 of textbook
04/27, 04/28 tree (Chapter 7) homework 3 due; homework 4 announced
05/04, 05/05 heaps and priority queues (Chapter 8)
05/11, 05/12 hash tables and maps (Sections 9.1, 9.2, 9.3) homework 4 due; homework 5 announced
05/18, 05/19 hash tables and skip lists (Sections 9.3 and 9.4)
05/25, 05/26 binary tree and AVL tree (Sections 10.1, 10.2) homework 5 due; homework 6 announced
06/01, 06/02 (2, 4)-tree and red-black tree (Sections 10.4, 10.5)
06/08, 06/09 sorting (Sections 11.1, 11.2, 11.3) homework 6 due
06/15, 06/16 more about sorting (continue from previous week) and summary
06/22, 06/23 no classes and good luck with your other finals final project due on 07/01

Last updated at CST 09:36, June 22, 2015
Please feel free to contact me: htlin.email.png
Valid HTML 4.0!