Seoul National University
M1522.000900 Data Structure
Spring 2025 - 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 5 Introduction
10 Data Structures and Algorithms (Chapter 1)
12 Mathematical Preliminaries (Chapter 2)
17 Mathematical Preliminaries 2 (Chapter 2)
19 Algorithm Analysis (Chapter 3)
24 Algorithm Analysis 2 (Chapter 3) Homework 1 out
26 Lists, Stacks, and Queues (Chapter 4)
31 Lists, Stacks, and Queues 2 (Chapter 4)
April 2 Lists, Stacks, and Queues 3 (Chapter 4): use last lecture's slide Programming 1 out
7 Binary Trees (Chapter 5)
9 Binary Trees 2 (Chapter 5)
14 Binary Trees 3 (Chapter 5)
16 Binary Trees 4 (Chapter 5) Homework 2 out
21 Q&A Session
23 Midterm exam
28 Non-Binary Trees (Chapter 6)
30 Non-Binary Trees 2 (Chapter 6) Programming 2 out
May 5 Internal Sorting (Chapter 7)
7 Internal Sorting 2 (Chapter 7) Homework 3 out
12 Internal Sorting 3 (Chapter 7)
14 Internal Sorting 4 (Chapter 7) Programming 3 out
19 Searching (Chapter 9)
21 Searching 2 (Chapter 9)
26 Searching 3 (Chapter 9) Homework 4 out
28 Graphs (Chapter 11)
June 2 Graphs 2 (Chapter 11)
4 Graphs 3 (Chapter 11) Programming 4 out
9 Guest lecture
11 Conclusion
16 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