User Tools

Site Tools


courses:ds2015:main

Data Structures, Fall 2015

This is an introductory course on data structures, concerning the various ways of organizing data so that the data can be accessed and manipulated efficiently by an application. A central concept is that of an abstract data type, which is a collection of data and a set of operations on the data. The course therefore focuses on the fundamental concepts, techniques, and tools for the design and implementation of abstract data types, following the teaching of object-oriented design and programming for computer problem solving.

Announcements

  • 01/31: Grade Report available; contact Yih-Kuen Tsay by 5PM 02/01 if you have any question or request.
  • 01/10: draft versions of solutions to HW#7-9: HW#7 and HW#8, HW#9.
  • 01/06: HW#10 due 01/18.
  • 01/04: slides for Graphs available.
  • 01/04: slides from TA sessions: TA Session #4.
  • 12/28: slides from TA sessions: TA Session #3.
  • 12/28: slides for Balanced Search Trees available.
  • 12/21: HW#9 due 12/28.
  • 12/21: slides for Heaps available.
  • 12/14: HW#8 due 12/21.
  • 12/14: slides for Trees (the Implementations part) available.
  • 12/07: slides for Trees (the ADT part) available.
  • 11/30: HW#7 due 12/07.
  • 11/30: slides for Queues available.
  • 11/23: slides for Algorithms Efficiency and for Sorting available (revised 11/29).
  • 11/21: slides for Lists (the ADT part) available.
  • 11/19: HW#5 due 11/30.
  • 11/16: slides for Stacks: Implementations available (revised 11/17).
  • 11/07: slides from TA sessions: TA Session #2.
  • 11/02: HW#6 due 11/16; HW#5 will be given shortly.
  • 11/02: slides for Stacks: The ADT and Its Uses available.
  • 10/27: reminder: there will be a TA session on 11/02.
  • 10/27: slides for lectures on 10/19 and 10/26 revised.
  • 10/26: HW#4 due 11/02.
  • 10/26: slides for Link-Based Implementations available.
  • 10/19: HW#3 due 10/26.
  • 10/13: slides from TA sessions: TA Session #1.
  • 10/11: slides for Advanced Constructs of C++ and for Array-Based Implementations along with example programs available.
  • 10/11: HW#2 due 10/19.
  • 10/05: slides for Recursion available.
  • 09/21: HW#1 due 10/05.
  • 09/21: slides for Data Abstraction available.
  • 09/14: this website announced.

Instructor

Yih-Kuen Tsay (蔡益坤), NTU IM Dept., 3366-1189, Xtsay@ntu.edu.twX (between the enclosing pair of X's).
With guest lectures by Prof. Chien Chin Chen and Prof. Ling-Chieh Kung.

Lectures

Monday 2:20~5:20PM, Room 103, Management Building 1.
TA sessions will be scheduled prior to some of the class meetings between 1:20 and 2:10PM; see the course schedule below.

Office Hours

Tuesday 1:30~2:00PM, Wednesday 1:30~2:00PM, or by appointment, Room 1108, Management Building 2.

TAs

Passion Tsai (蔡培暄), Xpassion13920@gmail.comX (between the enclosing pair of X's).
Po-Chuan Chien (簡伯銓), Xr04725015@ntu.edu.twX (between the enclosing pair of X's).

Textbooks

  • [CH] F.M. Carrano and T. Henry, “Data Abstraction and Problem Solving with C++: Walls and Mirrors,” 6th Edition, Pearson, 2013 (International Edition).
  • Supplementary readings.

The course will cover most of the main textbook [CH] in essentially the same order, plus supplementary readings. (Note: a TA session will precede a class meeting whose date is marked with an *. There are four TA sessions on 10/12, 11/02, 11/30, and 12/28.)

  • Introduction (.5 week: 9/14a)
  • Data Abstraction [CH: Ch. 1] (1 week: 9/14b, 9/21a) [slides]
  • Recursion [CH: Ch. 2,5] (1.5 weeks: 9/21b, 10/05) [slides]
  • C++: Advanced Constructs [CH: C++ Interludes] (2 weeks: 10/12*, 10/19b, 10/26b) [slides: Part 1, Part 2, Part 3]
  • Array-Based Implementations [CH: Ch. 3] (.5 week: 10/19a) [slides, example programs]
  • Link-Based Implementations [CH: Ch. 4] (.5 week: 10/26a) [slides, example programs]
  • Stacks: The ADT and Its Uses [CH: Ch. 6] (1 week: 11/02*) [slides]
  • Midterm (2015/11/09)
  • Stacks: Implementations [CH: Ch. 7] (.5 week: 11/16a) [slides]
  • Lists [CH: Ch. 8,9] (.5 week: 11/16b) [slides: ADT, Implementations]
  • Algorithm Efficiency [CH: Ch. 10] (.5 week: 11/23a) [slides]
  • Sorting and Efficiency [CH: Ch. 11] (.5 week: 11/23b) [slides]
  • Queues [CH: Ch. 13,14] (1 week: 11/30*) [slides: ADT, Implementations]
  • Trees [CH: Ch. 15,16] (2 weeks: 12/07, 12/14) [slides: ADT, Implementations]
  • Heaps [CH: Ch. 17] (1 week: 12/21) [slides]
  • Balanced Search Trees [CH: Ch. 19] (1 week: 12/28*) [slides]
  • Graphs [CH: Ch. 20] (1 week: 2016/01/04) [slides]
  • Final (2016/01/11)

References

Grading

Homework (including programming exercises) 30%, Participation 10%, Midterm 30%, Final 30%.

courses/ds2015/main.txt · Last modified: 2016/05/04 11:18 by tsay