Instructor: Eugeniy E. Mikhailov
- Office: Small Hall 253
- Lab: Small 032 and 065
- Phones: 221-3571 (office), 251-3560 (lab)
- Email: eemikh@wm.edu
- Web: http://physics.wm.edu/~evmik/
- Office Hours:
- M 9:30-10:30
- W 9:30-10:30
- F 9:30-10:30
- and by appointment.
Course Objectives
The primary purpose of this course is to teach you how to specify a
problem, break it up into algorithmic pieces, and implement a program to
execute those pieces. While there are hundreds of different programming
languages, this class will be set around Matlab, since it has a rich
toolbox of routines suitable for scientist.
Along the way, we will learn about the following essential concepts:
- Programs and algorithm basics
- Matlab as programming language
- Numerical representation and its limitation
- Graphical data presentation
- Numerical integration
- Nonlinear equation root finding
- Solving system of linear equation
- Models and simulations
- Random processes
- Data analysis/post processing
- Optimization problems
Texts
Everything required during this class will be provided during lecture times.
However I would recommend you the following two optional books for your own references.
First one could be used as a short Matlab reference book:
"Getting Started with MATLAB: A Quick Introduction for Scientists and
Engineers" by Rudra Pratap
- ISBN-10: 0199731241
- ISBN-13: 978-0199731244
The other one for a more extended treatment of numerical algorithm with Matlab:
"Numerical Methods in Engineering with MATLAB" by Jaan Kiusalaas
- ISBN-10: 0521191335
- ISBN-13: 978-0521191333
Class Format
We will have 2 regular lectures and one short lecture/lab per week. The
short lecture/lab will take place on Friday, its main goal is to let you go
through Matlab programming while I can help you with program environment
related problems.
Homeworks/projects
The only way to learn a new language is to talk and write using this
language. A programming language is no exception. Thus you will learn by
doing programming exercises during home work, midterm projects, and final
project. There will be no midterms and final examination in a usual sense.
Instead you will have to prepare an oral presentation complementary to your
written report describing your projects (task, methods, limitations, prove
that it works as expected at least for several obvious cases, and results).
I expect that you will allocate 6-9 hours every week outside of the class
room for the homework and projects.
Project/homework report key parts
- due date: corresponding Monday at 1:00pm for the email submission
- report to be submitted via email to me and TA of the class, as well as, a carbon copy to be collected at the beginning of the Monday class
- email should have
- Your name in the "From" line
- clearly stated subject line (for example "Solutions of the homework 02")
- written report in the pdf file ( MS Word files ( aka doc files) are not permitted)
- Your name in the "Author" line
- problem number and its statement (even if it copy and paste from the assignment)
- brief description of chosen method
- master equations (if required)
- solutions (numerical answer or plots)
- program listings (either in main text for short ones or as appendix to a report)
- font size should be no less than 12 pts
- clearly labeled files with algorithms and data files (i.e. "hw01p2.m" for HW 01 part 2)
- some homeworks will require to write helper functions, please, make their name human readable (for example for function which looks for maximum use FindMax or find_max)
- carbon copy is a paper copy of your pdf report file
Important: if there is no listings and no algorithms/data files you will get zero points.
- it is sufficient to make one submission of the midterm/final project from the group as long as all authors are listed.
You algorithm/program will be evaluated for
- correctness
- examined test cases
- you should be capable to see if you program produces garbage
- in real word environment it is important to know where is the problem spot
- did I mentioned test cases? (there will be penalty for untested submissions)
- how easy it is to read and understand
- stay away of cryptic names (for example write 'counter' instead of 'c')
- every constant must be accompanied with comments
- general rule: write a lot of comments explaining the algorithm (you may not need it for a short program but it will help you to work with long programs)
Late submission penalties
For each consequent day after due date there will be a penalty (10% out of maximum possible score). Even if a submission happens 1 minute after due date, it holds 1 day penalty.
Projects homework preparation recommendation
Do not wait till the last day to finish your assignments. Programs almost never
work at the first try and require quite a lot of time to debug.
Collaboration
- Collaborations are not permitted for homeworks.
- Midterm and final projects to be done in group of 2 or 3 persons. This is the time to
actively discuss and cooperate. Only one report per such group is needed.
- But everyone is expected to have a full understanding of the project.
- Be ready to answer questions related to the project without your group support.
Evaluations
Your final grade for the course will be determined from the following grading weight distribution:
- Homeworks: 15%
- Midterm projects: 60%
- Final project: 25%
Grading
Grade |
Score percentage |
Grade |
Score percentage |
Grade |
Score percentage |
|
|
A |
94-100 |
A- |
90-94 |
B+ |
87-90 |
B |
84-87 |
B- |
80-84 |
C+ |
77-80 |
C |
74-77 |
C- |
70-74 |
D+ |
67-70 |
D |
64-67 |
D- |
60-64 |
F |
<60 |
|
|
|
|
Important dates
Fall Break
Midterms
- 01 Oct 2012 Midterm 1 submission
- 22 Oct 2012 Midterm 2 submission
- 19 Nov 2012 Midterm 3 submission
Final Exam
During the final exam, there will be a final project presentation/defense in the Small Hall 233.
- 14 Dec 2012 Final exam in Small Hall 233 at 14:00
Illness
Please notify the instructor if you are ill, so that arrangements can be
made to make up missed labs.