Professor: Simon D. Levy 
The goal of this course is to give you the skills and understanding to write simple, powerful programs for use in your scientific research. We use the Matlab programming language/environment, which is currently the most popular platform for this kind of work in the natural sciences (biology, psychology, neuroscience, geology) and in engineering. Ability to program in a language like Matlab is a skill that will put you in demand in both industry and graduate school in these fields.
It is very important that you attend class. There will be considerable information given in class that is not available elsewhere. I will not take "official" attendance, but I will not help students who miss class for no good reason. The textbook is wellwritten and easy to follow, so I encourage you to keep up with the chapters as we cover them in class.
The grading scale will be 93100 A; 9092 A; 8789 B+; 8386 B; 8082 B; 7779 C+; 7376 C; 7072 C; 6769 D+; 6366 D; 6062 D; below 60 F.
The most important aspect of the course is the labs, which is where you learn to program. Unlike lab writeups in your other science courses, your submissions in this course will be programs, and the criterion for success is simple and unforgiving: does your program work or not?
Style and documentation (which we will discuss) are important. Like careful grammar and correct spelling they reflect and encourage good design and clear thinking. Ultimately, however, what matters in the real world is not how clever your solution is or how many comments it contains. What matters is getting the job done, without errors. You will get little or no credit for effort: your programs have to work!Unless stated otherwise, all labl work will be done without assistance from other students. Although scientific research is mostly collaborative, working with a lab partner in an introductory course like this makes it difficult to assess how well you are understanding the material.
The last two lab periods of the course will be devoted to individual final programming projects of your own choosing. The goal is to write one or more programs to solve an interesting problem in your field of study. Proposals for these projects will be due the previous week, but I encourage you to start thinking early on about a project that interests you. If you decide not to do your own final project, there will be a default project you can do instead.
Monday 
Tuesday Lab 
Wednesday 
Friday 

09
Jan 
Course Outline  Intro to Matlab  Chapter 1: What is Computation?  Chapter 2: Invoking a Computation  
16
Jan 
Chapter 3: Simple Types Due: Exercises (be careful not to do the Discussion problems!) 1.2, 1.3, 1.5, 1.6, 2.12.4 
Discussion 3.9 

23
Jan 
Chapter 4: Collections and Indexing 
Discussion 4.2, 4.3 
Due: Discussion 3.1, 3.3, 3.4, 3.5, 3.8 

30
Jan 
Review Ch. 14 
Chapter 5: Files and Scripts Ex. 5.2, 5.3; Project (pp. 110111) mobydick.txt coffeecooling.csv 
Chapter 6: Functions  
06
Feb 
Chapter 7: Conditionals 
General Instructions E 6.1, E 6.3, 6.4 6.6, 6.7, 6.8, 6.9, 6.10, 6.11, 6.15, E 6.2 
Mock Convention; no class Due: D6.1, E6.5 

13
Feb 
Continue Chapter 8  E 7.1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12  Chapter 8: Loops 
Due: D7.1 and these 

27
Feb 
Continue Chapter 8  E8.1, 2, 4, 5, 6, 8, 9, 10, 11, 12, 15, 17, 18, 19, 20. If you have time, download this and complete 8.7  Continue Chapter 8  Review Chapters 58  
05
Mar 
Exam
Ch. 58 
Project
8.13 (pages 188194, 241242) mandelbrotgui.m Project 8.12 (pages 184187) showca.m 
Finish Chapter 8  
12
Mar 
Do one of these exercises:

ΦΒΚ Convocation: 

19
Mar 
Chapter 13: Sounds & Signals 
General Instructions E13.1 E13.2 E13.3 E13.6 E13.7 whistle.wav fh.wav g_fugue_mono.wav stairway.wav 
Chapter 13  Chapter 13  
26
Mar 
Bayesian Modeling 1: Reasoning Under Uncertainty 
Final Project Lab, Part I 
Bayesian Modeling 2: Bayesian Networks 
Bayesian Modeling 3: The JunctionTree Algorithm 

02
Apr 
Bayesian Modeling 4: Bayesian Learning 
Final Project Lab, Part II 
Bayesian Modeling 5: Dynamics Bayes Nets 
Review for Exam #3 