User Tools

Site Tools


courses:ds2017:main

Data Structures, Fall 2017

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/22: Grade Report available; contact Yih-Kuen Tsay by 5PM 01/23 if you have any question or request.
  • 01/03: slides from TA sessions: TA Session #4.
  • 12/18: slides for Graphs available.
  • 12/18: HW#10 due 2018/01/02.
  • 12/11: HW#9 due 12/25.
  • 12/11: slides for Balanced Search Trees available.
  • 12/04: slides for Dictionaries and for Hashing available.
  • 11/27: HW#8 due 12/04.
  • 11/20: slides from TA sessions: TA Session #3.
  • 11/20: slides for Heaps available.
  • 11/13: HW#7 due 11/20.
  • 11/13: slides for Trees (Terminology and ADTs) and for Tree Implementations available.
  • 10/30: slides from TA sessions: TA Session #1, TA Session #2.
  • 10/30: HW#6 due 11/13.
  • 10/30: slides for Queues available.
  • 10/23: old exams.
  • 10/23: slides for Algorithm Efficiency and for Sorting available.
  • 10/16: HW#5 due 10/30.
  • 10/16: slides for Lists: The ADT and Its Uses and for Lists: Implementations available.
  • 10/16: HW#4 due 10/23.
  • 10/16: Ceiba course site (ID: 1061ds2017) ready; entering via theCeiba main site gets better functionality (as advised by Ceiba developers).
  • 10/02: HW#3 due 10/16.
  • 10/02: slides for Stacks: The ADT and Its Uses and for Stacks: Implementations available
  • 09/29: slides for Link-Based Implementations along with example programs available.
  • 09/25: HW#2 due 10/02.
  • 09/25: slides for Review of C++ and for Array-Based Implementations along with example programs available.
  • 09/18: HW#1 due 09/25.
  • 09/18: slides for Recursion available.
  • 09/11: slides for Data Abstraction available.
  • 09/08: website announced. This website is the primary source of all up to date course information and syllabus of Data Structures 2017; there is no separate PDF version for the syllabus.

Instructor

Yih-Kuen Tsay (蔡益坤), NTU IM Dept., 3366-1189, Xtsay@ntu.edu.twX (between the enclosing pair of X's).

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

Carlos Chang (張永叡), Xjake080449@gmail.comX (between the enclosing pair of X's).
Hung-Chih Chen (陳泓志), Xr06725012@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/16, 10/30, 11/20, and 12/25.)

  • Introduction (1/3 week: 9/11a)
  • Data Abstraction [CH: Ch. 1] (2/3 week: 9/11b) [slides]
  • Recursion [CH: Ch. 2,5] (1 week: 9/18) [slides]
  • C++: A Review [CH: C++ Interludes] (1 week: 09/25a, 09/30a) [slides: Part 1] (other parts are merged to the following two sets of slides)
  • Array-Based Implementations [CH: Ch. 3] (.5 week: 09/25b) [slides, example programs]
  • Link-Based Implementations [CH: Ch. 4] (.5 week: 09/30b) [slides, example programs]
  • Stacks: The ADT and Its Uses [CH: Ch. 6] (1 week: 10/02) [slides]
  • Stacks: Implementations [CH: Ch. 7] (.5 week: 10/16a*) [slides]
  • Lists [CH: Ch. 8,9] (.5 week: 10/16b) [slides: ADT, Implementations]
  • Algorithm Efficiency [CH: Ch. 10] (.5 week: 10/23a) [slides]
  • Sorting and Efficiency [CH: Ch. 11] (.5 week: 10/23b) [slides]
  • Queues [CH: Ch. 13,14] (1 week: 10/30*) [slides: ADT, Implementations]
  • Midterm (2017/11/06)
  • Trees [CH: Ch. 15,16] (2 weeks: 11/13, 11/20*) [slides: ADT, Implementations]
  • Heaps [CH: Ch. 17] (1 week: 11/27) [slides]
  • Dictionaries [CH: Ch. 18] (.5 week: 12/04a) [slides]
  • Hashing [CH: Ch. 18] (.5 week: 12/04b) [slides]
  • Balanced Search Trees [CH: Ch. 19] (1.5 weeks: 12/11, 12/18a*) [slides]
  • Graphs [CH: Ch. 20] (1.5 weeks: 12/18b, 12/25) [slides]
  • Final (2018/01/08)

References

Grading

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

courses/ds2017/main.txt · Last modified: 2018/03/19 11:06 by tsay