Course Title : Introduction to Algorithms and Data Structures

Code 91150
Course Year 1st year
Term
Class day & Period
Location
Credits 2
Restriction No Restriction
Lecture Form(s)
Language Japanese
Instructor

Course Description

Algorithms and data structures are two fundamental components of computer programs. This course gives their basic concepts, design principles, techniques, and other important concepts in computer science.

Grading

Mid-term and final examinations

Course Goals

The goals of the course is to understand: - mathematical models of computers and concepts of computational complexity, - basic algorithms and data structures, - design principles of algorithms, such as divide-and-conquer method and dynamic programming, - classes of hard problems and solutions to them, and - basic ideas of graph algorithms, approximation algorithms, and online algorithms.

Course Topics

Theme Class number of times Description
Introduction 1 Overview
algorithms 2.5 sorting, search, ...
data structures 2.5 list, stack, queue, binary search, heap, hash, ...
algorithm design 2 divide-and conquer, dynamic programming, ...
graph algorithms 2 - Trees and graphs - depth-/breadth-first search - shortest path algorithms - maximum-flow algorithms
computational complexity 3 P, NP, NP-complete, NP-hard, ...
advanced topics 1 approximation and online algorithms
final exam 1

Textbook

will be specified in the lectures

Textbook(supplemental)

will be specified in the lectures

Prerequisite(s)

Web Sites

Additional Information