CSCS Home Page UM Home Page



CSCS 530: Computer Modeling of Complex Systems -- Winter 2008

Wed,Fri 1.00 - 2.30 pm
Rick Riolo (http://cscs.umich.edu/~rlr)
rlriolo at umich edu

Note location:
The first class will meet in the CSCS commons, 317a West Hall. Lab sessions will be in the CSCS computer lab, 321 W. Hall.

Important note regarding registration:
The course is currently listed with a cap of 12 students. The final course size will be in the 15-20 range. If you are interested in registering, please just get on the waitlist. We will be give priority in this order:

  • CSCS/IGERT students
  • other graduate students
  • undergraduates (within undergrads, some priority to seniors)

with first-come-first serve within each category. In past years, everyone who has wanted to stay in the course has been able to, even when the waiting list starts out fairly large, as people sign up early but drop before the term starts, or drop after they find out how hard the course is going to be (! ;-)). So if you are interested, I recommend you get on the waitlist, come to the first class or two, and then we can see what shakes out. If you have questions, feel free to contact me.

Goals of CSCS 530

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. (We will only briefly look at other approaches.) The bulk of the course will involve "learning by example", i.e., students will:

  • read, discuss, evaluate a number of models from a variety of disciplines.
  • Modify and run experiments with exisiting models.
  • Design, implement, run, write-up results from their own models.

The course will cover all aspects of the modeling process itself, from model design through implementation to analyzing, documenting and communicating results. NOT focus on the approach/topics covered in typical IOE/OR courses, using DES, etc, to model queues, etc, and it will NOT cover "systems dynamics" approaches, which use equation-based approaches to model "stocks and flows".

The emphasis in CSCS 530 is on "Exploratory Models" of more generic complex (adaptive) systems and/or phenomena (vs. "predictive" models for specific situations), but we will cover issues relevant to both types of models, in particular, model verification and validation.

The course assumes no background in Complex Systems Studies (e.g., CSCS 501 is 'not a pre-requisite). A beginning knowledge of programming is assumed. The course will be taught using Repast and the Java programming language. The course will start with a brief/rapid introduction to programming in Java, so students who know some other programming language and can learn Java quickly will be able to pick up what they need.

If you need an introduction to programming in general, to working in the linux/unix enviroment, to programming in the Java/RePast, please consider this short (1 credit) course: CSCS 531 - Short Workshop Series: Basic Computing Skills for Programming Agent Based Models, offered in fall terms. You also can brush up on Java by going through the programs and assignments listed off that course's web pages.

Classwork and Grades for CSCS 530:

0. CLass discussion                      20%     
   (An incentive to read and discuss!)
1. Short Project #1                      15%
2. Short Project #2                      15%
3. Short paper.                          15%   (related to term project)
4. Term project                          35%

Project Due Dates -- all projects

Important links


"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."

Brian Kernighan