U-M Courses

Please contact the instructor for information about the current schedule.

LSA Honors 352 Cyberscience: Computational Science and the Rise of the Fourth Paradigm

This course invites students to explore the social and technical development of computing for the sciences, from the ENIAC through the top-500 list of supercomputers and on to Amazon’s EC2. Through a selection of readings, discussions with invited guests, and first-hand experimentation, students in the course will learn about an assortment of technologies that underlie modern scientific inquiry, investigate their use by UM cyber-scientists, and gain an appreciation of the fiscal, political and social challenges posed by this growing area of scholarship.

This class is also available online at no cost via Open.Michigan: open.umich.edu/education/lsa/honors352/fall2010.

A&D 306 - Digital 3-D (not currently offered)

This course will introduce students to using 3-D computer modeling for art and design. The course will give students a functional understanding of modeling in Rhino and Maya and prepare them to build on this understanding for more advanced courses and projects.  Two sections of Digital 3-D will meet concurrently with students switching sections halfway through the semester. Students from both sections will spend half of the semester with John Marshall focusing on accurate NURBS models using Rhino. The other half of the semester will be spent with Elona Van Gent focusing on polygonal model topology using Maya. Students will learn to create and edit models using both approaches to 3-D modeling as tools for visualization, animation, and digital fabrication. Occasionally both sections will meet together for presentations and reviews.

A&D 410 – Creative Computation (not currently offered)

The course focuses on exploring possibilities of using programming, computation and the latest developments in machine learning as medium for creative production. The course exposes EECS and A&D students to the content, methods and pedagogical processes found in each other’s academic disciplines and focuses on developing synergy between the two disciplines in order to explore the potentials of new interdisciplinary practices.

Complex Systems (CMPLXSYS) Undergraduate Level Courses

CMPLXSYS 531 – Basic Computing Skills for Programming Agent-Based Models

This class covers the basic computing skills required for implementing agent-based models (ABM) using RepastJ (and other similar ABM packages) in a linux/unix environment. The class is primarily for students who are intending to take CSCS 530, Computer Modeling of Complex Systems, in Winter term, but who have little or no computing programming background.

CMPLXSYS 530 – Agent-Based Modeling of Complex (Adaptive) Systems

The purpose of this course is to introduce students to the basic concepts, tools and issues which arise when using computers to model complex (adaptive) systems (CAS). The emphasis will be on agent-based, bottom-up computer models.

EARTH500 – Introduction to Computer Programming (formerly GS500)

Computational methods have become increasingly important for quantitative modeling and data analysis in the Natural Sciences. Many students are familiar with programs such as Excel, Mathematica, or Matlab , that provide easy-to-use graphical interfaces, robust numerical methods, and visualization tools. Yet, for work on extensive data sets, advanced modeling of physics and chemistry, parallel computing, and batch processing of many data sets it is often necessary to use more efficient and inherently more powerful computational techniques that are based on linux computing and computer programming.

EECS 587 – Parallel Computing

This class teaches how to use modern parallel computers (clusters, GPUs, etc) to solve a wide range of problems. Half of the grade is a term project which the student can select to match their research interests. Students must be able to program moderately well in C, C+, or Fortran, but no prior experience with parallel programming is assumed. Typically about half the class is from Computer Science and Engineering, and half is from a wide range of other areas throughout the sciences, engineering, and medicine.

Math 671 – Scientific Computing: Algorithms, Computer Architecture, and Software

Overall the goal of this class is to introduce scientific computing with an orientation towards high performance computing and the creation of substantial scientific codes. The class will be a mixture of basic mathematical ideas and issues that arise from the interface of science with high performance computing. It will consist of segments devoted first to compilation units, linking and naming conventions, use of makefiles, mixed language programming (Fortran/C/C++), and the use of scientific libraries (BLAS, LAPACK, MKL, FFTW), and then to computer architecture including basic 64 bit x86 assembly programming, x86 register architecture, compiler optimizations, memory hierarchy (with an emphasis on shared memory programming using OpenMP), networks (with an emphasis on MPI), and GPU architecture

SI 721 – Data Mining: Methods and Applications

This is a doctoral seminar course of advanced topics in data mining. The course provides an overview of recent research topics in the field of data mining, the state-of-the-art methods to analyze different genres of information, and the applications for many real world problems.