### 2022　Data Structures and Algorithms

Font size  SML

Instructor(s)
Koike Hideki
Class Format
Lecture    (Face-to-face)
Media-enhanced courses
Day/Period(Room No.)
Tue5-6(W933)  Fri5-6(W933)
Group
-
Course number
CSC.T271
Credits
2
2022
Offered quarter
4Q
Syllabus updated
2022/4/20
Lecture notes updated
-
Language used
Japanese
Access Index

### Course description and aims

This course teaches the basics of data structures and algorithms in computer science. In the first half period, students will learn basic data structures and algorithms, In the second half period, students will learn advanced topics of algorithms.

### Student learning outcomes

Each student will obtain:
(1) knowledge of data types and algorithms which are bases of computer science
(2) implementation of these data types and algorithms in C programming language
(3) knowledge of each algorithm's efficency

### Keywords

list, stack, tree, binary search, graph algorithm, sorting, divide-and-conquer, dynamic programming, string matching

### Competencies that will be developed

 ✔ Specialist skills Intercultural skills Communication skills Critical thinking skills ✔ Practical and/or problem-solving skills

### Class flow

After each lecture, homeworks are given to students. In the homework, students will learn how to implement the data structures and algorithms in C programming language.

### Course schedule/Required learning

Course schedule Required learning
Class 1 Introduction to algorithms Understand what is algorithm, abstract data types, computational efficiency.
Class 2 Abstract data types, computational efficiency Understand abstract data types, computational efficiency.
Class 3 Basic data types: graphs, trees, binary treeslists, stacks, queues Understand graphs, trees, and binary trees.Understand lists, stacks, and queues.
Class 4 Basic data types: graphs, trees, binary trees Understand graphs, trees, and binary trees.
Class 5 Basic data types: dictionary, hash Understand dictionaries and hash
Class 6 Ordered sets: heaps, binary search trees, balanced tree Learn ordered sets such as heaps, binary search trees, balanced trees
Class 7 Mid. exam.
Class 8 Sorting: bubble sort, insertion sort, selection sort Learn sorting algorithms
Class 9 Sorting: heap sort, merge sort, quicksort Learn sorting algorithms
Class 10 Graph algorithms: graph data structures, depth first search, breadth first search Learn graph algorithms:
Class 11 Graph algorithms: shortest path (Dijkstra, Floyd-Warshall), minimum spanning tree (Kruskal, Prim) Learn graph algorithms:
Class 12 String matching Understand string matching algorithm
Class 14 Final exam.

### Out-of-Class Study Time (Preparation and Review)

To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.

### Textbook(s)

Suppliment materials are provided in the class

### Reference books, course materials, etc.

Toshihide Ibaraki：Algorithms and Data Structures in C (in Japanese)，Ohmsha，ISBN 978-4-274-21604-6
R. Sedgewick: Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching (English Edition).
R. Sedgewick: Algorithms in C, Part 5: Graph Algorithms (English Edition)

### Assessment criteria and methods

Midterm exam (30%)
Programming exercise or report (40%)
Final exam (30%)

### Related courses

• GRE.C101 ： Foundations of Computer Science I
• GRE.C102 ： Foundations of Computer Science II
• CSC.T243 ： Procedural Programming Fundamentals
• CSC.T253 ： Advanced Procedural Programming
• LAS.I121 ： Computer Science I
• LAS.I122 ： Computer Science II

### Prerequisites (i.e., required knowledge, skills, courses, etc.)

No prerequisities. It is desirable to finish the related courses.

### Other

COVID-19 precautions may limit the number of students. In that case, the students of computer science department have a priority.