0.intro Overview
0.intro Overview
Yung Yi
1
Instructor
• Yung Yi ( 이융 )
• N1, 810
• http://lanada.kaist.ac.kr, [email protected]
LANADA: LeArning in Networking: Algorithm, Design, and
Analysis
• Office Hours
To be announced later
2
TAs
• 6 Excellent TAs
• Wan Ju Kang
• Joonki Hong
• Kyunghwan Son
• Jihwan Bang
• Taeyoung Lee
• Hoyong Choi
3
Course Homepage
• KLMS
http://klms.kaist.ac.kr/
To download course materials
To submit your assignments
To check your score on each assignment
• Classum
To ask questions about everything
We will let you know the code that you can use later
4
Textbook
Goodrich and Tamassia,
Data structures and Algorithms in C++ (2 nd edition)
5
Grading
• 4 Programming Assignments
• In-class quiz and written homework assignments
• Midterm and final exams
• Class participation
6
Two Groups
• Group A
Students
Who take this course first time
Who did not take any course on data structure in other departments
Who took the data structure course in other departments, but its
grade is equal to and below `C-’
Who took this course, but retakes it again
• Group B
Other students
7
Late Policy & Attendance Check
• All written assignments should be submitted at the
beginning of each class.
Any work received after that time is given 0 credits.
• Programming Assignments
Deducted x% for each day being late.
• Attendance check
Mostly, at the beginning of each class
(taking photos for the attendance check)
Often, in the middle of or at the end of each class
8
Programming Language and Platform
• C++ and Linux
• Where to do programming
Haedong Lounge, E3-4 #1412
https://ee.kaist.ac.kr/en/node/15084?language=en
• IDs will be created
10
How to Communicate
• Most should be via Classum
Technical questions about lectures, homework, and etc
• DO NOT
Individually send emails to Prof. Yung Yi and TAs (or making calls or sending
Kakaotalk msgs) about the technical questions (course contents,
homework etc)
All the questions need to be shared among the students
DO NOT POST a chunk of source codes. TAs are not debuggers. We cannot
fix your bugs and we don't want to parse through your code to find the
bugs.
But, you can send an email to Prof. Yung Yi for the things that need to be
individually discussed
11
12
13
Summary (This Class)
수업자료 공유정책 비고 *
가능여부 (o/x)
( 현 학기 중 공유 / 이후 학기 공유를 모두 포함 ) ( 수업 별 특수 정책이 있는 경우 명시 )
출제된 과제 및 과제풀이의 공유 및 배포
x Cannot give your homework to
someone later
제공된 강의 자료의 공유 및 배포 O
출제된 시험문제의 공유 및 배포 O
비고 *
이전 수업자료 참고정책 가능여부 (o/x)
( 수업 별 특수 정책이 있는 경우 명시 )
No internet materials,
과제 수행 시 이전 기출 과제 및 과제풀이 참조 X
Only discussion, discussion based
과제 수행 시 수강생 간의 토론 / 협업 O, X on the code copied to your com-
puter not allowed
시험 준비 시 , 이전 기출문제 자료 참조 O
14
Summary (This Class)
15
학업윤리 위반 사례 공유
위반행위 처분내용 발생 횟수 비고
학부 내 징계
과제물 표절 12
사회봉사 30 시간
허용되지 않은 자료 학부 내 징계
9
제공 및 전달 사회봉사 15 시간
부정행위 방조 및
경고 ( 경고메일 발송 ) 3
허용되지 않은 자료 단순 열람
학부 내 징계 튜터링 과정에서 튜티에게 부정행위를 권유 및
튜터의 윤리위반 2
사회봉사 30 시간 , 지원한 경우
• Basically,
Don’t copy the code from the Internet
Don’t store other people’s code in your storage
Don’t discuss by looking at others’ code (even in the screen)
Highly likely to share codes
• Remember
Zero Tolerance!
18
Announcement: First In-class Test
• 30 mins Exam on Sep. 5th(Wed)
19
Announcement: First Programming Assignment
• Will be Announced on Aug. 29th
20
Course Overview
21
Data Structures
Definitions
• Ways to organize and store data
Data Storages
• Ways to access and manipulate the stored data.
Methods to access storages
22
Example (adjacent states)
23
Problem
• Definition: adjacency: if two states share a boundary,
the two states are adjacent.
24
Come up with Data Structures
• Suppose you have only the following information
for each state x, the list of states that are adjacent to state x.
for example,
North Carolina : Georgia, south Carolina, Virginia, Tennessee.
• How are you going to store this adjacency information to solve
the problem efficiently?
25
Lessons
• Different data structures lead to different ways to solve a
given problem. (algorithms).
• Different algorithms may give different efficiency (space and
time).
26
Course outline
• First Topic: How to measure the efficiency of an
algorithm.
Each data structure has a different use and
27
Course outline
• Data Structures
Arrays
Stacks, Queues
List
Priority queues
Search Trees
Graphs
etc …
28
Stack
• A container of objects that are inserted and removed
according to the last-in-first-out (LIFO) principle.
• Only the last (the most recently inserted) object can be
removed.
29
Queue
• Differs from a stack in that its insertion and removal
follows the first-in-first-out (FIFO) principle.
• The element which has been in the queue the longest
may be removed.
30
List
• A collection of linearly arranged element (a linear order).
• Provides methods for accessing, inserting, and removing
arbitrary elements.
• Notion of position, before and after.
31
Tree
• A collection of objects arranged in a hierarchical fashion.
• E.g., organization of a corporation, a table of content, dos/unix
file systems, family tree.
• Notion of parents and children, root and leaves.
32
Priority queue
• An abstract type for storing a collection of prioritized
elements that supports arbitrary element insertion but
support removal of elements only in order of priority.
• Examples…..
33
Graphs
• Representing a way of connections or relationships between
pairs of objects.
34
Graphs
• Not only physical connectivity, but also logical relationship.
35
Algorithms and Applications
• Every computer software uses some collections of data
structures.
• We will study algorithms to efficiently solve problems using
various data structures.
• Proof techniques for correctness or efficiency.
36
Questions?
37