• 沒有找到結果。

# Data Structure and Algorithms

N/A
N/A
Protected

Share "Data Structure and Algorithms"

Copied!
29
0
0

(1)

## Data Structure and Algorithms

Prof. Michael Tsai Spring 2018

### - 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)

### We are NOT learning…

• Object-oriented programming – C++ or Java

C++ is not permitted in all homework assignments and exams – strictly C only

• Some topics that will be covered in

“Algorithm Design and Analysis”

Divide-and-conquer

Dynamic programming

(7)

### Topics to be covered

Before Midterm:

Stack & Queue

String Matching

Sorting

Tree

(tree traversal and binary search tree)

Heap

After Midterm:

Hash table

Disjoint set

Sorting in linear time

Graph basics

Fast Fourier Transform (tentatively)

One more topic to be determined later

(8)

### Experimental DSA: Version 2.0

Teaching with Video Interactive classroom

Uncertain but fun!

(9)

### Teaching with Video: Why?

• Students have

diverse background and learning speed

choose the time and location to learn (sort of)

• We (teaching team) can track how individual and entire class of students are learning

(10)

(11)

### Teaching Modes

1. Conventional classroom teaching + recording + interactive problem solving

I will teach in the class (~20 min segments)

Recorded video will be available on NTU COOL after the class

(12)

### Teaching Modes

2. Flipped Classroom

You are required to watch and learning from the video on

NTU COOL before the class

You watch the video at home

In-class activities during the lecture time

(13)

### Teaching Modes

3. Video teaching +

interactive problem solving

Video will be played (~20 min segments)

You can also ask us questions about the video in the class

Video is played during the class

In-class activities or problem solving

(14)

### 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)

(15)
(16)

### who have not yet got in…

Maximum number of students: 110

Priority:

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

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

3. 資訊學群研究所

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

https://goo.gl/forms/VUtwYKE00UDZLc6v1

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

please come and talk to me today.

(17)

### Textbook

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

(18)

### Zuvio

• Allow real-time, in-class problem solving

• Accounts are already created for registered students

Not yet registered:

http://zuv.io/9795333

(19)

### NTU COurse OnLine (COOL)

• A new, video-centered NTU online learning platform

• Course video will be available on the platform

• Course materials (slides, reading materials) will also be available there

• Video watching behavior will be tracked

(20)

### Teaching Assistants

Name Picture Name Picture

(21)

### TA Hours

Name Time Place Name Time Place

14:00~15:00

19:00~20:00

13:30~14:30

19:00~20:00

13:00~14:00

18:30~19:30

15:30~16:30

13:20~14:20

18:30~19:30

(22)

40% 4 Homework assignments

25% In-class performance

15% Midterm exam (programming + analysis)

Covers all content before midterm

20% Final exam (programming + analysis)

Covers all content taught in this semester

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

Based on our experience:

(23)

### 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!

(do not ask us for test input + output)

Proofs, analysis

Or design data structure / algorithm by “hands”

(24)

### 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:

(25)

### 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.

(26)

### Exams

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

• Both exams will feature

Programming problems + online judge

(27)

### 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)

(28)

### Communications

• Course website:

to be updated

• 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)

(29)

### TODO

• Make sure that you can receive your NTU emails (via CEIBA or NTU COOL)

• Test out your NTU COOL and Zuvio accounts

• Sleep well and prepare for a productive new semester

EQUIPAMENTO SOCIAL A CARGO DO INSTITUTO DE ACÇÃO SOCIAL, Nº DE UTENTES E PESSOAL SOCIAL SERVICE FACILITIES OF SOCIAL WELFARE BUREAU, NUMBER OF USERS AND STAFF. ᑇؾ N

172, Zhongzheng Rd., Luzhou Dist., New Taipei City (5F International Conference Room, Teaching Building, National Open University)... 172, Zhongzheng Rd., Luzhou Dist., New

After enrolment survey till end of the school year, EDB will issue the “List of Student Identity Data on EDB Record and New STRNs Generated” to the school in case the

Define instead the imaginary.. potential, magnetic field, lattice…) Dirac-BdG Hamiltonian:. with small, and matrix

important to not just have intuition (building), but know definition (building block).. More on

Know how to implement the data structure using computer programs... What are we

—we cannot teach all, but with reading you can learn all 3-6: 3 hour teaching, 6 hour reading/writing after class as important as writing assignments:. some may show up

Efficient training relies on designing optimization algorithms by incorporating the problem structure Many issues about multi-core and distributed linear classification still need to