### 2019　Discrete Structures and Algorithms

Font size  SML

Undergraduate major in Information and Communications Engineering
Instructor(s)
Takahashi Atsushi
Course component(s)
Lecture / Exercise
Day/Period(Room No.)
Mon5-8(S621)  Thr7-8(S621)
Group
-
Course number
ICT.M215
Credits
3
2019
Offered quarter
4Q
Syllabus updated
2019/3/18
Lecture notes updated
2020/1/20
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

Intercultural skills Communication skills Specialist 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 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

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.

### 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 (90%), exercise problems (10%)

### Related courses

• GRE.C101 ： Foundations of Computer Science I
• GRE.C102 ： Foundations of Computer Science II
• ICT.M202 ： Probability and Statistics (ICT)
• ICT.M306 ： Concrete Mathematics
• ICT.M310 ： Mathematical Programming
• ICT.M316 ： Numerical Analysis (ICT)

### Prerequisites (i.e., required knowledge, skills, courses, etc.)

No prerequisites 