compe 574 fundamentals of algorithms 2012-2013 spring murat karakaya department of computer...
TRANSCRIPT
COMPE 574 Fundamentals of Algorithms
2012-2013 Spring
Murat KARAKAYADepartment of Computer Engineering
COMPE 574
• Instructor : K. Murat KARAKAYA• Email : [email protected]
Office : Z-14 • Lecture : Friday 09:30-12:20 @ 1026• Office Hour: Friday 15:30-16:00 @ Z-14
• TA : TBD• Email : TBD
• Course Web page is on Moodle
Objectives & Content
Objectives: •To analyze and design algorithms •To measure their complexities•Developing skills to design efficient algorithms
Content:•Design and analysis of algorithms. •O-Notation. •Divide and Conquer algorithms. •Dynamic Programming.•Complexity of sorting, and searching algorithms. •Graph algorithms. •NP-Hard and NP-Complete problems.
Text Books and ReferencesCourse Book:
T.H.Cormen, C.E.Leiserson, R.L.Rivest and C.Stein: Introduction to Algorithms, 3rd ed., MIT Press 2009.
Other sources:E.Horowitz, S.Sahni: Fundamentals of Computer Algorithms,
Computer Science Press, 1989.E.Horowitz, S.Sahni, S.Rajasekeran, Computer Algorithms, ISBN:
978-0-929306-41-4, Silicon Press, 2008.J.Kleinberg, E.Tardos, Algorithm Design, Addison – Wesley, ISBN: 0-
321-29535-8, 2006.A.V.Aho, J.E.Hopcroft, J.D.Ullman, The Design and Analysis of
Computer Algorithms, Addison-Wesley Series in Computer Science and Information Processing, 1979.
S.S. Skiena, The Algorithm Design Manual, Springer – Verlag, New York, 1998.
Grading (Tentative)
• Midterm(s) 40%• Pop Quizes* 15%• Final Exam 35%• Active Participation 10%
• If you miss 4 or more classes you will get NA grade!
*Pop Quiz: an unscheduled or unannounced quiz.
Grading Policies• Missed exams:
o no make-up exam for midterms without approved excuse!o you will get zero for each missed pop quiz!o no make-up exam for final for any excuse!
• Lateness:o Late assignments are penalized up to 10% per day.
• Ethics:o All assignments/projects are to be your own work.
• Participation:o You are supposed to be active in the class by involving and
participating disscusions via asking questions, proposing solutions, explaning your ideas, etc.
Course Outline• WEEK(1): Introduction to Analysis of Algorithms.• WEEK(2): Asymptotic Notation.• WEEK(3): Solving Recurrences.• WEEK(4): Sorting: QuickSort• WEEK(5): Dynamic programming: Matrix-chain multiplication. • WEEK(6): Dynamic programming: Longest common subsequence.• WEEK(7): Greedy algorithms: Activity selection problem.• WEEK(8): Greedy algorithms: Hufmann codes.• WEEK(9): Dynamic programming vs. Greedy algorithms: Knapsack
problems• WEEK(10): Dynamic programming vs. Greedy algorithms: Knapsack
problems• WEEK(11): Graphs: Concepts & Representations.• WEEK(12): Graph Searching: Breadth-First Search.• WEEK(13): Graph Searching: Depth-First Search.• WEEK(14): NP-Completeness.
EXPECTED SKILLS• C/Java programming concepts
• Loop • Selection• Psuedocode• Recursive Functions
• Calculus• Polynomials• Exponentials• Logarithms• Factorials
• Formal Proofs (Induction)• Data structures
• Arrays• Heap• Tree• Linked lists • Stacks • Queues
Any questions?