|
Instructor |
Sven Anderson |
|
Office |
RKC 205 |
|
Phone |
752-2322 |
|
Office Hours |
TBA |
How do rumors and fashions spread in society? Do ocean currents affect global climate change? Do animal populations vary randomly? In this course we will use computers to build virtual worlds that allow us to explore questions like these. You will also have the chance to build models that answer questions that interest you. Prerequisite: strong background in pre-calculus mathematics or its equivalent and eligibility for Q courses.
By the end of this course you will know how to create a model for a problem like the following:
People often seem to desire to live with others of their own kind. Under what conditions will this lead to the formation of stable ghettos? What individual personality traits determine how much the residents of a ghetto integrate with other groups in the population?
As you can see, this course is about problem solving. You will learn how to reduce complex real-world situations to a simplified mathematical model and then build a computer simulation based on your simplified model. Finally, you will learn to analyze the simulation in order to learn about the original problem. In the process you will learn basic computer programming and elements of dynamics, probability, and statistics.
You will need a copy of the text Simulation for the Social Scientist (2005, 2nd edition) by Gilbert and Troitzsch, Open University Press, ISBN 0-335-21600-5.
We use Netlogo agent-based modeling software which you can download from http://ccl.northwestern.edu/netlogo/.
We will make extensive use of Web-based materials. Our homepage is http://turing.bard.edu/~sven/115. You should check it frequently.
Classes will be devoted to introducing material, posing problems, and beginning solutions. You will usually have to finish the solutions outside of class. There will be problems and programs to work on nearly every week. You should complete these problems each week, since each week builds on the preceding weeks' ideas and skills. If you conscientiously work on the assignments, you should do very well (and have fun while you are doing it). Very often I will require that you work in small groups during class. This is an essential, hands-on part of your learning. Part of your grade will be based on how well your group performs.
The development of scientific, mathematical, and computational topics will be based on a series of simulations that arise in response to questions we ask. Most classes will involve both lecture and hands-on activities. Every student will also develop their own simulation over the course of the semester.
I encourage
all students to collaborate; you should discuss coursework and
programming problems. Copying code without attribution, however, is
not permitted. Copied code will receive no credit and will be
treated as scholastic dishonesty.
Attendance is extremely
important, since there is no textbook for much of this course and new
concepts will be introduced as the need for them arises. If you must
miss class, please let me know prior to the class you miss. I am much
more forgiving of absences that are explained before they occur.
If you miss a class, please be sure to meet with me to learn what was
missed.
Your final grade is calculated from the following weighting:
|
In-class assignments, quizzes and participation |
20% |
|
Homework |
35% |
|
Tests |
30% |
|
Project |
15% |
The schedule of topics is not completely set. The topics we cover will be dictated by a sequence of increasingly complex modeling problems. For each general problem type, I will provide at least one concrete example. We may not choose to answer the problem posed by the example, but we will try to model and understand problems of the same type. When the solution to a problem requires some new idea or skill, we will pause to learn it before we can solve the problem. A significant part of the class will involve figuring out what we need to know before we can simulate a system.
|
Model Type |
Example |
Programming Concepts |
Mathematical Concepts |
|
Using a model to understand a complex system. |
Social mixing |
None |
None |
|
Single variable dynamic system |
Hawks and doves Mass and spring |
Methods, user interfaces, conditionals |
Discrete dynamic systems Linear dynamics |
|
Stochastic system |
Randomly moving robotic lawn mower Waiting at the doctor's office |
Random number generation Variables |
Random numbers Discrete probability |
|
Cellular automata |
Game of life The formation of ghettoes |
Advanced methods, iteration |
|
|
Agent-based systems |
Groups of shoppers Synchronously flashing fireflies |
Multi-agent data structures in NetLogo |
Basic statistical descriptors |
|
Changing multi-agent systems |
Evolution Neural learning |
|
|
A more detailed schedule is available on the course website. This schedule will be updated as the semester progresses.