The purpose of this course is to understand basic philosophies used in handling discrete information and/or discrete structure which are essential in computer and information processing, and to acquire basic methods for handling discrete information and/or discrete structure.
Students will be able to understand the basic concepts of graph theory, and will be able to acquire basic methods for design and analysis of algorithms. Also, students will be able to understand the principle of algorithms and the relation between the property of a discrete structure and the efficiency of an algorithm, and to apply basic methods in the field of information and communications engineering.
graph, algorithm, computational complexity
✔ Specialist skills | Intercultural skills | Communication skills | Critical thinking skills | Practical and/or problem-solving skills |
It is essential to handle discrete information and/or discrete structure in computer and information processing. This course discusses basic properties of graphs from an algorithmic point of view, and provides the basic concepts for the analysis of algorithms and basic algorithms for graphs. Also, an overview of the design methodologies for algorithm and an overview of the theory of NP-completeness are introduced. In principle, one exercise session corresponds to the previous two lectures. An exercise session includes concrete problems related to the contents of the previous two lectures and students will be able to apply the knowledge and methods acquired during the lectures to practical problems.
Course schedule | Required learning | |
---|---|---|
Class 1 | Graph and its representation | Explain the overview of concept of graph and its representation |
Class 2 | Tree and forest | Explain the overview of concept of tree and forest |
Class 3 | Exercise | Review the course contents. Use the exercise problems to better understand the topics covered, and evaluate one's own progress. |
Class 4 | Bipartite graph, graph coloring, Eulerian graph, and Hamiltonian graph | Explain the overview of concept of bipartite graph, graph coloring, Eulerian graph, and Hamiltonian graph |
Class 5 | Asymptotic evaluation of function | Explain the overview of concept asymptotic evaluation of function |
Class 6 | Exercise | Review the course contents. Use the exercise problems to better understand the topics covered, and evaluate one's own progress. |
Class 7 | Analysis of algorithm | Explain the overview of concept analysis of algorithm |
Class 8 | Sorting algorithm | Explain the concept of efficient sorting algorithm |
Class 9 | Exercise | Review the course contents. Use the exercise problems to better understand the topics covered, and evaluate one's own progress. |
Class 10 | Midterm exam and the summary of the first part of the course | Test the level of understanding and evaluate the achievement for the first part of the course |
Class 11 | Search algorithm | Explain the overview of depth-first-search and breath-first-search |
Class 12 | Shortest path algorithm | Explain the overview of Dijkstra's shortest path algorithm |
Class 13 | Exercise | Review the course contents. Use the exercise problems to better understand the topics covered, and evaluate one's own progress. |
Class 14 | Maximum spanning tree algorithm | Explain the overview of Kruskal's maximum spanning tree algorithm |
Class 15 | Design methodologies of algorithm | Explain the overview of design methodologies of algorithm |
Class 16 | Greedy algorithm | Explain the overview of concept of greedy algorithm |
Class 17 | Exercise | Review the course contents. Use the exercise problems to better understand the topics covered, and evaluate one's own progress. |
Class 18 | Complexity of computation (P and NP) | Explain the overview of concept of complexity of computation (P and NP) |
Class 19 | Approximate algorithm | Explain the overview of concept of approximate algorithm |
Class 20 | Exercise | Review the course contents. Use the exercise problems to better understand the topics covered, and evaluate one's own progress. |
Class 21 | Final exam and the summary of the second part of the course | Test the level of understanding and evaluate the achievement for the second part of the course |
To enhance effective learning, students are encouraged to spend a certain length of time outside of class on preparation and review (including for assignments), as specified by the Tokyo Institute of Technology Rules on Undergraduate Learning (東京工業大学学修規程) and the Tokyo Institute of Technology Rules on Graduate Learning (東京工業大学大学院学修規程), for each class.
They should do so by referring to textbooks and other course material.
Information and Algorithm, Ueno and Takahashi, Morikita 2005 (in Japanese)
None
Studnets' level of understanding on the basic concepts of graph theory and basic methods for design and analysis of algorithm will be assessed. Midterm and final exams (95%), exercise problems (5%)
No prerequisites