トップページへ

2025 (Current Year) Faculty Courses School of Computing Undergraduate major in Computer Science

Data Structures and Algorithms

Academic unit or major
Undergraduate major in Computer Science
Instructor(s)
Hideki Koike
Class Format
Lecture (Face-to-face)
Media-enhanced courses
-
Day of week/Period
(Classrooms)
5-6 Tue (W9-324(W933)) / 5-6 Fri (W9-324(W933))
Class
-
Course Code
CSC.T271
Number of credits
200
Course offered
2025
Offered quarter
4Q
Syllabus updated
Apr 2, 2025
Language
Japanese

Syllabus

Course overview and goals

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.

Course description and aims

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

  • 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/Objectives

Course schedule Objectives
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.

Study advice (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)

Evaluation methods and criteria

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

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.