Seoul National University
M1522.000900 Data Structure
Spring 2024 - U Kang

Course Information

This undergraduate level course covers fundamental algorithms and data structures used in computer programming. Data structures are ways of organizing data within a computer's storage so that some desired operations may be performed on that data easily or efficiently. Algorithms are sequences of operations that, usually, take some input data and produce some desired output. Together, they form the foundation of computer programming.
The topics to be covered include abstract data types, trees, hashing, sorting, graphs, string match, and algorithm design techniques.

Schedule

Date Topic Notice
March 4 Introduction
6 Data Structures and Algorithms (Chapter 1)
11 Mathematical Preliminaries (Chapter 2)
13 Mathematical Preliminaries 2 (Chapter 2) Homework 1 out
18 Algorithm Analysis (Chapter 3)
20 Algorithm Analysis 2 (Chapter 3) Homework 2 out
25 Lists, Stacks, and Queues (Chapter 4)
27 Lists, Stacks, and Queues 2 (Chapter 4) Programming 1 out
April 1 Lists, Stacks, and Queues 3 (Chapter 4): use last lecture's slide Homework 3 out
3 Binary Trees (Chapter 5)
8 Binary Trees 2 (Chapter 5)
10 Binary Trees 3 (Chapter 5) Programming 2 out
15 Discussion on Binary Trees, and Q&A Session
17 Midterm exam
22 Binary Trees 4 (Chapter 5) Homework 4 out
24 Non-Binary Trees (Chapter 6)
29 Non-Binary Trees 2 (Chapter 6) Homework 5 out
May 6 Internal Sorting (Chapter 7)
8 Internal Sorting 2 (Chapter 7) Programming 3 out
13 Internal Sorting 3 (Chapter 7)
15 Internal Sorting 4 (Chapter 7) Homework 6 out
20 Searching (Chapter 9)
22 Searching 2 (Chapter 9) Programming 4 out
27 Searching 3 (Chapter 9) Homework 7 out
29 Graphs (Chapter 11)
June 3 Graphs 2 (Chapter 11)
5 Graphs 3 (Chapter 11) Homework 8 out
10 Conclusion
12 Final exam

Grading

Late policy - for all deliverables:

Textbook

The text book is
A Practical Introduction to Data Structures and Algorithm Analysis, Edition 3.2 (Java Version), Mar 28, 2013 by Cliff A. Shaffer. (available in online)

Prerequisite