COMPE 574 Fundamentals of Algorithms Spring Murat KARAKAYA Department of Computer Engineering
COMPE 574 Instructor: K. Murat KARAKAYA Office: Z-14 Lecture : Friday 1026 OfficeHour: Friday Z-14 TA: TBD 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 References Course Book: T.H.Cormen, C.E.Leiserson, R.L.Rivest and C.Stein: Introduction to Algorithms, 3 rd ed., MIT Press Other sources : E.Horowitz, S.Sahni: Fundamentals of Computer Algorithms, Computer Science Press, E.Horowitz, S.Sahni, S.Rajasekeran, Computer Algorithms, ISBN: , Silicon Press, J.Kleinberg, E.Tardos, Algorithm Design, Addison – Wesley, ISBN: , 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, 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 problem s WEEK(10): Dynamic programming vs. Greedy algorithms: Knapsack problem s 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?