### 2022　Discrete Structures and Algorithms

Font size  SML

Academic unit or major
Undergraduate major in Information and Communications Engineering
Instructor(s)
Takahashi Atsushi
Class Format
Lecture / Exercise    (Face-to-face)
Media-enhanced courses
Day/Period(Room No.)
Mon5-8(S621)  Thr7-8(S621)
Group
-
Course number
ICT.M215
Credits
3
2022
Offered quarter
4Q
Syllabus updated
2022/4/20
Lecture notes updated
2023/2/16
Language used
Japanese
Access Index

### Course description and aims

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.

### Student learning outcomes

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.

### Keywords

graph, algorithm, computational complexity

### Competencies that will be developed

 ✔ Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

### Class flow

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

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

### Out-of-Class Study Time (Preparation and Review)

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.

### Textbook(s)

Information and Algorithm, Ueno and Takahashi, Morikita 2005 (in Japanese)

None

### Assessment criteria and methods

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%)

### Related courses

• ICT.M202 ： Probability and Statistics (ICT)
• ICT.M306 ： Concrete Mathematics
• ICT.M310 ： Mathematical Programming
• ICT.M316 ： Numerical Analysis (ICT)

No prerequisites