Miscellaneous Information for Students
- Sending E-Mail to a Faculty Member: Read before sending e-mail to a faculty member, including me.
Attention, Students: Put Your Laptops Away:
For lecture courses, put away all technology (laptops, smartphones, tablets, and so forth).
- On-Line Clock: Display during class exams.
- Office Hours: Listed on Contact Info page.
Anonymous End-of-Semester Student Course Evaluations
CSE 529, Fall 2023
CSE 529, Fall 2022
CSE 429, Fall 2022
CSE 529, Spring 2022
CSE 429, Spring 2022
CSE 529, Fall 2021
CSE 429, Fall 2021
CSE 529, Fall 2020
CSE 429, Fall 2020
CSE 529, Fall 2019
CSE 429, Fall 2019
CSE 529, Spring 2019
CSE 429, Spring 2019
CSE 529, Fall 2018
CSE 429 Instructor, Fall 2018
CSE 429 Recitation, Fall 2018
CSE 4/529, Fall 2017
CSE 4/529, Fall 2016
CSE 4/529, Fall 2014
CSE 191, Spring 2018
CSE 191, Spring 2017
CSE 191, Spring 2016
CSE 191, Fall 2015
CSE 410, Spring 2021
CSE 410, Spring 2020
CSE 633, Spring 2023
CSE 633, Spring 2022
CSE 633, Spring 2021
CSE 633, Spring 2020
CSE 633, Spring 2019
CSE 633, Spring 2018
CSE 633, Spring 2017
CSE 708, Fall 2022
CSE 702, Fall 2018
CSE 702, Fall 2019
Undergraduate and Graduate Courses
(ordered by course number)
CSE 191: Discrete Structures
In this course, we present fundamental material that will be used as the foundation for more advanced courses in computer science and engineering. Topics are expected to include, but are not limited to, recursion, iteration, recurrence relations, asymptotic notation, evaluating resources for algorithms, graphs, logic, sets, and some basic counting theory. CSE 191 is required for computer science and computer engineering majors.
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
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
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
CSE 633: Parallel Algorithms
The focus of this course is on the design, implementation, and analysis of
student-chosen parallel solution(s) to disciplinary problems of interest
to the student and their implementation on modern large-scale
Students will have access to a variety of large multiprocessor systems and
will receive instruction on the efficient utilization of such systems in
addition to a variety of means (MPI, OpenMP, CUDA) of implementing algorithms
to run efficiently on such systems.
On-line tutorials and materials are available for MPI, OpenMP, and CUDA.
Prerequisite: Graduate standing in a STEM-based department. Note that
it is advantageous to have taken CSE 529 prior to this class, but it is not required.
More detailed course descriptions and presentations of recent offerings follow.
(roughly, in reverse chronological order)
Programming Massively Parallel Systems (Fall, 2017, 2018, 2019, 2020, 2021, 2022)
Stuff Miller Likes (Spring, 2016)
- Registration is limited and will be by permission.
Material should be proposed by the student during the initial meeting.
Programming Massively Parallel Systems (Spring, 2013)
- This seminar focuses on student projects involvinig high-performance
- Students will program HPC systems using, for example, OpenMP, MPI, CUDA, or similar.
- Students will work on projects of their own choosing.
- We will meet weekly, at a time convenient to all of those who register,
and discuss goals and progress.
- Students will share experiences and information in an effort to expedite
the progress of all participants.
- Please see information on related seminars on this page.
- Available for 1, 2, or 3 credits.
- Tutorials and fundamental information (e.g., MPI, PBS, CUDA, etc.)
can be found through the material listed under CSE633 and the
related CSE7XX seminars on this page.
Programming Massively Parallel GPGPU Systems (Fall 2009, Spring 2011, Spring, 2012)
Honors Seminar (Freshman): Computing at the High End (Fall, 2010)
Cyberinfrastructure (Fall 2007, Spring 2008)
Seminar on Grid Computing (2004-2006)
This seminar series focuses on fundamental aspects of Grid
computing and Cyberinfrastructure. Some of the student presentations are
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