# Data Structure and Algorithms

(1)

## Data Structure and Algorithms

Prof. Michael Tsai Spring 2017

### - Course Information

[CSIE 1212 Class 02]

(2)

### Data Structure and Algorithm – What are they?

• Data structure –

store, represent, and manipulate DATA in the computer.

• Algorithm –

well-defined computational procedure that take

some value(s) as input and produces some value(s) as output.

(3)

### What are we learning?

“Cookbook style”

- introduction of the most commonly used data structures

Transformation of concept to program

Learn by examples (C and pseudo code)

LOTS of opportunities (in-class exercises and homework)

Know how to manipulate the data

“graphically”

in a step-by-step manner

Know how to implement the data structure using computer programs

(4)
(5)

### What are we also learning?

• Learn how to analyze the running time of your program / algorithm

So that you write good, fast, efficient programs

• Some commonly used software development tools

& methodology (if time permits)

(6)

### Topics to be covered

Before Midterm:

• Array

• Stack & Queue

• String Matching

• Sorting

• Tree

(tree traversal and binary search tree)

After Midterm:

• Heap and hash table

• Disjoint set, selection

• Graph basics

• Fast Fourier Transform (tentatively)

(7)

### “This is an experimental version of the DSA course”

Some English (new) slides Some English lectures

### Uncertain but fun!

Interactive classroom

(8)
(9)

### My teaching style

• GOAL: 80% of the students will understand 80% of the content

• NEW GOAL: hopefully DURING THE CLASS

• I will ask you questions

(or nudge you if you fall asleep during class)

• I will repeat until you understand

(looking for signs of comprehension)

• I tell icy jokes (to keep you awake)

(10)
(11)

### Textbook

Introduction to Algorithms, 3rd edition, 2009, MIT Press by Cormen, Leiserson, Rivest, and Stein

(12)

### The teaching team

Name Picture Name Picture

(13)

### The teaching team

• 吳浩平 (Paul)

• R424

A few more to join the team later…

(14)

40% 4 Homework assignments

25% In-class performance

15% Midterm exam

Covers all content before midterm

20% Final exam

Covers all content taught in this semester

Conversion between raw score & letter grade will be determined by the instructure

Based on our experience:

“只要作業都有寫有交, 考試考卷每題都有寫不放棄, 就 很難被當“

(15)

### Homework

In each assignment:

• 2 Programming problems

Will be graded by online judge

Maximum of 5 code submissions per day

Learn how to test your own code!

Proofs, analysis

Or design data structure / algorithm by “hands”

(16)

### Homework: references

• We encourage discussion

• Please note references for all problems

Example 2: Discussion with B87506055

Example 3: Reference: book [title] p.xx

• No COPYING!

(write with references in front of you)

• We will use tools to monitor code similarity

• CONFIRMED case of PLAGIARISM:

(17)

### Homework: submission

• Electronic submission only

(details to be announced, SVN or git)

• Late submission: up to one day after the deadline

For all late submission, you get linearly increased penalty for that assignment.

Example: you submit your homework 3 hours late.

Then you get (1-(3600*3/86400))*100% = 87.5% of your score.

• Detailed rules will be available at the beginning of each homework problem description document.

(18)

### Exams

• 3-hour exam during the regular midterm & final exam time

• Both exams will feature

Programming problems + online judge

(19)

### Lecture time

• Official time:

• Lecture: Tuesdays, 678 (13:20-16:20)

• Breaks: 14:10-14:20, 15:10-15:30

• We might do minor adjustments according to how the students react (too sleepy, for example).

• Note the difference with the other class taught by Prof. 張智星 (Tuesdays, 789)

(20)

### who have not yet got in…

Maximum number of students: 100

Priority:

1. 資訊工程系大一雙班(不小心退選了?)

2. 資訊工程系大四(及以上)>大三>大二>大一

3. 資訊學群研究所

4. 電機資訊學院學生(大四及以上>大三>大二>大一) 5. 其他學院(大四及以上>大三>大二>大一)

https://goo.gl/forms/mWuWrW3YHA8iMV2A3

Students who have special reasons and REQUIRE to take this course this semester:

please come and talk to me today after the lecture.

(21)

### Communications

Course website:

http://www.csie.ntu.edu.tw/~hsinmu/courses/dsa_17spring

How do you reach us?

1. Email to dsa1@csie.ntu.edu.tw 2. Facebook Group

3. Please come to our office hour.

How do we reach you?

Email to your NTU mailbox (via CEIBA) [id]@ntu.edu.tw

Important announcements will also be available on Facebook Group

Typical DSA office hour (when no HW due soon)

(22)

### TODO

Reading assignment for week 3 will be available soon.

• Make sure that you can receive emails sent via CEIBA

• Sleep well and prepare for a productive new semester

• NO CLASS NEXT WEEK! (228 memorial day)

Updating...

## References

Related subjects :