Parallel and Sequential Data Structures and Algorithms

Course ID 15210

Description Teaches students about how to design, analyze, and program algorithms and data structures. The course emphasizes parallel algorithms and analysis, and how sequential algorithms can be considered a special case. The course goes into more theoretical content on algorithm analysis than 15-122 and 15-150 while still including a significant programming component and covering a variety of practical applications such as problems in data analysis, graphics, text processing, and the computational sciences. NOTE: students must achieve a C or better in order to use this course to satisfy the pre-requisite for any subsequent Computer Science course.

Key Topics
Parallel Programming, Generating and Analyzing Algorithms, Higher Order Programming, Practical Applications - Data Analysis, Graphics, Text Processing.

Learning Resources
Course Textbook, AutoLab, Gradescope, Piazza, Notation Supplement, Course Website

Course Relevance
For students already experienced with fundamentals of functional programming

Course Goals
Learn how to design, analyze, and program algorithms and data structures with a functional programming language. Ability to analyze algorithms with an emphasis on parallelism.

Pre-required Knowledge
None, but familiarity with SML is highly recommended

Assessment Structure
Assignments 40 percent, Exam 1 - 15 percent, Exam 2 - 15 percent, Final 26 percent, Recitation Participation 4 percent.

Course Link