On this page:
Modeling, Simulation and Analysis (Spring 2015)
1 Introduction
2 Lectures
3 Assignments
4 Turn-In and Grading
4.1 Turn-in
4.2 Assignment Scores
4.3 Participation Points
4.4 Numeric Grade
4.5 Letter Grade
5 Help
6 Readings
7 Software
8 Fine Print

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

 

code screen

 

 

3

 

02/05

 

(cont)

 

 

*

 

4

 

02/09

 

"Random" Numbers

 

code screen

 

*

 

5

 

02/12

 

(cont)

 

code screen

 

*

 

6

 

02/16

 

Interpolation, Extrapolation and Regression

 

code

 

*

 

7

 

02/19

 

(cont)

 

code

 

*

 

8

 

02/23

 

Numerical Integration

 

code

 

*

 

9

 

02/26

 

(cont)

 

code screen

 

*

 

10

 

03/02

 

Numerical Differentiation

 

code

 

 

11

 

03/05

 

(cont)

 

code screen

 

*

 

12

 

03/09

 

Linear Programming

 

code screen

 

*

 

13

 

03/12

 

(cont)

 

code

 

 

14

 

03/30

 

Optimization

 

code

 

 

15

 

04/02

 

(cont)

 

code

 

 

16

 

04/06

 

Elementary Statistics

 

code

 

 

17

 

04/09

 

(cont)

 

 

 

18

 

04/13

 

Monte Carlo methods

 

code

 

 

19

 

04/16

 

(cont)

 

code

 

 

20

 

04/20

 

Fourier transforms

 

code

 

 

21

 

04/23

 

(cont)

 

 

 

22

 

04/27

 

Event Simulation

 

code

 

 

23

 

04/30

 

(cont)

 

code

 

 

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

 

Program 1

 

prog1

 

01/29

 

02/19

 

Theory 1

 

theory1

 

02/16

 

03/12

 

Program 2

 

prog2

 

03/12

 

04/23

 

Theory 2

 

theory2

 

04/16

 

05/11

 

Final

 

final

 

 

 

05/22

Out dates are suggestions—you may need to start earlier.

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:

> (combine  0 0.0 0.0 0.0 0.0 0.0)

0.0

> (combine  3 0.5 0.5 0.5 0.5 0.5)

0.6000000000000001

> (combine  6 0.0 0.8 1.0 1.0 1.0)

1.06

> (combine  6 1.0 1.0 1.0 1.0 1.0)

1.2000000000000002

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

I will then run the following function to convert it to a letter:
> (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:

> (convert-to-letter 1)

"A"

> (convert-to-letter 0.94)

"A"

> (convert-to-letter 0.899999)

"B+"

> (convert-to-letter 0.81)

"B-"

> (convert-to-letter 0.74)

"C"

> (convert-to-letter 0.6999999)

"D+"

> (convert-to-letter 0.62)

"D"

> (convert-to-letter 0.57)

"F"

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."