Data Structure and Algorithms

ARAI, Masayuki
  Elective Requisites  2 credits
【Information and Electronic Engineering・1st semester】
19-1-0454-2560

1.
Outline
We will learn the followings:
(1) Time complexity and space complexity
(2) String matching algorithm
(3) Sort algorithm
(4) Basic data structures
(5) Shortest path algorithm
(6) Minimum spanning tree algorithm
This course is related to DP4C and DP4M.
2.
Objectives
The aim of this course is followings:
(a) The learners comprehend basic data structures and apply them to programs.
(b) The learners comprehend basic algorithm and use it appropriately.
(c) The learners can evaluate algorithm from point of complexity.
(d) The learners can select suitable algorithm and data structure according to the problem.
3.
Grading Policy
The learners are assessed by the followings: reports 30%, mini tests 30%, a term-end examination 40%. The learnes who get over 60% can get credits. For reexamination, examinees who get over 60% can get credits.
The learners can get feedback from the reports in which professors write comments and explanation for the mini tests.
4.
Textbook and Reference
Satoshi Fujita: "Algorithm and data structures," Graphic Information Library, Saiensu-sha Co., Ltd., 2013, ISBN978-4-901683-99-9.
5.
Requirements (Assignments)
1. Overview of this course and complexity
Preparation: reading the section 1 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 1 (1.5 hours)

2. String matching algorithm: what are string matching problems
Preparation: reading the subsections 2.1 and 2.2 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 2 (1.5 hours)

3. String matching algorithm: KMP
Preparation: reading the subsections 2.3 and 2.4 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 2 and programming the algorithm 2.4 of the textbook(1.5 hours)

4. Sort algorithm: Selection sort and insert sort
Preparation: reading the subsections 3.1 ~ 3.3 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 3 (1.5 hours)

5. Sort algorithm: Divide-and-conquer method and quick sort
Preparation: reading the subsections 3.4 and 3.5 of the textbook carefully and confirm keywords (1.5 hours)
Review: programming the algorithm 3.4 of the textbook (1.5 hours)

6. Sort algorithm: Merge sort and radix sort
Preparation: reading the subsections 3.6 and 3.7 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 3 and programming the algorithm 3.5 of the textbook(1.5 hours)

7. Basic data structures: Queue and stack
Preparation: reading the subsections 4.1 and 4.2 of the textbook carefully and confirm keywords (1.5 hours)
Review: programming linked list and stack (1.5 hours)

8. Basic data structures: Binary tree and balanced tree
Preparation: reading the subsections 4.3 and 4.4 of the textbook carefully and confirm keywords (1.5 hours)
Review: programming the binary tree (1.5 hours)

9. Basic data structures: Heap and disjoint-set data structure
Preparation: reading the subsections 4.5 and 4.6 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 4 and programming the heap (1.5 hours)

10. Shortest path algorithm: How to express graph structures
Preparation: reading the subsections 5.1 and 5.2 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 5 (1.5 hours)

11. Shortest path algorithm: Dijkstra's algorithm
Preparation: reading the subsection 5.3 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 5 (1.5 hours)

12. Shortest path algorithm: Bellman–Ford algorithm
Preparation: reading the subsection 5.4 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 5 (1.5 hours)

13. Minimum spanning tree algorithm: Best-first search algorithm
Preparation: reading the subsections 6.1 and 6.2 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 6 (1.5 hours)

14. Minimum spanning tree algorithm: Kruskal's algorithm and Prim's algorithm
Preparation: reading the subsections 6.3 and 6.4 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 6 (1.5 hours)

15. Summarization and examination
Preparation: summarizing this course (1.5 hours)
Review: reviewing the exam (1.5 hours)
6.
Note
The learners sometimes write programs, therefore they should review the courses of Programming 1 and Programming 2.
The learner can use leaning materials uploaded to LMS.
This course is a required subject for JABEE and corresponds to 4.2 in the learning and educational objectives.
7.
Schedule
1. Overview of this course and complexity
2. String matching algorithm: what are string matching problems
3. String matching algorithm: KMP
4. Sort algorithm: Selection sort and insert sort
5. Sort algorithm: Divide-and-conquer method and quick sort
6. Sort algorithm: Merge sort and radix sort
7. Basic data structures: Queue and stack
8. Basic data structures: Binary tree and balanced tree
9. Basic data structures: Heap and disjoint-set data structure
10. Shortest path algorithm: How to express graph structures
11. Shortest path algorithm: Dijkstra's algorithm
12. Shortest path algorithm: Bellman-Ford algorithm
13. Minimum spanning tree algorithm: Best-first search algorithm
14. Minimum spanning tree algorithm: Kruskal's algorithm and Prim's algorithm
15. Summarization and examination
1.
Outline
We will learn the followings:
(1) Time complexity and space complexity
(2) String matching algorithm
(3) Sort algorithm
(4) Basic data structures
(5) Shortest path algorithm
(6) Minimum spanning tree algorithm
This course is related to DP4C and DP4M.
2.
Objectives
The aim of this course is followings:
(a) The learners comprehend basic data structures and apply them to programs.
(b) The learners comprehend basic algorithm and use it appropriately.
(c) The learners can evaluate algorithm from point of complexity.
(d) The learners can select suitable algorithm and data structure according to the problem.
3.
Grading Policy
The learners are assessed by the followings: reports 30%, mini tests 30%, a term-end examination 40%. The learnes who get over 60% can get credits. For reexamination, examinees who get over 60% can get credits.
The learners can get feedback from the reports in which professors write comments and explanation for the mini tests.
4.
Textbook and Reference
Satoshi Fujita: "Algorithm and data structures," Graphic Information Library, Saiensu-sha Co., Ltd., 2013, ISBN978-4-901683-99-9.
5.
Requirements (Assignments)
1. Overview of this course and complexity
Preparation: reading the section 1 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 1 (1.5 hours)

2. String matching algorithm: what are string matching problems
Preparation: reading the subsections 2.1 and 2.2 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 2 (1.5 hours)

3. String matching algorithm: KMP
Preparation: reading the subsections 2.3 and 2.4 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 2 and programming the algorithm 2.4 of the textbook(1.5 hours)

4. Sort algorithm: Selection sort and insert sort
Preparation: reading the subsections 3.1 ~ 3.3 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 3 (1.5 hours)

5. Sort algorithm: Divide-and-conquer method and quick sort
Preparation: reading the subsections 3.4 and 3.5 of the textbook carefully and confirm keywords (1.5 hours)
Review: programming the algorithm 3.4 of the textbook (1.5 hours)

6. Sort algorithm: Merge sort and radix sort
Preparation: reading the subsections 3.6 and 3.7 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 3 and programming the algorithm 3.5 of the textbook(1.5 hours)

7. Basic data structures: Queue and stack
Preparation: reading the subsections 4.1 and 4.2 of the textbook carefully and confirm keywords (1.5 hours)
Review: programming linked list and stack (1.5 hours)

8. Basic data structures: Binary tree and balanced tree
Preparation: reading the subsections 4.3 and 4.4 of the textbook carefully and confirm keywords (1.5 hours)
Review: programming the binary tree (1.5 hours)

9. Basic data structures: Heap and disjoint-set data structure
Preparation: reading the subsections 4.5 and 4.6 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 4 and programming the heap (1.5 hours)

10. Shortest path algorithm: How to express graph structures
Preparation: reading the subsections 5.1 and 5.2 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 5 (1.5 hours)

11. Shortest path algorithm: Dijkstra's algorithm
Preparation: reading the subsection 5.3 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 5 (1.5 hours)

12. Shortest path algorithm: Bellman–Ford algorithm
Preparation: reading the subsection 5.4 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 5 (1.5 hours)

13. Minimum spanning tree algorithm: Best-first search algorithm
Preparation: reading the subsections 6.1 and 6.2 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 6 (1.5 hours)

14. Minimum spanning tree algorithm: Kruskal's algorithm and Prim's algorithm
Preparation: reading the subsections 6.3 and 6.4 of the textbook carefully and confirm keywords (1.5 hours)
Review: solving the problems in the end of the section 6 (1.5 hours)

15. Summarization and examination
Preparation: summarizing this course (1.5 hours)
Review: reviewing the exam (1.5 hours)
6.
Note
The learners sometimes write programs, therefore they should review the courses of Programming 1 and Programming 2.
The learner can use leaning materials uploaded to LMS.
This course is a required subject for JABEE and corresponds to 4.2 in the learning and educational objectives.
7.
Schedule
1. Overview of this course and complexity
2. String matching algorithm: what are string matching problems
3. String matching algorithm: KMP
4. Sort algorithm: Selection sort and insert sort
5. Sort algorithm: Divide-and-conquer method and quick sort
6. Sort algorithm: Merge sort and radix sort
7. Basic data structures: Queue and stack
8. Basic data structures: Binary tree and balanced tree
9. Basic data structures: Heap and disjoint-set data structure
10. Shortest path algorithm: How to express graph structures
11. Shortest path algorithm: Dijkstra's algorithm
12. Shortest path algorithm: Bellman-Ford algorithm
13. Minimum spanning tree algorithm: Best-first search algorithm
14. Minimum spanning tree algorithm: Kruskal's algorithm and Prim's algorithm
15. Summarization and examination