Design and analysis of efficient algorithms with emphasis of non-numerical algorithms such as sorting, searching, pattern matching, and graph and network algorithms. Measuring complexity of algorithms, time and storage. NP-complete problems.
Algorithmic problems arise in almost every area of computer science. This course exposes students to a variety of algorithms for problems from various domains. Particular emphasis is on the most basic problems, those that arise in many different applications, such as sorting, graph search, or finding the minimum spanning tree. Students should learn how the speed of algorithms greatly impact their utility. They should learn elementary mathematical techniques to analyze algorithms for correctness, time complexity, and memory use. They should become familiar with the most efficient algorithms for the basic problems. They should learn the most useful methods for designing efficient algorithms, and know how to apply them to new problems.
NOTE: Repeat credit process for cross-reference courses: Students may receive credit for CSE 101 or Math 188. These courses have been cross-referenced, therefore, a petition is not required for using either course when completing major requirements. However, if you fail one of the courses listed about you should take the SAME COURSE for REPEAT CREDIT. If you use another course that is equivalent, the repeat credit is not automatic and you will need to petition for repeat credit.
Most of the course will be mathematical. However, depending on the instructor, there may be additional laboratory projects, requiring the students to implement algorithms and compare their actual performance to their mathematical analysis.
Please see Prerequisites page.
Equivalent to Math 188. Credit not offered for both Math 188 and CSE 101.
Fall, Winter, and Spring. Please see Tentative Course Offerings page.