CSE4/529: Algorithms for Modern Computing Systems

Syllabus: Spring 2023

Prof. Russ Miller

338F Davis Hall

Read this before sending e-mail to miller@buffalo.edu


Teaching Environment:

Overview: This course is concerned with the design and analysis of algorithms for sequential and parallel models of computation. Traditional algorithmic techniques, including divide-and-conquer, will be discussed. Models of computation include the traditional RAM, as well as standard parallel models, including the shared-memory PRAM, as well as networked models configured as arrays, rings, meshes, hypercubes, and pyramids. We also consider innovative parallel models that involve dynamic reconfiguration. In addition, we discuss algorithmic strategies for Network of Workstations, clusters, grids, and clouds. Problem domains include computational geometry, graph theory, image analysis, sorting, and searching. Time, space, and processor complexity of solutions to problems are a critical component to the course.

History of CSE4/529: I have been teaching this course for 35+ years. It was originally labeled CS4/531 and then CSE4/531. In 2013, it was relabled as CSE4/529 to distinguish it from a traditional course in algorithms, which retained the label of CSE4/531, and to allow students to take both a course in algorithms for modern compute systems and a course in traditional sequential algorithms.

Recently, the number of undergradute students enrolled in the course has been approximately the same as the number of graduate students enrolled in the course. That said, the objectives, pace, and level of detail of CSE429 and CSE529 are quite different. Please note that since the course is presented as a cross-listed senior-level course and a first-year graduate course, that in Spring 2023, CSE4/529 will continue to be taught as a graduate-level course, where undergraduates are welcome and encouraged to take the course, and will be graded on a different scale than the graduate students.

Prerequisites: Calculus I, Calculus II, Discrete Structures, and a junior- or senior-level course in Data Structures and their Algorithms. Students are responsible for the material in chapters 1-13 of Introduction to Algorithms, by Cormen, Leiserson, Rivest, and Stein. This includes, for example, asymptotic notation, recurrence equations, and quicksort. In addition, students are also responsible for pointers, lists, stacks, queues, binary trees, and balanced trees (e.g., AVL, Red/Black, B-trees). Note that many students struggle in this course because they are unprepared in terms of such material. There will not be any review of this material in class. It is your responsibility to have an excellent command of this prerequisite material, including the mathematics, data structures, algorithms, and methodologies discussed, as well as have an excellent command over programming skills in high-level languages.

Lecture: TTh 2:00-3:20 via Zoom

Academic Integrity:Plagairism in any way, shape, or form, will earn you an F in the course. In addition, other sanctions will likely be sought, including, but not limited to, being dismissed from the university.

University Information:

  • Course Dates
  • Course Information

    Required Reading Material

    Projected Order of Material (with chapters from M&B listed):

    Succeeding in this course (student view): Students consistently state that the following is key to success in this class.

    Piazza: TBA

    Grading Policy:

    Final Letter Grades: These are the final "curved" grades. (That is, there is no need to ask me during the semester if I will curve the final grades.) These numbers are points, not percentages, and include any additional bonus points (i.e., there will be more than 100 points available in the course). There will be "+"s and "-"s that will be determined after the numeric grading for the semester is complete.

    Sample Exams (Midterms only; No solutions):


    Disclaimer: I reserve the right to change any part of this syllabus at any time.

    Copyright © 2023 by Russ Miller.

    All rights reserved. No part of this document may be used in any form by any electronic or mechanical means without permission in writing by the author.