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. Register for Lecture 1. All students will be waitlisted for Lecture 2 until Lecture 1 is full.

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

Required Background Knowledge
None, but familiarity with SML is highly recommended

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.

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

Assessment Structure
30% Assignments, 55% Exams, 10% Quizzes, 5% Participation

Course Link
http://www.cs.cmu.edu/~15210/