2019 Data Structures and Algorithms

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Undergraduate major in Computer Science
Instructor(s)
Koike Hideki 
Course component(s)
Lecture / Exercise
Day/Period(Room No.)
Tue5-6(W321)  Fri5-8(W321)  
Group
-
Course number
CSC.T271
Credits
3
Academic year
2019
Offered quarter
4Q
Syllabus updated
2019/3/18
Lecture notes updated
-
Language used
Japanese
Access Index

Course description and aims

This course teaches the basics of data structures and algorithms in computer science. In the first half period, students will learn basic data structures and algorithms, In the second half period, students will learn advanced topics of algorithms.

Student learning outcomes

Each student will obtain:
(1) knowledge of data types and algorithms which are bases of computer science
(2) implementation of these data types and algorithms in C programming language
(3) knowledge of each algorithm's efficency

Keywords

list, stack, tree, binary search, graph algorithm, sorting, divide-and-conquer, dynamic programming, string matching

Competencies that will be developed

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

Class flow

After each two lectures, one excersise is done. In the excersise, students will learn how to implement the data structures and algorithms in C programming language.

Course schedule/Required learning

  Course schedule Required learning
Class 1 Introduction to algorithms Understand what is algorithm.
Class 2 Abstract data types, computational efficiency Understand abstract data types, computational efficiency.
Class 3 Programming exercise Learn basic of C Programming
Class 4 Basic data types: lists, stacks, queues Understand lists, stacks, and queues.
Class 5 Basic data types: graphs, trees, binary trees Understand graphs, trees, and binary trees.
Class 6 Programming exercise Learn how to write basic data structures
Class 7 Basic data types: dictionary, hash Understand dictionaries and hash
Class 8 Ordered sets: heaps, binary search trees, balanced tree Learn ordered sets such as heaps, binary search trees, balanced trees
Class 9 Programming exercise Learn how to program sets
Class 10 Sorting: bubble sort, insertion sort, selection sort Learn basic sorting algorithms
Class 11 Sorting: heap sort, merge sort, quicksort Learn advanced sorting algorithms
Class 12 Programming exercise Learn how to write sorting alborithms
Class 13 Mid term exam.
Class 14 Divide-and-conquer Learn divide-and-conquer
Class 15 Graph algorithms: graph data structures, depth first search, breadth first search Learn graph algorithms:
Class 16 Graph algorithms: shortest path (Dijkstra, Floyd-Warshall), minimum spanning tree (Kruskal, Prim) Learn graph algorithms:
Class 17 Programming exercise Specified in the class
Class 18 String matching Understand string matching algorithm
Class 19 String matching Understand string matching algorithm
Class 20 Programming exercise Specified in the class
Class 21 Advanced algorithms Learn more advanced algorithms
Class 22 Final exam.

Textbook(s)

Suppliment materials are provided in the class

Reference books, course materials, etc.

Toshihide Ibaraki:Algorithms and Data Structures in C (in Japanese),Ohmsha,ISBN 978-4-274-21604-6
R. Sedgewick: Algorithms in C, Parts 1-4: Fundamentals, Data Structures, Sorting, Searching (English Edition).
R. Sedgewick: Algorithms in C, Part 5: Graph Algorithms (English Edition)

Assessment criteria and methods

Midterm exam (30%)
Programming exercise or report (40%)
Final exam (30%)

Related courses

  • GRE.C101 : Foundations of Computer Science I
  • GRE.C102 : Foundations of Computer Science II
  • CSC.T243 : Procedural Programming Fundamentals
  • CSC.T253 : Advanced Procedural Programming
  • LAS.I121 : Computer Science I
  • LAS.I122 : Computer Science II

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

No prerequisities. It is desirable to finish the related courses.

Page Top