CSAL101: Algorithms and Complexity Course Overview Second Semester SY 2023-2024 Rodrigo C. Belleza Jr. Dean of College of Computing and Multimedia Studies Associate Professor V COURSE DESCRIPTION • The course covers approaches to the design and analysis of algorithms including important algorithms and their complexity. It covers topics on the analysis of algorithm efficiency, characteristics, and examples of major algorithms such as Brute Force and Exhaustive Search, Recursive and Backtracking, Divide-and-Conquer, Decrease-and-Conquer, Transform and Conquer, Space and Time Trade-Offs, Greedy algorithms, Dynamic Programming, and Machine Learning algorithms. LEARNING OUTCOMES After taking this course, you should be able to: 1. Evaluate algorithms efficiency in terms of time and space complexity; 2. Describe major algorithm designs; 3. Implement algorithms for each algorithm design; and 4. Choose among the major algorithm design the most appropriate to solve a given problem including discussion of space and time trade-offs. EXPECTED OUTPUTS LEARNING OUTCOME PORTFOLIO OUTPUT DUE DATE Analysis and efficiency evaluation of algorithms under Brute Force and Exhaustive Search algorithm design classification. 1, 2, 3, and 4 Computing problems that can be solved using recursion and backtracking, divide and conquer, and decrease and conquer algorithms. Analysis and efficiency evaluation of algorithms under transform and conquer, space and time trade-offs, and greedy algorithm design classification. Computing problem implementation that can be solved using Dynamic Programming, and machine learning algorithms. Midterm Period Final Period LESSON OUTLINE WEEK 1 2 3 4 PRELIM PERIOD LESSON/TOPIC Course Overview Introduction to Algorithms, Fundamentals of the Analysis of Algorithm Efficiency and Asymptotic Notation Brute Force and Exhaustive Search Algorithms Portfolio: Prelim Output LESSON OUTLINE WEEK 5 6 7 8 MIDTERM PERIOD LESSON/TOPIC Recursion and Backtracking Algorithms Divide and Conquer Algorithms Decrease and Conquer Algorithms Portfolio: Midterm Output LESSON OUTLINE WEEK 9 10 11 12 SEMI-FINAL PERIOD LESSON/TOPIC Transform-and-Conquer Algorithms Space and Time Trade-Offs Algorithms Greedy Algorithms Portfolio: Semi-Final Output LESSON OUTLINE WEEK 13 14 15-16 FINAL PERIOD LESSON/TOPIC Dynamic Programming Algorithms Machine Learning Algorithms Portfolio: Final Output GRADING SYSTEM • MIDTERM (40%) • Portfolio: Prelim Output – 30% • Portfolio: Midterm Output – 30% • Course Learning Outcomes Activities – 40% • FINAL (60%) • • • • Portfolio: Semi-final Output– 30% Portfolio: Final Output – 30% Course Learning Outcomes Activities – 25% Report – 15% TOOLS • Any programming language (Python, C/C++, Java) REFERENCES Books • Levitin, Anany (2012). Introduction to The Design & Analysis of Algorithms — 3rd ed. Pearson Education, Inc. • Neapolitan, Richard (2015). Foundations of algorithms —Fifth edition. Jones & Bartlett Learning, LLC • Karumanchi (2016). Data Structure and Algorithmic Thinking with Python. CareerMonk Publications Online • Geeks for Geeks. Algorithms : https://www.geeksforgeeks.org/fundamentals-of-algorithms/ Questions