Data Structures and Algorithms, Fall 2024

(311116030)

Course Description

This course provides an introduction to 1) some fundamental mathematics for modeling computational problems, 2) data structures for storing and accessing information together with relationships between the items being stored, and 3) classic algorithms for efficiently finding solutions to real-world problems. The course emphasizes the relationship between theory and programming to ensure that students are able to use basic data structures and classic algorithms in practice, and to evaluate the cost of a particular data structure or algorithm. For programming, we use the C++ language.

General Information

Grading

Prerequisites

Teaching materials

Topics (subject to change)

Weekly Exercises (not graded)

(no need to hand in, but two or three questions will appear in exams)

Assignments and Projects (graded, see scores)

All deadlines are Beijing time (GMT+8).

Schedule (subject to change)

Week Date Topics Readings Notes
1 02/09/24 Syllabus, Intro I.1
2 09/09/24 Set, relations, and functions theory I.2
3 14/09/24 Algorithm Analysis I.3 Hw 1
4 23/09/24 Lists, Stacks, and Queues (I) II.4
5 30/09/24 Lists, Stacks, and Queues (II) II.4 Hw 2
6 12/10/24 C++ Programming Any C++ text
7 14/10/24 Proj 1 Lab class
8 21/10/24 Trees II.5, 6
9 28/10/24 Sorting III.7, 8 Hw 3
10 04/11/24 Searching, Hashing III.9
11 11/11/24 Proj 2 Lab class
12 18/11/24 Indexing & Advanced Trees III.10, IV.13
13 25/11/24 Graphs IV.11 Hw 4
14 02/12/24 Algorithm Design Weiss: Ch. 10
15 09/12/24 Proj 3 Lab class
16 16/12/24 Course Wrap Up
Exam 23/12/24 2pm-4pm, B405, 1st Teach. Build.

This schedule is tentative and subject to change.

Rules and Policies