This course will provide an introduction to the use of computers to solve problems arising in the physical, biological and engineering sciences. Various computational approaches commonly used to solve mathematical problems (including systems of linear equations, curve fitting, integration and differential equations) will be presented. Both the theory and application of each numerical method will be demonstrated. The student will gain mathematical judgement in selecting tools to solve scientific problems through in-class examples and programming homework assignments.
MATLAB will be used as the primary environment for numerical computation. An overview of MATLAB's syntax, code structure and algorithms will be given. Although the subject matter of scientific computing has many aspects that can be made rather difficult, the material in this course is meant to be an introduction and will therefore be presented in as simple a way as possible. Theoretical aspects will be mentioned throughout the course, but more complicated issues such as proofs of relevant theorems will not be presented. Applications will be emphasized.
Additional video lectures are available on an open website, allowing students to learn at their own pace, pausing and reviewing as necessary.
Prerequisites: Differential and Integral Calculus, MATH 124 and 125 or equivalent.
Lowell Thompson (firstname.lastname@example.org)
Daniel Cashon (email@example.com)
Alanna Gary (firstname.lastname@example.org)
Cha Suaysom (email@example.com)
Upon completion of this course, students will be able to:
- Construct and manipulate vectors and matrices in Matlab
- Solve linear systems in a variety of different contexts
- Interpolate and analyze data
- Solve nonlinear optimization problems
- Compute numerical derivatives and integrals
- Solve differential equations numerically
- Identify and discuss key features of chaos theory and nonlinear differential equations
- Understand and use modern scientific computing tools such as principal component analysis and the fast Fourier transform
These techniques will be invaluable for future studies in applied mathematics, computer science, engineering and other sciences.
We will meet on Monday, Wednesday and Friday from 9:30-10:20 in KNE 210.
Notice that we do not have lecture on Tuesdays. The Tuesday class times are for you to study the notes and/or supplementary video lectures and work on homework.
All relevant information can be found under the Modules tab on Canvas. There you will find links to homework assignments, weekly topics, code from lecture, videos, quizzes and more.
- Location: Arts & Sciences Instructional Computing Lab (ICL) in B027 of the communications building.
- There will be between one and five TAs and lab assistants available during all office hours.
- There are approximately 30 computers in the lab, but you are encouraged to bring your own laptop if you have one.
- The following hours are reserved for our class (although this schedule is subject to change in the first week):
- Monday 10:30 - 12:00 and 3:00 - 4:30
- Tuesday 11:00 - 1:00 (Instructor will always be present for these two hours)
- Wednesday 10:30 - 1:00
- Thursday 12:00 - 4:00
- Friday 2:30 - 5:00
- Since homework is due at 5:00 on Fridays, these office hours will probably be extremely busy. Please plan accordingly.
- The lab has a maximum capacity of 60 people. Since there are 600 people in this class, it is entirely possible that the lab will be full sometimes. If this becomes a serious issue, we will schedule more office hours, but you should not put off your homework until Friday and expect to be able to finish it in the lab.
Course Discussion Board:
Note: Because there are nearly 600 students between the three sections, we will not answer homework questions via email. You should use office hours or the discussion board for all such questions.
Piazza Discussion Board - The course discussion board can be found here.
All questions related to course material (e.g., homework, tests, lectures) should be posted on the discussion board rather than via email. The instructor and TAs will check this board and answer questions regularly. You are also encouraged to answer one another's questions.
To avoid duplicate questions, you should always read the discussion board before making a new post. There is a folder for each homework assignment, as well as some miscellaneous folders for tests and logistics; please post your question in the appropriate folder.
While you are welcome (and encouraged) to ask and answer questions about the homework, please do not post any of your code on the discussion board. Whenever you post on piazza, every other student in the class gets an email with your post. If anyone copies your code from this post, then both of you have cheated on the assignment. The instructor and TAs can see all of your past homework submissions, so there is rarely a need to include any code. If you have a question that cannot be answered without posting code, then you can also make a private message that is only visible to you and the instructor.
The grades for this class will be divided as follows:
- Homework (180 points): There will be 9 homework assignments, each worth 20 points. Assignments will generally be due on Friday at 5:00pm, with a few exceptions for holidays. (The first homework is a practice assignment to get used to Matlab and the submission interface. It is not worth any points.)
- Quizzes (50 points): There will be 10 quizzes, each worth 5 points. Each quiz will be available for 24 hours on Wednesdays (from 12am - 11:59pm). Once you open a quiz, you will have 30 minutes to complete it. Your lowest quiz grade will be dropped. (In addition, there will be an extra credit "quiz" on Wednesday, October 1 to confirm that you have registered for everything you need to.
- Midterm (150 points): There will be one in class midterm worth 150 points. It is currently scheduled for Wednesday, October 31.
- Final (150 points): There will be an in class final worth 150 points. It is scheduled for Friday, December 7 (the last day of class).
Homework and tests will be graded online using two external tools. You need to register for both of these sites by October 1.
Homework: Scorelator (Click "I forgot my password" and enter your uw.edu email address.)
Tests: Gradescope (If you enrolled in the course before September 26, you should have already received login information at your uw.edu email address. If not, contact the instructor.)
- Homework will be submitted and graded online using a system called Scorelator. Instructions can be found here.
- We will have weekly homework assignments due every Friday at 5pm. Late homework will not be accepted.
- You have up to 5 attempts per homework to get everything correct. Your score for each homework will be the best grade out of all 5 attempts. (In particular, if you get a perfect score on the first attempt, you do not need to submit again.) These extra attempts are intended to help with submission issues; they are not a good way to debug your code. You should be confident that your code is correct (and it should certainly run on your own machine) before you submit to scorelator.
- An anti-cheating system is used to compare your code with that of other students in this class (including previous quarters). You should not copy code from anyone else.
- Some important notes:
- You should access scorelator using Firefox or Internet Explorer (not Safari or Chrome). If you use a different browser to submit your assignment, your submission may be corrupted, resulting in a lower grade for that attempt.
- Do not use the scorelator email address for questions about this class. (It is out of date and no one will see it.) Instead, ask your question in class, the discussion board or office hours. If you think there is a problem with scorelator, you can email me (firstname.lastname@example.org).
- The default login name is (UW NetID)@uw.edu. (Your uw email address.)
- If you registered for the class by September 25, scorelator has already emailed a password to your uw email address. Double check that it is not in the spam folder. (You may want to search for "scorelator".)
- If you did not receive a password, go to the scorelator homepage, click on "I forgot my password" and enter your @uw.edu address. A new password will be sent.
- If you still do not receive a password, talk to me after class or send me an email (email@example.com).
There is no required textbook for this class, but if you want an additional resource I recommend Data-Driven Modeling & Scientific Computation: Methods for Complex Systems and Big Data by J. Nathan Kutz.
You will need access to MATLAB for this class. There are several ways to obtain this software.
- You can purchase a student edition through the UW bookstore or the Mathworks website for $99. (Note: We will need the optimization toolbox and the image processing toolbox. Both are included in the "student suite".)
- You can purchase a temporary license through the UW web store for $30. (Note: The dates on this link are out of date, but once you click through to "MATLAB Online" the dates are correct. This license will expire on June 30th, 2019.)
- Some departments provide Matlab access to all of their students. Check with your department for details.
- There is MATLAB access in some computer labs on campus, including the Instructional Computing Lab.
It is worth noting that there is an open source project called Octave that is intended to be "largely compatible with Matlab". While it is possible to do all assignments for this class in Octave, such an approach is not recommended because there are some subtle differences between Octave and Matlab code that scorelator will not catch. If you are not careful about these differences, it will be very easy to fail the assignments for somewhat subtle technical reasons. Neither I nor the TAs will necessarily be able to help you with these issues.