Russ Miller
UB Distinguished Professor

Dept of Computer Science & Engineering
State University of New York at Buffalo

Teaching

Main
Biography
Photos/Videos
Media Coverage
Research
Major Results
Shake-and-Bake
Music/Philosophy
Publications
Presentations
CI Lab
Projects
Equipment
Publications
News
CCR
Teaching
Personal Info
Contact Info
  • CS 237: Introduction to Scientific Computing

  • This course offers an introduction to the fundamental numerical techniques used in high-performance scientific computing. These methods include sorting, numerical integration, root finding for nonlinear systems, elementary linear algebra, and basic ordinary differential equations. The emphasis of this course is on an experimental approach to scientific computing. The students will learn the basics of Unix, will write and debug programs in FORTRAN, and will use computational and visualization tools in Matlab.

  • CSE 4/529: Algorithms for Modern Computing Systems
    CSE 4/531: Analysis of Algorithms

    This course(s) covers fundamental concepts of design and analysis of algorithms for modern computing systems. Such compute systems include network-based fine-grained parallel computers, shared-memory computers, general multi-core and multiple processor systems, GPU-based systems, clusters, grids, and clouds.

    The first part of the course will focus on i) methods of asymptotic analysis, ii) the traditional von Neumann architecture (sequential computer), as well as iii) the aforementioned modern computing systems. The second part of the course will focus on fundamental computational paradigms and their implementation on a variety of modern computational systems.

    Much of the analysis will be considered in terms of running time, size of data, number of processors/cores, interconnection networks, cost, and work, to name a few. Asymptotic analysis will be used as a measure of these performance metrics and design options.

    Since the mid-2000s, this course has been taught as a theoretical course with three exams serving as assessments. While homeworks and programs are assigned, they are not collected/graded and have no impact on the students' grades.

    Note that I have been teaching this course since 1986, initially under the title of Analysis of Algorithms (CSE4/531). In 2013, the Department relabeled this course to CSE4/529 to distinguish it from the traditional sequential algorithms course, which now uses the course number CSE4/531.

    In recent years, the required text for the course has been Algorithms Sequential and Parallel: A Unified Approach (Third Edition).

    With permission, cool, and very useful, images by Lauren Richardson, 2021 (Use your mouse to navigate around on these models.):

    Current and Previous CSE4/529 and CSE4/531 Courses

    Fall 2025
    Spring 2025
    Fall 2024
    Spring 2024
    Fall 2023
    Spring 2023
    Fall 2022
    Spring 2022
    Fall 2021
    Fall 2020
    Fall 2019
    Spring 2019
                            Fall 2018
    Fall 2017
    Fall 2016
    Fall 2015
    Fall 2014
    Fall 2013
    Spring 2012
    Spring 2011
    Spring 2010
    Spring 1998
    Spring 1997
    Spring 1996

This seminar series focuses on fundamental aspects of Grid computing and Cyberinfrastructure. Some of the student presentations are available.

  • Seminar on WWW

This "seminar" is open to graduate students and undergraduates, by permission of instructor. Topics to be covered include HTML, CGI, perl, Java, and issues of security, to name a few.


CCR-Affiliated Summer Workshops, Courses, and Certificates