This course will provide an introduction to the use of computers in solving problems arising in the physical, biological and engineering sciences. Various computational approaches commonly used to solve mathematical problems (including systems of linear equations, optimization, curve fitting, integration and differential equations) will be presented. Both the theory and application of each numerical method will be demonstrated. You should 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. No previous coding experience is required; 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 rigorous proofs will not be presented. Applications will be emphasized.
Additional video lectures are available (posted here and hosted on youtube), allowing you to learn at your own pace, pausing and reviewing as necessary.
Prerequisites: Differential and Integral Calculus, Math 124 and 125 or equivalent.
Upon completion of this course, you will be able to:
- Construct and manipulate vectors and matrices in Matlab
- Solve linear systems efficiently in a variety of different contexts
- Solve linear and nonlinear optimization problems
- Interpolate and analyze data
- Compute numerical derivatives and integrals
- Solve differential equations numerically
- Identify and appreciate key features of nonlinear differential equations, including chaotic dynamics
- Understand and use modern scientific computing tools such as singular value decomposition and the fast Fourier transform
These techniques will be invaluable for future studies in applied mathematics, computer science, engineering and other scientific fields.
Lectures will be held on Monday, Wednesday and Friday from 8:30-9:20 in KNE 110.
I will also be available in KNE 110 on Tuesday from 8:30-9:20. With the exception of two weeks when Monday is a holiday, these sessions are meant to be used as office hours and not as additional lectures. The only two Tuesday classes that are required are on January 21 and February 18. Otherwise, you are not required to attend class on Tuesdays.
All relevant course information can be found under the Modules tab on Canvas. There you will find links to course notes, homework assignments, video lectures, quizzes and more.
You will need access to MATLAB for this class. UW provides MATLAB licenses for all students at no charge.
There is no required textbook, 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.
- Tuesday classes will generally be used for office hours (with the exception of January 21 and February 18).
- Additional office hours are located in the Arts & Sciences Instructional Computing Lab (ICL) in B027 of the communications building.
- There will be between one and four TAs and lab assistants available during all office hours unless otherwise posted.
- There are 28 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:
- Monday 11:00am - 1:00pm
- Wednesday 4:00pm - 5:30pm
- Thursday 9:00am - 12:30pm
- Friday 1:30pm - 5:00pm
- The lab has a maximum capacity of 30 people. Since there are over 400 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.
Note: Because there are over 400 students between the three sections, we will not answer homework questions via email. You should use class, office hours or the discussion board for all such questions.
The course discussion board is on Piazza. All questions related to course material (e.g., homework, tests, lectures) should be posted on the discussion board rather than sent via email. The TAs and I 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/search the board to make sure that a similar question has not already been asked 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 questions in the appropriate folders.
While you are welcome (and encouraged) to ask and answer questions about the homework, please do not post code that could be used as part of a solution (even if you think it is incorrect). If you cannot describe your question without posting your code, you can make a private post that is only visible to you and the instructors.
The grades for this class will be divided as follows:
- Homework (170 points): There will be 9 homework assignments, each due at 11:59pm on Friday. The first assignment is worth 10 points and each other assignment is worth 20 points.
- Quizzes (50 points): There will be 10 quizzes, each worth 5 points. Each quiz will be available for 24 hours on Tuesdays (from 12am-11:59pm). Once you open a quiz, you will have 30 minutes to complete it. (The first quiz is available all of this week and should be extremely easy.)
- Exams (200 points): There will be two in class exams, each worth 100 points. The first exam is tentatively scheduled for Friday, February 14. The second exam will be on the last day of class - Friday, March 13.
The following is a minimum grade scale:
410 points = 4.0
360 points = 3.0
315 points = 2.0
250 points = 1.0
That is, if you get 360 points or above, then you will get at least a 3.0 in the course. The class may or may not be curved higher, but these are the minimum cutoffs.
Homework and exams will be graded online using two external tools. You need to have access to both of these sites by Friday, January 10.
Homework will be assigned and graded through MATLAB Grader. To access the homework you will need a Matlab license. You should already have received an email letting you know that you are enrolled in the class on MATLAB Grader. If you still cannot access the homework, contact me at firstname.lastname@example.org.
Exams will be given in class, but we will grade them and hand them back online with a tool called gradescope. You should already have received an email with login information, but if you cannot log in to gradescope then you should contact me at email@example.com.
Lowell Thompson (firstname.lastname@example.org)
Tianqi Gu (email@example.com)
Tram Pham (firstname.lastname@example.org)
Zidan Luo (email@example.com)