CSCI 102 : Introduction to Computational Modeling

General Information

Lecture: MWF 10:10-11:05
Science Center G14

Lab: T 9:05-12:10
Parmly 302

Professor: Simon D. Levy
Office: 407B Parmly Hall
Office Phone: 458-8419
Office Hours: MWF 1:30-3:30
and by appointment

Textbook: Angela B. Shiflet and George W. Shiflet, Introduction to Computational Science, Princeton University Press, 2006.


This goal of this course is a hands-on understanding of the computational modeling methods that support science and technology today and that will be essential for success in science, engineering, and the business world tomorrow. The course is open to both science majors and non-majors and will benefit both. The only background you need for this course is high-school-level algebra. The central theme of the course is building computational models of the processes that surround us everyday, from the effects of drugs on the body to the interactions of nations in the global economy. We will learn about these models through classroom lectures and textbook readings, and will implement the models in lab with easy-to-use but powerful software tools that you will likely see again in your career. Though "having fun" is not an explicit goal of the course, you may be surprised at how enjoyable it is to put something together and watch it work, as opposed to just reading about it in a book and writing down answers. If you are a science major, you will come away from this course with a core set of concepts and skills that will serve you throughout your research career. If you never take another science or math course again, you will come away with an ability to think critically about trends in science, technology, and everyday life – an ability that will benefit you in any number of careers.

How is this course different from Computer Science 101 / 111 / 121 ?

Like CSCI 101, this course is an introduction to computing that assumes no background knowledge and does not require you to write programs. In 102, however, the focus is entirely on computational modeling. If you want to learn about how computers work, then 101 might be a better choice. CSCI 111 is an introduction to programming for Computer Science and Math majors and anyone interested in gaining general programming skills. If you are a science major (e.g. Biology, Geology, Neuroscience) and need to learn to program right away for your research, CSCI 121 would be of more immediate use to you; though (as with 101 and 111), 121 is also a natural follow-up for students whose interest is sparked by the material in 102.

Attendance, Preparation, and Labs

I will not take "official" attendance, but I will not help students who miss class for no good reason. The textbook is well-written and easy to follow, so I encourage you to keep up with the chapters as we cover them in class. A very nice feature of the textbook, which I will mirror in the classroom, is the organization of the materials into short modules of about 10 pages each – equivalent to about an hour of lecture. This means that you can keep up with the course by doing a small amount of reading each night, and coming to class every day. It also means that it will be easy to fall behind and eventually fail if you're not willing to make this small daily investment of time and effort. I also strongly encourage you to come to office hours. In my experience, the most successful students are the ones who first make a reasonable effort to do the homework on their own, and then come to office hours for help on finishing it.

The single most important aspect of the course is the labs, which is where you turn concepts into working models. Again, the policy is simple: do not miss lab. One missed lab puts you at risk for a bad grade, and two or more mean you're likely to fail.

Final Project

The whole point of modeling is, of course, that you have something interesting that you want to model! You may already be pursuing research that will benefit from what you learn in this course, or something may excite your interest along the way, or you may find a topic of interest in one of the modules that we did not have time to cover. No matter where the idea comes from, you will spend the final two lab sessions preparing and presenting a final project applying what you have learned in the course to modeling some interesting phenomenon. I welcome team projects, but it will be up to you to make sure that everyone contributes equally to both the work and the final presentation. Because PowerPoint presentations have become the universal standard in science, engineering, and business, you will do a PowerPoint presentation of your work, including any relevant graphics and video. As with the rest of the course material, help will be available for anyone unfamiliar with this tool or interested in improving their skills. An email with a paragraph or two outlining your project project proposal will be due by the end of the ninth week (18 March).


I will determine your course grade as follows: The fast pace of the course means that (with the obvious exception of genuine emergencies) no late work can be accepted, and no make-up exams will be given. As a way of helping with unanticipated emergencies and bad days, I will drop everyone's lowest lab, quiz, or homework grade. You don't want to waste this one allowance on anything but a genuine emergency.

The grading scale will be 93-100 A; 90-92 A-; 87-89 B+; 83-86 B; 80-82 B-; 77-79 C+; 73-76 C; 70-72 C-; 67-69 D+; 63-66 D; 60-62 D-; below 60 F.

Honor System

The quizzes and homework assignments should be done without assistance from other students. Because scientific research is such a collaborative activity, you may work with another student on the lab assignments and on a final project, but (1) this should be acknowledged in your submission, and (2) you still have another 50% of your grade left to earn on your own, so you want to be sure that you understand your own lab writeup! You're better off letting me know when you're having difficulty in lab, so we can work together on improving your understanding of the material.

Submission of Work

Lab work will be submitted as electronic documents copied into the turnin folder by the end of the lab period. You will mainly be turning in writeups, which you can create in MS Word, but you will also be turning in other kinds of documents like VensimPLE .MDL and Excel .XLS files. Every document should be named with your username, as well as some other identifying information; e.g., levys_lab1.pdf. You will receive no credit for a document that doesn't identify you as its author. Homework write-ups should also be submitted electronically, either through the turnin folder or as an email attachment (so you don't have to be on campus to submit it). Because PDF is the standard format for document exchange, you must submit writeups as PDF, not as MS Word .doc or .docx files, for which you will get no credit. To do the conversion, you can use the "Save as / PDF" feature in MS Word; if that feature is missing, there are also free on-line services like doc2pdf (scroll down to bottom, where it says Convert this document:). I strongly recommend that you keep your own copy of your work in a sensibly-named folder (usually in your H: drive), so that you can return to it in the future.

Tentative Schedule of Topics and Lab, with Online Notes







10 Jan
Week 1
Course Intro.
Stock Market Links: #0   #1   #2   #3  

Lab #1: Systems Dynamics Tools, Part 1 1.2 The Modeling Process

1.2 The Modeling Process

17 Jan
Week 2
2.2 Errors

Lab #2: Systems Dynamics Tools, Part 2 Founders' Day: Class Meets 9:50-10:35

2.3 Rate of Change
2.4 Fundamental Concepts of Integral Calculus

Due: Problem Set #1

Exam #1
24 Jan
Week 3
3.2 Unconstrained Growth

Lab #3: Drug Dosage 3.3 Constrained Growth

3.3 Drug Dosage
31 Jan
Week 4
Numerical simulation methods:
5.2 Euler's Method
Lab #4: Falling & Skydiving Numerical simulation methods:
5.4 Runge-Kutta 4 Method
5.4 Runge-Kutta 4 Method

Due: Problem Set #2

Exam #2
07 Feb
Week 5
Data-driven models:
8.2 Function Tutorial
Lab #5:Numerical Simulation methods 8.2 Function Tutorial
8.3 Empirical Models
14 Feb
Week 6
8.3 Empirical Models Lab #6:Spread of disease & Predator/Prey 9.2 Simulations

9.3 Area Through Monte Carlo Simulation

Due: Problem Set #3

Exam #3
28 Feb
Week 7
9.4 Random Numbers from Various Distributions

Lab #7: Random Numbers 9.4 Random Numbers from Various Distributions

Science Society & the Arts Conference: No Class
07 Mar
Week 8
10.2 Random Walk Simulations

Lab #8: Monte Carlo Area & Random Walks Intro. to Matlab

Intro. to Matlab

Due: Problem Set #4

Exam #4
14 Mar
Week 9
11.2 Diffusion & Spreading of Fire

Lab #9: Cellular Automata in Matlab 11.2 Diffusion & Spreading of Fire

Due:Project Proposals
21 Mar
Week 10
11.3 Movement of Ants & Artificial Life Lab #10: Movement of Ants in Matlab High-Performance Computing:
12.1 Concurrent Processing
High-Performance Computing:
12.1 Concurrent Processing

Due: Problem Set #5

Exam #5
28 Mar
Week 11
High-Performance Computing:
12.1 Concurrent Processing
Lab 11: Intro to Unix and MPI High-Performance Computing:
12.2 Parallel Algorithms
High-Performance Computing:
12.2 Parallel Algorithms
04 Apr
Week 12
High-Performance Computing:
12.2 Parallel Algorithms
Lab 12: MPI and CUDA Course Evaluations Due: Problem Set #6

Exam #6