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
Intercultural skills | Communication skills | Specialist 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 of 90 minutes corresponds to the previous two 90-minute 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 and graph coloring | Explain the overview of concept of bipartite graph and graph coloring |
Class 5 | Eulerian graph | Explain the overview of concept of Eulerian graph |
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 | Hamiltonian graph | Explain the overview of concept of Hamiltonian graph |
Class 8 | Asymptotic evaluation of function | Explain the overview of concept asymptotic evaluation of function |
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 | Analysis of algorithm | Explain the overview of concept analysis of algorithm |
Class 11 | Sorting algorithm | Explain the concept of efficient sorting algorithm |
Class 12 | 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 13 | Search algorithm | Explain the overview of depth-first-search and breath-first-search |
Class 14 | Shortest path algorithm | Explain the overview of Dijkstra's shortest path algorithm |
Class 15 | Exercise | Review the course contents. Use the exercise problems to better understand the topics covered, and evaluate one's own progress. |
Class 16 | Maximum spanning tree algorithm | Explain the overview of Kruskal's maximum spanning tree algorithm |
Class 17 | Design methodologies of algorithm | Explain the overview of design methodologies of algorithm |
Class 18 | Exercise | Review the course contents. Use the exercise problems to better understand the topics covered, and evaluate one's own progress. |
Class 19 | 貪欲アルゴリズム | Explain the overview of concept of greedy algorithm |
Class 20 | Complexity of computation (P and NP) | Explain the overview of concept of complexity of computation (P and NP) |
Class 21 | Approximate algorithm | Explain the overview of concept of approximate algorithm |
Class 22 | Exercise | Review the course contents. Use the exercise problems to better understand the topics covered, and evaluate one's own progress. |
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 (90%), exercise problems (10%)
No prerequisites