CSCI 102 : Introduction to Computational Modeling
General Information
![]() |
![]() |
![]() |
Lecture: MWF 11:15-12:10 Parmly Hall 307 Lab: T 9:05-12:10 Parmly Hall 405 Professor: Simon D. Levy Office: 407B Parmly Hall Office Phone: 458-8419 E-mail: simon.d.levy@gmail.com Office Hours: MWF 1:30-3:30 and by appointment |
Textbook: Angela B. Shiflet and George W. Shiflet, Introduction to Computational Science, (Second Edition) Princeton University Press, 2014.
Objectives
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 math (mainly, algebra and trigonometry). 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. 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. Perhaps most importantly, you will come to appreciate the importance of experiencing and dealing with failure and frustration as unavoidable waypoints on the path to success.
If you’re still wondering why you have to take this course for your major (Neuroscience, Biology), consider the following remark from the most recent external review of the Neuroscience program:
We thought that one of the most distinctive elements of the neuroscience major was the computer science (CS) component. Being able to offer courses in scientific computing and computational modeling provide[s] a tremendous educational benefit to the majors.
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.
As for making up missed exams, quizzes or labs, my rule is simple: You can only make up a missed exam, quiz, or lab if you have (1) a genuine medical emergency, documented by a visit to the health center or other provider; (2) a professional obligation, like an interview for a job or medical / graduate school; or (3) a genuine concern about your ability to travel safely to campus during inclement weather. Please do not waste my time or your own with other excuses; I will not respond to email or other communication involving them.
Optional 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 have the opportunity to spend the final two lab sessions preparing 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. If you decide to do a final project, an email with a paragraph or two outlining your project project proposal will be due by the end of the ninth week (20 March).
Grading
I will determine your course grade as follows:
- Six short exams, occasional quizzes: 30%
- Six problem sets, due midnight Friday: 20%
- Final project or final two labs: 10%
- Lab work, due at end of lab period: 40%
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.
Here is a histogram of last year’s grades for CSCI 121, to give you some idea of the grade you can expect in this course.
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 your Sakai dropbox 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
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
|
12 Jan Week 1 |
Course Intro.
Readings: |
Lab #1: Systems Dynamics Tools, Part 1 | Quiz #1: Three outside readings | 1.2 The Modeling Process | |
19 Jan Week 2 |
5.2 Errors | Lab #2: Systems Dynamics Tools, Part 2 | 2.2 Rate of Change | Due: Problem Set #1
Exam #1 |
|
26 Jan Week 3 |
2.2 Unconstrained Growth | Lab #3: Drug Dosage | 2.3 Constrained Growth | ||
02 Feb Week 4 |
Numerical simulation methods: 6.2 Euler’s Method |
Lab #4: Falling & Skydiving | Numerical simulation methods: 6.4 Runge-Kutta 4 Method |
6.4 Runge-Kutta 4 Method
Due: Problem Set #2 Exam #2 |
|
09 Feb Week 5 |
Data-driven models: 8.2 Function Tutorial |
Lab #5: Numerical Simulation methods | 8.2 Function Tutorial | 8.3 Empirical Models | |
16 Feb Week 6 |
8.3 Empirical Models | Lab #6: Spread of disease & Predator/Prey | 9.2 Simulations | Special topic: Monte Carlo Simulation
Due: Problem Set #3 Exam #3 |
|
02 Mar Week 7 |
9.4 Random Numbers from Various Distributions | Lab #7: Random Numbers | 9.4 Random Numbers from Various Distributions | 9.5 Random Walk Simulations | |
09 Mar Week 8 |
Special topic: Bayesian Modeling | Lab #8: Monte Carlo Area & Random Walks | Bayesian Modeling | SSA Conference: No class
Due: Problem Set #4 Exam #4 (take-home) |
|
16 Mar Week 9 |
10.2 Diffusion & Cellular Automata | Lab #9: Cellular Automata in Matlab | 10.2 Diffusion & Cellular Automata | Due: Project Proposals |
|
23 Mar Week 10 |
Intro. to Matlab | Lab #10: Introduction to R | High-Performance Computing: 12.1 Concurrent Processing |
Exam #5 | |
30 Mar Week 11 |
High-Performance Computing: 12.1 Concurrent Processing |
Lab #11: Intro to Unix and MPI | High-Performance Computing: 12.2 Parallel Algorithms |
Special Topic: Sensor Networks
Due: |
|
06 Apr Week 12 |
Sensor Networks | Lab 12: Remote Sensing in Python | Course Evaluations | Exam #6 |