Algorithms and Data Structures

2024-2025, C1/C2, C3/C4, C5/C6, C7 Classes
Overview | Instructors | Schedule | Assignment | Examination | Evaluation |

Overview

Course Description

Computers are machines that manipulates information. Fundamental study of computer science includes the problems how information is organized in the computer, how it can be manipulated, and how it can be utilized. The efficiency of programming and data processing is directly linked to algorithms and the structures of the data being processed. Thus, it is crucial for students of computer science to understand the concepts of information organization, information manipulation and algorithms. In this course, students learn a range of algorithms and data structures as well as how to implement them through programming exercises.

Course Objectives

Course Prerequisites

Knowledge of programming concepts is necessary. Students should complete Introduction to Programming and C Programming courses.

Text Books

Important Information

The data obtained from examinations and questioners (including past one) might be utilized for research activities to improve education. Individual can not be identified by the publication of this study. If you do not agree with the use of data in this study, please contact the course coordinator (yutaka@u-aizu.ac.jp). Please see this announcement for details.

本コースにおける試験の結果およびアンケートの結果を、過去のデータも含めて、教育改善のための研究データとして利用する場合があります。本研究の公開にあたって個人が特定されることはありません。また、実施にあたっても、個人が特定されないよう十分配慮いたします。データの利用に、同意を頂けない方は、コースコーディネータの渡部(yutaka@u-aizu.ac.jp)までご連絡ください。詳しくはこちらをご覧ください。

Instructors

Lectures

NameE-mailLab.ClassRoom
Prof. Yutaka Watanobeyutaka142-AC1/C2M2
Prof. Yan Peipeiyan102-CC3/C4M4
Prof. Jie Huangj-huang126-BC5/C6, C7LTh
Prof. Akila SiriweeraasiriweC7M7

Exercises

NameE-mailLab.ClassRoom
Prof. Shogo Sembashogo-s206-AC1std1
Prof. Wenxi Chenwenxi326-CC2std2
Prof. Yan Peipeiyan102-CC3std3
Prof. Yinghu Zhouy-zhouC4std4
Prof. Jie Huangj-huang126-BC5std3
Prof. Deepika SaxenadeepikaC6std4
Prof. Akila SiriweeraasiriweC7std3

TAs/SAs

IDNameClassRoom
s1310043MIYABE Kota- -
s1290119TAKENAKA RyoheiC1 std1
s1300056SUZUKI HarutoC1 std1
m5281047SUGENO KosukeC1 std1
m5271015KOKUBUN KotaC2std2
m5281009ENDO TowaC2std2
d8242104Xiang Meng C3 std3
d8232113Lingxiao QuC3 std3
s1290001AIZAWA ToyaC3 std3
d8241101AMIN Md. Faizul Ibne C4 std4
d8252104MUEPU MUKENDI Daniel C4 std4
d8232113QU LingxiaoC5 std5
d8262105WU ZiangC5 std5
m5282030YERRAGOLLA Hareesh KumarC5 std6
m5282019Charan Teja C5 std6

Schedule

Time and Place

DayPeriod

C1

C2

C3

C4

C5

C6

C7

Monday 5/6

LTh

7/8

std3

std4

Tuesday 3/4

M2

M4

M7
5/6

std1

std2

std3

std4

std3
Wedensday
Thursday 5/6

LTh

7/8

std3

std4

Friday 3/4

M2

M4

M7
5/6

std1

std2

std3

std4

std3

Time Table and Materials

# C1/C2/C3/C4 C5/C6 C7 Lecture Notes Algo. Assignment Prog. Assignment Topic
1 12/3 (Tue) 12/5 (Thu) ALDS1_1 Getting Started
2 12/6 (Fri) 12/9 (Mon) ALDS1_2 Growth of function, Sort I
3 12/10 (Tue) 12/12 (Thu) ALDS1_3 Elementary Data Structures
4 12/13 (Fri) 12/16 (Mon) ALDS1_4 Search Algorithm
5 12/17 (Tue) 12/19 (Thu) ALDS1_5 Divide and Conquer
6 12/20 (Fri) 12/23 (Mon) ALDS1_6 Sort II
7 1/7 (Tue) 1/6 (Mon) ALDS1_7 Tree
8 1/10 (Fri) 1/9 (Thu) ALDS1_8 Binary Search Tree
9 1/14 (*Tue) 1/16 (Thu) ALDS1_9 Heaps
10 1/21 (Tue) 1/20 (Mon) ALDS1_10 Dynamic Programming
11 1/24 (Fri) 1/23 (Thu) ALDS1_11 Graph I
12 1/28 (Tue) 1/27 (Mon) ALDS1_12 Graph II
13 1/31 (Fri) 1/30 (Thu) ALDS1_13 Backtracking and Heuristic Search
14 2/4 (Tue) 2/3 (Mon) All

Assignments

Algorithm Assignment

Programming Assignment

Deadlines
Problem IDCommentDeadline
AYou need to solve them for your credit.A week later
BYou need to solve them for your credit.A week later
CYou should solve several problems to get A.End of semester
DYou should solve several problems to get S (For fun!)End of semester
Score board
C1
C2
C3
C4
C5
C6

Examinations

Coding Examination

Please check the notes on the cover page and solve the practice problems in advance.

Final Examination

TBA

Student Evaluation

You can obtain points from the following items:

VL is to justify scores of programming assignments. If a student copies several programs of others, his/her VL is 0.5. If a student copies many programs or copies with malicious intention, his/her VL is 0.