CSCI 102: Introduction to Computational Modeling

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

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

What to Believe

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:
Problem Set #5

06 Apr
Week 12
Sensor Networks

Python Intro

Lab 12: Remote Sensing in Python Course Evaluations Exam #6