CPSC 303: Numerical Approximation and Discretization
2017/2018 Winter Term 2 (January-April 2018)
Mon/Wed/Fri 14:00-15:00, DMP 110
- External Quicklinks: UBC Canvas, Piazza
- Course Description:
Mathematical models are used to describe natural phenomenons. These models typically involve continuous quantities,
which cannot be exactly represented on computers. Scientific computing deals with finding approximate solutions
to such models via discretizations, which involves discretization errors. This course covers aspects of the construction
and analysis of basic approximations. Topics studied include aspects of computer arithmetic, polynomial and spline interpolation,
numerical differentiation and integration, and numerical initial value problems for ordinary differential equations.
- Instructor: Jessica Bosch, email@example.com, ICCS 215
- Teaching Assistants:
- Martin Neuenhofen, firstname.lastname@example.org
- Michael Wathen, email@example.com
- Rui Ge, firstname.lastname@example.org
- Office Hours:
- Jessica: Tuesdays 14:00-16:00, ICCS 215
- Martin: Fridays 09:00-10:00, Demco Learning Centre (ICCS X150), Table 1
- Michael: Tuesdays 09:30-10:30, ICCS X337
- Rui: Wednesdays 09:30-10:30, ICCS X339
- Prerequisites: See here.
- Waiting List: If you are on the waiting list, please see the CPSC waiting list policies page.
- Course Communications:
Primarily through the course website, Canvas, and Piazza.
Students are expected to check Canvas regularly for announcements
and this website for updated course content.
- We will use Piazza as course discussion board.
This is the best forum for asking questions about logistics or course content. The instructor and TAs will monitor the
discussion board regularly, and will respond more quickly to questions posted there than questions asked by email.
- Questions regarding homework can be directed to the TAs/instructor. Questions regarding homework grading must be
directed to the TAs, who will refer concerns to the instructor if necessary.
- Questions regarding midterm or final grading should be directed to the instructor.
- For issues of a confidential nature, please contact the instructor.
Tentative Grading Scheme
In the lecture, I will assume that you know the basic concepts from the assigned reading, and I will focus more on
I will use clicker questions to gauge your understanding of the concepts you read and discuss those that are not clear to you.
I may also give you small exercises as a practice.
- The plan is to have 6 written homework assignments. All assignments involve programming tasks in Matlab.
- Electronic Submission:
Complete assignments (including all codes and plots) must be submitted electronically
before lecture on the due date using Canvas.
- We will NOT accept late submissions except in exceptional circumstances.
You may collaborate and consult with other students in the course,
but you must hand in your own assignments and your own codes. If you have collaborated or consulted with someone
while working on your assignment, you must acknowledge this explicitly in your handed-in assignment.
- Bonus assignment:
There will be a bonus assignment at the end of the course.
Prior Knowledge Quizzes
- These quizzes help you
discover what you already know about a previous discussed topic.
- There will be one quiz each week, which is due by 14:00 on Fridays.
You will complete the quiz in Canvas and have one attempt for each quiz.
For the students on the waiting list, I will copy a PDF of the quiz into Piazza
until January 17.
- 5 of these quizzes will be graded, but you will not know which ones.
In-Class Group Exercises
The plan is to have 5 in-class group exercises, each after finishing a module.
This is an additional opportunity for you to apply what you have learned.
Small group work will help you in addition learning about working with others,
and developing a small community of supportive peers.
Students who register their clicker/REEF
and correctly answer at least 70% of the in-class clicker questions during the term will receive an extra 1% on their grade.
Clicker bonus questions start on Friday, January 19.
The midterm exam is on Friday, February 16, 14:00-14:50, in FRDM 153.
Please bring your student ID and be in class on time. You are allowed one side of a letter-sized (216mm × 279mm) sheet. No other material or accessories are allowed.
The midterm exam will cover material from numerical algorithms and errors,
polynomial interpolation, and piecewise polynomial interpolation.
- Failure to write the midterm exam without a justified documented reason may result in
ineligibility to write the final exam and/or an eventual final grade lower than the one computed by the above formula.
Students who miss the midterm due to an illness must provide a doctor's note to
the instructor. There is no makeup midterm exam.
If you have missed the midterm exam for a justified reason, the weight for that midterm is transferred to the final exam, in a way that will be determined by the instructor.
The final exam is on Wednesday, April 25, 15:30-18:00, in CHBE 101.
Please bring your student ID and be in class on time.
You are allowed one letter-sized (216mm × 279mm) sheet (both sides).
No other material or accessories are allowed. The final exam will cover material from the entire course.
- Students who miss the final exam must follow the procedure of
their Faculty to request a deferred exam. Students may be refused
permission to sit a deferred exam if they have not demonstrated
sufficient prior work in the course.
Text and Instructional Resources
- Course Textbook:
The main course textbook is
A First Course on Numerical Methods,
by Uri M. Ascher and Chen Greif.
- The book is available online to UBC students from the UBC library.
See also the Supplementary material including Matlab programs and
- Further References:
- Scientific Computing: An Introductory Survey (second edition), by Michael T. Heath
- Numerical Methods: Design, Analysis, and Computer Implementation of Algorithms, by Greenbaum and Chartier
- Numerical Analysis (any edition), by Burden and Faires
- Numerical Analysis: Mathematics of Scientific Computing, by Kincaid and Cheney
- Tentative Course Outline:
Here is a tentative but detailed outline.
- Computing Resources:
Matlab is the computational environment used in CPSC 303. We use only functions from basic Matlab (no toolboxes are required).
You may be expected to read and/or
write small pseudo-code algorithms during exams. You will NOT be expected to write syntactically correct Matlab
code during exams.
- Matlab is available
here to active and registered
UBC students at no cost.
Students may also use departmental licenses through the undergraduate CS labs.
- Students who are unfamiliar with the Department of Computer Science can find out useful information,
such as how to create accounts or remote computing, from the
department's services and labs link.
- Matlab Resources:
- UBC Canvas:
Announcements, grades, quizzes, lecture notes, homework assignments, sample exams, solutions, additional files, surveys
Course discussion board
In-class polls, quizzes, clicker bonus questions, measure attendance
- Academic Integrity and Plagiarism:
I expect students to be aware of and adhere to the
UBC policy on academic integrity and plagiarism in all their work in this course.
Academic misconduct of any kind, including cheating on quizzes, assignments or exams, will not be tolerated.
The consequences for academic misconduct will include a grade of zero, and you could also face possible exclusion from the course
Please take a few minutes to familiarize yourself with the Computer Science department's rules, policies, and penalties.