CS550 is an elective dual level course (for both undergraduate and graduate students) intended primarily for computer science majors, but also useful for students in other disciplines including electrical and computer engineering, mathematics, psychology, linguistics, etc. It provides an introduction to algorithms, heuristics, data structures, and computational frameworks for complex problem-solving domains typical of artificial intelligence applications. It is one of two courses covering traditional and alternative approaches to complex problem-solving and focusses primarily on symbol-based paradigms.
Required prerequisites for CS550 are CS108 Intermediate Programming and either MA245 Discrete Mathematics or MA523 Mathematical Logic. CS310 Data Structures has proven very helpful as background for students in the past. CS320 Programming Languages and CS560 Algorithms and their Analysis are also useful courses to have taken, though the material should be accessible without them. Strong engineering, psychology, or linguistics backgrounds may also substitute well. If you have questions or concerns about your background, please send an email to or stop by the office of the instructor.