230 likes | 351 Views
Overview of the course. Course homepage and discussion board. sign up at https://piazza.com/purdue/spring2014/cs58000/ It is recommended to ask questions on the Board instead of directly Emailing the teaching staffs. Grading. Grading will be done as follows: biweekly homework: 20%
E N D
Course homepage and discussion board • sign up at https://piazza.com/purdue/spring2014/cs58000/ • It is recommended to ask questions on the Board instead of directly Emailing the teaching staffs.
Grading Grading will be done as follows: • biweekly homework: 20% • midterm: 40% • final: 40% • class and piazza participation & bonus problem: adjust borderline scores
Homework Policy • Written homeworks are due at the start of class on their due date. • If you do not know the answer of question, you will receive 15% of the grade for the problem if you admit it up-front by writing “I don’t know how to solve this problem” and nothing else. If your solution is wrong, you get a score of 0 for that problem. • You are encouraged to work in groups of 2 or 3. On all assignments each person should hand-in their own writeup. That is, collaboration should be limited to talking about the problems, so that your writeup is written entirely by you alone, in your own words.
Homework Policy • We will not accept late submission. To offset this strict policy, • we will drop the lowest homework grade in the end so that the occasional absence won’t hurt you. • each individual student has a single 48 hours pass. This pass can be used to extend the deadline for one homework by 48 hours. • We prefer that you type up your solutions (preferably using LaTeX). You may neatly hand-write your solutions, but if we have trouble reading them you will be required to type up future solutions. • If you find a solution from any other source, you must rewrite entirely using your own words and cite properly. • The TA rules when it comes to grading homework; their decisions are final. However, they will be available to listen to your explanations.
Recommend Textbook for reading • Introduction to Algorithms, by Cormen, Leiserson, Rivest, and Stein (hereafter referred to as "CLRS"). • Algorithm Design by J. Kleinberg and E. Tardos (hereafter refererred as "KT").
What is an algorithm? • Any well defined computational procedure that takes some value, of set of values, as input and produces some value, or set of values, as output for a well defined computation problem.
Example Input:integer Output: then -th Fibonacci number
What is the -th Fibonacci number? Definition of Fibonacci number.
Alg 1. Function f(n) If n=0: return 1 If n =1: return 1 Return f(n-1)+f(n-2)
Things we care about an algorithm • Performance • Running time • Space • Correctness
Running time of the algorithm Function f(n) If n=0: return 1 If n =1: return 1 Return f(n-1)+f(n-2)
Moore’s law • Moore's law: the computing power doubles approximately every two years.
Algorithm 2. Function f(n) Create an array A[0] =1, A[1] =1 For (i= 2..n) A[i] = A[i-1]+A[i-2] Return A[n]
What will be covered in this course? • Data Structure • Algorithm Design Techniques • Algorithm Analysis Techniques
Data structures: We assume you already know what is a binary tree, head, and linked list. • Treap • Binomial heap • Union find • hasing
Design Techniques • Greedy algorithm • Dynamic programming • Divide and Conquer • FFT • Network Flow • Linear Programming • Randomized Algorithms • DFS and BFSReduction
Tools for analyzing algorithms • Asymptotic Analysis • Amortized Analysis • Probabilistic Analysis
Intractability and Complexity Theory • Complexity class such as NP, coNP, RP, • Reduction