Modeling, Simulation and Analysis (Spring 2015)
This class is taught by Jay McCarthy. Call him Jay. Email him at jomccarthy AT vassar DOT edu.
We meet in SP309 at 15:10-16:25 MR.
Jay McCarthy’s office hours are 1pm-4:30pm M-F (except when teaching) in SP104.4.
There is a mailing list hosted at Google Groups. Use it to ask non-revealing questions and receive answers, as well as general course announcements. You are responsible for reading the content of this mailing list.
1 Introduction
Principles of computation in the sciences, driven by current applications in biology, physics, chemistry, natural and social sciences, and computer science. Topics include: Discrete and continuous stochastic models, random number generation, elementary statistics, numerical analysis and algorithms, discrete event simulation, and point and interval parameter estimation. Students pursue projects that involve modeling phenomena in two to three different fields and simulate the model in order to understand mechanisms and/or explore new hypotheses or conditions.
2 Lectures
| Day |
| Date |
| Topic |
| Links |
| Notes |
| 1 |
| 01/29 |
| Introduction |
|
| ||
| 2 |
| 02/02 |
| Numbers on Computers |
|
| ||
| 3 |
| 02/05 |
| (cont) |
|
| * | |
| 4 |
| 02/09 |
| "Random" Numbers |
|
| * | |
| 5 |
| 02/12 |
| (cont) |
|
| * | |
| 6 |
| 02/16 |
| Interpolation, Extrapolation and Regression |
|
| * | |
| 7 |
| 02/19 |
| (cont) |
|
| * | |
| 8 |
| 02/23 |
| Numerical Integration |
|
| * | |
| 9 |
| 02/26 |
| (cont) |
|
| * | |
| 10 |
| 03/02 |
| Numerical Differentiation |
|
| ||
| 11 |
| 03/05 |
| (cont) |
|
| * | |
| 12 |
| 03/09 |
| Linear Programming |
|
| * | |
| 13 |
| 03/12 |
| (cont) |
|
| ||
| 14 |
| 03/30 |
| Optimization |
|
| ||
| 15 |
| 04/02 |
| (cont) |
|
| ||
| 16 |
| 04/06 |
| Elementary Statistics |
|
| ||
| 17 |
| 04/09 |
| (cont) |
|
| ||
| 18 |
| 04/13 |
| Monte Carlo methods |
|
| ||
| 19 |
| 04/16 |
| (cont) |
|
| ||
| 20 |
| 04/20 |
| Fourier transforms |
|
| ||
| 21 |
| 04/23 |
| (cont) |
|
| ||
| 22 |
| 04/27 |
| Event Simulation |
|
| ||
| 23 |
| 04/30 |
| (cont) |
|
| ||
| 24 |
| 05/04 |
| Parallelism & Concurrency |
|
| ||
| 25 |
| 05/07 |
| (cont) |
|
| ||
| 26 |
| 05/11 |
| (cont) |
|
| ||
| 27 |
| 05/22 |
| No Final |
|
|
Jay will not be present on days marked with a * in the Notes column.
This schedule is likely to change.
3 Assignments
| Assignment |
| Code |
| Out |
| Due |
|
| prog1 |
| 01/29 |
| 02/19 | |
|
| theory1 |
| 02/16 |
| 03/12 | |
|
| prog2 |
| 03/12 |
| 04/23 | |
|
| theory2 |
| 04/16 |
| 05/11 | |
|
| final |
|
|
| 05/22 |
Out dates are suggestions—
This schedule may change.
4 Turn-In and Grading
I highly recommend that you read this article about grading. I also recommend you read this article about the stress that you may experience in a computer science program. Please try to make healthy productive choices in your life. I would love the opportunity to help you in any ways I can.
4.1 Turn-in
You should email your assignments to me before 6PM Poughkeepsie time on the due date listed. If you send an assignment late (even by a single second), it will not be graded. This is a real due date and due time. Please use this early due time to get a good night’s sleep and enjoy your evenings.
Your email should have [CS250] code as the subject, where code is the code listed on the assignment table. Do not send multiple emails, if you do, I’ll count the oldest one.
Your email should contain one Zip file with your code and data files inside it, such that they extract to a directory with the same name as the code of the assignment. Any non-code documents should be submitted as a PDF and should not be in the Zip (so that I can just look at them in my browser and download the Zip separately.) I recommend producing PDFs with LaTeX.
Finally, you should CC your peer so they can see your finished version.
4.2 Assignment Scores
Each assignment’s page describes how it will be graded. All assignments will receive a grade from the closed interval between 0 and 1.
4.3 Participation Points
Throughout the course, you will have the chance and necessity of helping each other and presenting to the class. Each time you fulfill one of these duties, you will get a participation point. You should target on getting about 6 participation points (1 for each assignment and 2 for presentations.)
The main way that you’ll get them is through peering. On every assignment, you’ll send your work to me and to another student. That student will read your work in detail, as if they were me, and give you useful feedback on your work. You should work out with each early who you’d like to peer on various assignments. Unless it isn’t possible based on the parity of the class, I’d prefer that you don’t peer for the same person more than absolutely necessary.
4.4 Numeric Grade
I will take your various points and combine them with this function to get a numeric grade:
> (define (combine pp prog1 theory1 prog2 theory2 final) (+ (* 0.2 (/ pp 6)) (* 0.1 prog1) (* 0.2 theory1) (* 0.3 prog2) (* 0.3 theory2) (* 0.1 final)))
Examples: | ||||||||
|
A few things to notice about this function: Your final score can be more than 1, which means you can consider pieces of various assignments as extra credit. The first assignments are weighted significantly less than the later ones, so you can get used to how things are graded in the class. Finally, I am committed to faithfully removing my whims from this scoring function, so you can count it. This means, for instance, if you don’t need to do the final to get the score you want, then feel free to skip it.
4.5 Letter Grade
> (define (convert-to-letter ng) (cond [(> ng 0.93) "A"] [(> ng 0.9) "A-"] [(> ng 0.86) "B+"] [(> ng 0.83) "B"] [(> ng 0.8) "B-"] [(> ng 0.76) "C+"] [(> ng 0.73) "C"] [(> ng 0.7) "C-"] [(> ng 0.66) "D+"] [(> ng 0.6) "D"] [else "F"]))
Examples: | ||||||||||||||||
|
5 Help
My job is to help you.
If you need a "shallow" amount of help, then look at the Google Group. First, see if I have already answered your question. Then, send your own email.
Only send me personal email if you need to talk about something private, such as your grades. Anything else is best discussed in public, so others can benefit. If you do send personal email, put [CS250] as a prefix in the subject.
If you need a "deep" amount of help, please come to my office or call me (801-361-0732) and we’ll talk and try to resolve whatever ails you.
6 Readings
We won’t be using a traditional book. Occasionally, I’ll email out articles I’d like you to read before class.
7 Software
In this course we will be writing and talking about many algorithms. The content and ideas of these algorithms is far more important than their implementations. I won’t stress out about how you write them and I suggest that you try to use this as an opportunity to learn about a new programming language or system you haven’t used before. I’ll be able to help you with most choices you make.
8 Fine Print
I support and implement all the general policies of Vassar, including but not limited to those related to students with disabilities, plagiarism, and respectful classroom etiquette. I expect you to always attend class. We’ll have an administration-scheduled final. And, from the administration:
"Academic accommodations are available for students registered with the Office for Accessibility and Educational Opportunity (AEO). Students in need of disability (ADA/504) accommodations should schedule an appointment with me early in the semester to discuss any accommodations for this course that have been approved by the Office for Accessibility and Educational Opportunity, as indicated in your AEO accommodation letter."