Important Links

Course Overview, People, Resources

Topics covered: Numerical errors; interpolation with polynomials, piecewise polynomials and Fourier basis functions; numerical differentiation; numerical integration; Monte Carlo methods; numerical initial value ordinary differential equations.

Instructor: Mike Gelbart,

Teaching Assistants:

  • Susanne Bradley,
  • Edwin Chen,

Lectures: MWF 12:00pm-12:50pm, Hugh Dempster Pavilion (DMP) 301

Office Hours:

  • Mike: Fridays 1:00pm-2:30pm, ICCS 225
  • Susanne: Thursdays 1:30pm-2:30pm, Demco Learning Centre (ICCS X150), Table 1
  • Edwin: Fridays 3:30pm-4:30pm, Demco Learning Centre (ICCS X150), Table 1

Waiting List: If you are on the waiting list please see the CPSC waiting list policies page.

Prerequisites: One of CPSC 110, CPSC 111, CPSC 260, one of MATH 101, MATH 103, MATH 105, MATH 121 and one of MATH 152, MATH 221, MATH 223 (basically, introductory courses in programming, calculus, and linear algebra). A basic knowledge of probability is helpful but not required. We will be using Matlab as the programming language for the course, but you are not expected to come into the course with knowledge of Matlab. CPSC 302 is not a prerequisite for this course.

Course Textbook

We will be using the following textbook:

The book is available online as an e-book to UBC students, from the UBC library. See also Supplementary material including Matlab programs and Errata.

Other References:

  • Scientific Computing: An Introductory Survey (second edition), by Michael Heath.
  • Numerical Methods: Design, Analysis, and Computer Implementation of Algorithms, by Greenbaum and Chartier.
  • Numerical Analysis (any edition), by Burden and Faires.
  • Numerical Analysis, by Kincaid and Cheney.


Grading Scheme. Your grade will be determined approximately by the following scheme:

  • assignments: 40%
  • midterm exam: 15%
  • final exam: 45%

This scheme is subject to complying with a minimal coursework requirements - see below. The instructor reserves the right to modify the grading scheme at any time if necessary.

Minimal Coursework Requirement. You must have a pass standing in the homework component of the course. Failure to comply with this requirement or failure to write the midterm exam without a justified documented reason may result in in ineligibility to write the final exam and/or an eventual final grade lower than the one computed by the above formula.

Grading appeals. If you feel that you deserve a better grade for an assigment, please contact the TAs. If you are still not satisfied after communicating with the TAs, you may appeal the decision to the instructor. The TAs or the instructor may ask you to submit your request in writing. Note that your entire assignment may be re-evaluated, not just the question that you submit for regrade.


There will be weekly assignments throughout the term.

Collaboration Policy. You are allowed to discuss assignment questions with anyone you like. However,

  • you must write up your submission independently.
  • your submission must list anyone with whom you discussed the problems.
  • any part of your computer code that was not originally written by you must be clearly identified.

Submitting Homework. Assignments must be handed in at the beginning of class on the due date. If you cannot hand in your assignment in class, you may hand it in to the Assignment Box marked CPSC 303 in ICCS X235 before lecture on the due date. Your hardcopy assignment must also include all your code and output.

Late homework. You have 3 "late days" that can be used throughout the term. That is, you may turn in up to 3 assignments late by 24 hours, to be submitted to the Assignment Box in ICCS X235. You may not use more than one late day on the same assignment, since solutions will be posted one day after the due date. Once you have used your 3 late days, late assignments will not be accepted. Late days may not be used on Assignment 9.

Electronic code submission. In addition to the hard copy, all code should be submitted via email to Make sure the code is included as attachments, not pasted into the body of the email. In the subject line, include the assignment number. In the body of the email, make sure to include your name and UBC student number.

Homework Bonus Question Policy. Bonus Questions are optional homework questions covering material that is not required for the midterms or final exam. The purpose of the Bonus Questions is, mainly, to have fun! But they can also earn you bonus marks; the exact number of bonus marks will be determined by the instructor at the end of the course, but you can estimate a boost of about 5% if you correctly do all the bonus questions throughout the semester. Bonus Questions may contain material that was not explicitly covered in the course or may build on concepts not listed as course prerequisites, and they may be more open-ended than usual. You are welcome to only do certain parts of the Bonus Questions; they are not "all-or-nothing".


Midterm Exam. Date: Feb 10, 2016. In class, 12 noon, 50 minutes. Please bring your student ID and be in class on time. You are allowed one side of a letter-size sheet with handwritten notes. No other material or accessories are allowed.

Missed midterm exams. There is no makeup midterm exam. If you miss the midterm exam, you must set up a personal appointment with the instructor, and provide a justified and documented reason. If you have missed the midterm exam for a justified reason, the weight of the midterm component of the course will be transferred to the final exam.

Final Exam. April 13, 2016. 12 noon. Location: LSK 201. 2.5 hours. Please bring your student ID and be in the classroom on time. You are allowed a letter-size sheet (both sides) with handwritten notes. No other material or accessories are allowed.

Matlab and Octave

GNU Octave is a free software package that is very similar to Matlab. Octave is available for Windows, OS X, and Linux. You may use Octave instead of Matlab if you find it more convenient. However, you are responsible for all discrepancies between the two languages. The course staff will not support Octave or Octave-specific issues, and we are not responsible for any issues you encounter as a result of using Octave. Note that Matlab is available to all students in the undergraduate CS labs, and, if you wish to have a copy on your personal computer, a student version of Matlab is available from MathWorks (the company that makes Matlab) for US$100.

Matlab Resources