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.
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
list, stack, tree, binary search, graph algorithm, sorting, divide-and-conquer, dynamic programming, string matching
|✔ Specialist skills||Intercultural skills||Communication skills||Critical thinking skills||✔ Practical and/or problem-solving skills|
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|
|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 13||Advanced algorithms||Learn more advanced algorithms|
|Class 14||Final exam.|
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.
Suppliment materials are provided in the class
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)
Midterm exam (30%)
Programming exercise or report (40%)
Final exam (30%)
No prerequisities. It is desirable to finish the related courses.
COVID-19 precautions may limit the number of students. In that case, the students of computer science department have a priority.