slides1

advertisement
Algorithms
Xiaojuan Cai
cxj@sjtu.edu.cn
Fall semester 2014
Course Overview
• Why study Algorithms
• Outline of the course
• Course Polices
4/13/2015
Xiaojuan Cai
2
What is Algorithm?
The word ‘algorithm’ is derived from the name of
http://en.wikipedia.org/wiki/File:Abu_Abdullah_Muhammad_bin_Musa_al-Khwarizmi_edit.png
Muḥammad ibn Mūsā al-Khwārizmī (780?-850?)
a Muslim mathematician whose works introduced Arabic numerals
and algebraic concepts to Western mathematics.
(American Heritage Dictionary)
4/13/2015
Xiaojuan Cai
3
What is Algorithm?
• An algorithm is a procedure that consists of
– a finite set of instructions which,
– given an input from some set of possible
inputs,
– enables us to obtain an output through a
systematic execution of the instructions
– that terminates in a finite number of steps.
4/13/2015
Xiaojuan Cai
4
Why study Algorithms?
1. Their impact is broad and far-reaching.
Internet, Biology, Computers, Computer graphics, Security,
Multimedia, Physics ......
“Computer Science is the study of algorithms.”
-- Donald E. Knuth
4/13/2015
Xiaojuan Cai
5
Why study Algorithms?
2. to become a proficient programmer
“ Algorithms + Data Structures = Programs. ”
-- Niklaus Wirth
“Bad programmers worry about the code. Good
programmers worry about data structures and
their relationships. ”
-- Linus Torvalds
4/13/2015
Xiaojuan Cai
6
Why study Algorithms?
3. For intellectual stimulation, be a wise person
“有人天生喜欢“遍历”,踏遍千山万水,遍享万种风情......
有人一生“贪婪”,眼界不宽,及时行乐;
有人注定适用“穷搜”,辛辛苦苦勤勤恳恳一辈子,付出很多,收获
有限;
有人善用“时空权衡”,用最少的时间办最多的事情,的确精明;
有人会“分治”,再多的难题也能迎刃而解;
有人常“回溯”,错的太多,后悔太多;
有的人压根没有算法,于是盲目生活,盲目做事,最后所获无几;
……”
4/13/2015
Xiaojuan Cai
--- 邹恒明 《算法之道》
7
4. For profit
4/13/2015
Xiaojuan Cai
8
Why study Algorithms?
Why study anything else?
1. Their impact is broad and far-reaching.
2. to become a proficient programmer.
3. For intellectual stimulation, be a wise person
4. For profit
5. Old roots, new opportunities.
6.To solve problems that could not otherwise be addressed.
7.They may unlock the secrets of life and of the universe.
......
(Source from “Algorithms” by R. Sedgewick and K. Wayne)
4/13/2015
Xiaojuan Cai
9
Where are we?
• Why study Algorithms
• Outline of the course
• Course Polices
4/13/2015
Xiaojuan Cai
10
References
1. Algorithms: Design Techniques and Analysis, M.H. Alsuwaiyel
2. Introduction to Algorithms, T. H. Cormen, C. E. Leiserson, R. L.
Rivest, C. Stein
3. Algorithms, S, Dasgupta, C. Papadimitriou, U. Vazirani
4. Algorithms, 4th edition, R. Sedgewick, K. Wayne
4/13/2015
Xiaojuan Cai
11
Course Overview
4/13/2015
Xiaojuan Cai
12
Benefit from MOOC
• MOOC: Massive Open Online Courses
• Coursera, edX, Udacity, …
• Homework 0: Sign up and enroll Algorithms, Part I
and Algorithms, Part II by R. Sedgewick and K.
Wayne on Coursera.
4/13/2015
Xiaojuan Cai
13
Course goals
• To become proficient in the application of
fundamental algorithm design techniques
• To gain familiarity with the main theoretical tools used
in the analysis of algorithms
• To study and analyze different algorithms for many of
“standard” algorithmic problems
• To introduce students to some of the prominent
subfields of algorithmic study in which they may wish
to pursue further study
4/13/2015
Xiaojuan Cai
14
Where are we?
• Why study Algorithms
• Outline of the course
• Course Polices
4/13/2015
Xiaojuan Cai
15
Grading Policy
• Homework 20%
• Programming assignment 20%
– Jobdu Online Judge: http://ac.jobdu.com/index.php
– 4 problem sets
– Homework 0: sign up Jobdu site
– ftp://basics.sjtu.edu.cn,
username:algo14
pwd: algo14
Compress your codes to one file, and name it in the
form of idnumber_name.***
• Final exam 60%
4/13/2015
Xiaojuan Cai
16
TAs
• TAs
‣ Yanlong Li (李彦龙), lansunlong@sjtu.edu.cn
‣ Yunqing Wen (温韵清), wyqwyq@sjtu.edu.cn
• Homepage:
http://basics.sjtu.edu.cn/~xiaojuan/algo14/
4/13/2015
Xiaojuan Cai
17
Teaching techniques
• One-minute paper
• Group teaching
– Final score = score + 3 (bonus)
4/13/2015
Xiaojuan Cai
18
Voices from senior students
•
•
•
•
•
•
•
•
•
•
•
4/13/2015
好好听,这课更像思维训练,而绝不是应付考试。
这门课用心学是可以学到很多东西的。
好好学算法,对面试公司很有用。
上课往前坐。
算法无论从哪个次元来看都是程序员的基础。
好好听课,不然会对自己失去信心。
这是我在软院上过最有意思最有收获的一门课。
算法很重要,但更重要的是思想。或许将来我们不会用到今
天学习的算法,但是某个算法的思想会帮我们解决很多实际
问题。
大神们请低调,给学渣们活路啊!
这门课懂得许多名词,大神们说话时听得懂他们在说什么了。
…
Xiaojuan Cai
19
Download