CSE429: Algorithms for Modern Computing Systems

Syllabus: Spring 2025

Prof. Russ Miller

338F Davis Hall

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

Syllabus:

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, then CSE4/529, and currently, CSE429 and CSE529, separately.

After significant perseverance, CSE429 and CSE529 were separated as of the 2023-2024 academic year. The intent was to teach CSE529 only to graduate students during Fall semesters and CSE429 only to (an unlimited number of) undergraduate students during Spring semesters. However, undergraduate students have been very vocal about their lack of comfort with the Spring 2024 version of CSE429 on a wide variety of fronts. As such, we are making modifications to the course for Spring 2025. Modifications include limiting the number of students, changing the grading policy, removing access to optional reading materials, and the like, based on student feedback.

Prerequisites: Calculus I, Calculus II, Discrete Structures, and an upper level course in Data Structures and their Algorithms. In particular, CSE250 (Data Structures) is required and CSE331 (Introducation to Algorithms) is highly recommended.

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).

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 with a notation on your transcript that the F was a result of Lack of Academic Integrity. In addition, other sanctions will likely be sought, including, but not limited to, being dismissed from the university.


  • Course Dates
  • Course Information

    Reading Material (Changed due to student input from Spring 2024.)

    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: You will be enrolled in Piazza after the Drop/Add deadline.

    Grading Policy (Changed due to student input from Spring 2024):

    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.

    Personnel

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



    Copyright © 2025 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.