About CS2351 Data Structures, Spring 2024

The objective of this course is to provide a solid training for understanding various data structures. Data structures can be considered as essential building blocks in modern computer science. The concepts covered in this course include:
  1. Introduction to Algorithm
  2. Arrays
  3. Stacks
  4. Queues
  5. Linked lists
  6. Trees
  7. Graphs
  8. Sorting
  9. Hashing
  10. And other advanced topics

Textbook

Fundamentals of Data Structures in C++, 2nd ed., by Horowitz et al.

Time in 2024

  • Monday 10:10-12:00, 18:30-20:30
  • Wednesday 9:00-9:50

Locations

  • Delta Building 105 (Main Room)
  • Delta Building 107 (Main Overflow Room)
  • Delta Building 104 (Second Overflow Room)
  • Online in Microsoft Teams

People

Supporting this course

Instructor:

Yi-Shin Chen

Yi-Shin Chen

Her current research interests are: social networks, data mining, emotion analysis, and web intelligence.

  • email: yishin@gmail.com
  • phone: +886-3-573-1211
  • office: Delta 607

Teaching Assistants:

Yu-Ping (Vivian) Ma

Yu-Ping (Vivian) Ma
  • vivian212332@gapp.nthu.edu.tw
  • office: Delta 701

Kuan-Hao Yeh

Kuan-Hao Yeh
  • yeskey525@gmail.com
  • office: Delta 701

Hao-Ze (Arthur) Wang

Hao-Ze (Arthur) Wang
  • haoze@gapp.nthu.edu.tw
  • office: Delta 701

Gerraldo Candra

Gerraldo Silakumaro Candra
  • gerraldosc@gmail.com
  • office: Delta 701

Nguyen Dang Hoang Khang

  • khanghoang0902@gmail.com
  • office: Delta 701

Achita (Kenji) Chitraphan

Achita (Kenji) Chitraphan
  • achita2005.tech.inc@gmail.com

Aurick (Daniel) Setiadi

Aurick (Daniel) Setiadi
  • aurickd@gmail.com

Angelina Panyananda

Angelina Panyananda
  • angiepcnl@gmail.com

Syllabus

Orientation

2024/2/19 for 2 hours

You will get familiar with the course, the instructor, your classmates, and the learning environment. The overview of the course will also be covered during the same session.

Activities

Introduction to Algorithm

2024/2/26, 2024/3/04 for 4 hours

Computer Science can be viewed as the study of algorithms (and data). In this session, we will briefly introduce the concepts of algorithms and the tool for Online Judge Practice.

Activities

  • Reading: Chapter 1 of our textbook
  • Join Lab at 2/26 18:30-20:30 at Teams

Related Videos

C++ Review

2024/3/6, 2024/3/11 for 3 hours

C++ is an object-oriented and generic programming language. In this session, we will briefly review/introduce its important features.

Activities

  • Assignment 0: due at 2024/3/10 23:59:59
  • Join Online Judge Quiz at 3/11 18:30-20:30 at Teams

Related Videos

Arrays

2024/3/13, 2024/3/18 for 3 hours

"The array is often the only means for structuring data which is provided in a programming language." "An array is a set of pairs, index and value. For each index which is defined, there is a value associated with that index." In this session, we will introduce the details of this data structure.

Activities

  • Reading: Chapter 2 of our textbook

Related Videos

Stacks and Queues

2024/3/20, 2024/3/25 for 3 hours

"Two of the more common data objects found in computer algorithms are stacks and queues. Both these data objects are special cases of the more general data object, an ordered list which we considered in the previous chapter." In this session, we will introduce the details of this data structure.

Activities

  • Reading: Chapter 3 of our textbook
  • Assignment 1: due at 2024/3/31 23:59:59
  • Join Online Judge Quiz for Stacks and Queues at 4/01 18:30-20:30 at Teams

Related Videos

Linked Lists

2024/3/27, 2024/4/01, 2024/4/08 for 4 hours

In a linked list, the items of list may be placed anywhere in memory. "To access elements in the list in the correct order, with each element we store the address or location of the next element in that list. Thus, associated with each data item in a linked representation is a pointer to the next item. This pointer is often referred to as a link." In this session, we will introduce the details of this data structure.

Activities

  • Assignment 2: due at 2024/4/14 23:59:59
  • 4/11 Meet in Teams
  • Online Judge Quiz for Linked Lists at 4/15 18:30-20:30 at Teams
  • Reading: Chapter 4 of our textbook

Related Videos

Trees

2024/4/08, 2024/4/10, 2024/4/15, 2024/4/18 for 5 hours

"A tree structure means that the data is organized so that items of information are related by branches" In this session, we will introduce the details of this data structure.

Activities

  • Assignment 3: due at 2024/4/28 23:59:59
  • Online Judge Quiz for Trees at 4/29 18:30-20:30 at Teams
  • Reading: Chapter 5 of our textbook

Related Videos

Midterm Examination

2024/4/22 for 2 hours

Time to evaluate. Different from other examination in our life, we do not want to assess how much we remember. It is more important to know how much we understand. Hence, each student can bring one A4-page paper with all kinds of notes into the classroom. Enjoy.

Notes

  • Students can take one A4 page with them

Graphs

2024/4/29, 2024/5/1, 2024/5/6 for 5 hours

"Graphs have been used in a wide variety of applications. Some of these applications are: analysis of electrical circuits, finding shortest routes, analysis of project planning, identification of chemical compounds, statistical mechanics, genetics, cybernetics, linguistics, and social sciences." In this session, we will introduce the details of this data structure.

Activities

  • Assignment 4: due at 2024/5/12 23:59:59
  • Online Judge Quiz for Graph at 5/13 18:30-20:30 at Teams
  • Reading: Chapter 6 of our textbook

Related Videos

Sorting

2024/5/08, 2024/5/13, 2024/5/15 for 4 hours

"Sorting can be viewed as an aid in searching, and as a means for matching entries in files. Sorting also finds application in the solution of many other more complex problems, e.g. from operations research and job scheduling. In fact, it is estimated that over 25% of all computing time is spent on sorting with some installations spending more than 50% of their computing time sorting files. Consequently, the problem of sorting has great relevance in the study of computing." In this session, we will introduce the details of different sorting techniques.

Activities

  • Assignment 5: due at 2024/5/26 23:59:59
  • Online Judge Quiz for Sorting at 5/27 18:30-20:30 at Teams
  • Reading: Chapter 7 of our textbook

Related Videos

Hashing and Advanced Topics

2024/5/20, 2024/5/22, 2024/5/27, 2024/5/29 for 6 hours

Hashing is a different indexing technique as compared to tree. The address is obtained by computing some arithmetic function. In this session, we will introduce the details of hashing techniques and other advanced topics.

Activities

  • Reading: Chapter 9.3 and 10 of our textbook

Related Videos

Final Examination

2024/6/3 for 2 hours

Time to evaluate. Different from other examination in our life, we do not want to assess how much we remember. It is more important to know how much we understand. Hence, each student can bring one A4-page paper with all kinds of notes into the classroom. Enjoy.

Notes

  • Students can take one A4 page with them