Analysis of Algorithms (CSE 373)
Course Description
CSE 373: Analysis of Algorithms is a course that focuses on the analysis of algorithms and their efficiency. The course is designed to provide students with a solid understanding of the different algorithms and techniques that can be used to analyze them. The course covers a wide range of topics, including asymptotic analysis, data structures, and sorting algorithms. It also delves into graph algorithms, dynamic programming, and network flow algorithms. The course is geared towards computer science students who are interested in algorithm design, analysis, and optimization. One of the key concepts covered in the course is asymptotic analysis. This involves analyzing the behavior of an algorithm as the input size approaches infinity. Asymptotic analysis helps to determine the efficiency of an algorithm and its scalability. Students will learn how to use the big O notation to describe the upper bound of an algorithm's time complexity. Another important topic covered in the course is data structures. Students will learn about different data structures such as arrays, linked lists, stacks, queues, trees, and graphs. They will learn how to implement these data structures and analyze their time complexity. Sorting algorithms are also a significant focus of the course. Students will learn about popular sorting algorithms such as bubble sort, insertion sort, quicksort, and mergesort. They will analyze the time complexity of these algorithms and understand the trade-offs between them. Graph algorithms are another key topic covered in the course. Students will learn about different graph algorithms such as depth-first search, breadth-first search, Dijkstra's algorithm, and Kruskal's algorithm. They will learn how to apply these algorithms to solve real-world problems such as network routing and minimum spanning tree problems. Dynamic programming and network flow algorithms are also covered in the course. These algorithms are used in a wide range of applications such as optimization, scheduling, and resource allocation. Overall, CSE 373: Analysis of Algorithms is an essential course for computer science students who want to develop a deep understanding of algorithm analysis and design. The course equips students with the knowledge and skills they need to analyze and optimize algorithms in a wide range of applications. Author: Steven Skiena