About CS2351, Spring 2018

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 2018

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

Location

  • Delta 103

People

Supporting this course

Instructor:

Yi-Shin Chen

Yi-Shin Chen

This is the first time she offers this course. 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
  • office hours: Mondays 9:00-10:00

Teaching Assistants:

Ting-Wei Liu

Refu Liu
  • email: celestial0523@gmail.com
  • office: Delta 701
  • office hours: By email appointment

Evan Yu

Evan Yu
  • email: evan800112@gmail.com
  • office: Delta 701
  • office hours: By email appointment

Syllabus

Orientation

2018/2/26 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

2018/3/05, 2018/3/07 for 5 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 3/5 18:30-20:30 at 326

Related Videos

C++ Review

2018/3/12, 2018/3/14 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 1: due at 2018/3/14 23:59:59

Related Videos

Arrays

2018/3/19, 2018/3/21 for 5 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

  • Night class at 3/19 18:30
  • Reading: Chapter 2 of our textbook

Related Videos

Stacks and Queues

2018/3/26, 2018/3/28 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

Related Videos

Linked Lists

2018/4/2, 2018/4/9 for 6 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 2018/4/1 23:59:59
  • Online Judge Quiz for Stacks and Queues at 4/2 18:30-20:30 at 326
  • Reading: Chapter 4 of our textbook

Related Videos

Trees

2018/4/11, 2018/4/16, 2018/4/18 for 6 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 2018/4/15 23:59:59
  • Online Judge Quiz for Linked Lists at 4/16 18:30-20:30 at 326
  • Reading: Chapter 5 of our textbook

Related Videos

Midterm Examination

2018/4/23 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

2018/4/30, 2018/5/02, 2018/5/07, 2018/5/09 for 8 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 2018/4/30 23:59:59
  • Online Judge Quiz for Tree at 5/07 18:30-20:30 at 326
  • Reading: Chapter 6 of our textbook

Related Videos

Sorting

2018/5/14, 2018/5/16, 2018/5/21, 2018/5/23 for 8 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 2018/5/14 23:59:59
  • Online Judge Quiz for Graphs at 5/21 18:30-20:30 at 326
  • Reading: Chapter 7 of our textbook

Related Videos

Hashing and Advanced Topics

2018/5/28, 2018/5/30, 2018/6/04, 2018/6/6 for 8 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

  • Assignment 6: due at 2018/5/28 23:59:59
  • Online Judge Quiz for Sorting at 6/04 18:30-20:30 at 326
  • Reading: Chapter 9.3 and 10 of our textbook

Related Videos

Final Examination

2018/6/11 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