Main Page

Jump to: navigation, search

MATH 210 - Introduction to Mathematical Computing

Course Overview

In this course, students will learn how to use computer algebra systems to solve mathematical problems. This year, students will through the use of Sage and Python learn how mathematical topics can be applied to solve many interesting problems. Our course will be proken down into essentially three modules. First, we will be learning good coding practices through the use of Sage. Second, we will be applying these concepts to problems in number theory. Lastly, we will consider some computational considerations while using linear algebra packages. While we are using Sage and Python as our primary languages, the techniques learnt here can easily extend to many commercial software applications such as Maple, Matlab, Magma, Mathematica and others.

See the UBC Calendar entry for Math 210 for course pre and corequisites.

Contact Information

  • Instructor - Carmen Bruni
  • Office Hours - Always available online on Piazza. In person MATH 201 MW 3:00-4:00 (or by appointment). SPECIAL January 14th Office hours at 4:30-5:30.
  • Email -

Important Dates

Term start: Monday, January 5, 2015
Midterm break: February 16-20, 2015
Term end: Friday, April 10, 2015
Family day: Monday, February 9, 2015, no classes
Good Friday: Friday, April 3, 2015, no classes
Easter Monday: Monday, April 6, 2015, no classes
Midterm 1: Tuesday February 10th during the regular lab time.
Midterm 2: Wednesday February 25th from 5:00-7:00 pm CHEM D200
Final exam: TBA.


  • January 14th, 2015 - I've decided to use Piazza for all things course announcements related and SMC for file related content. This page will only be updated with learning goals and is meant to mainly be a course syllabus. Important announcements will be emailed.
  • January 9th, 2015 - Typo in A0Q1. Some people have a version of this question where the last line says "Your function should not return a value". Clearly this is wrong! Also some people were confused about the return statements. You are supposed to change the return value to the correct value. I just wanted to give you guys a stub to work off of. Sorry!
  • January 9th, 2015 - Typo in A0Q3, the test code for loop should read:

> for i in [1+x * 0.01 for x in range(1, 11)]:

Instead of the given

> for i in range(1,1.11,0.1):

Hope this hasn't caused too much confusion!

  • January 6th, 2015 - I need to move office hours on Wednesday January 14th to 4:30-5:30. Sorry for any inconvenience.
  • January 1st, 2015 - Happy New Year! Please read the following and sign up.
  1. Sign up for an account on You may use any email address you'd like to sign up.
  2. Please fill out the Google form below so that I can add you to the class. Unfortunately for me I have to add students manually currently and this is why getting the information earlier will help me out.

As all assignments will be done in Sage and partially submitted online, it is important that these instructions are followed. If you are experiencing any problems, please let me know - preferably on Piazza; our online forum for asking questions.

Course Grade Breakdown

  • 50% Final Exam
  • 20% Written 2 hour Midterm
  • 10% Laboratory Midterm
  • 20% Assignments

Official Syllabus


  • Should any unforeseen complications occur during the laboratory midterm (for example, a blackout), the 10% will shift to the final exam.
  • Students who cannot make the aforementioned times due to a UBC related conflict must inform the instructor immediately.
  • If you miss a midterm due to illness, please give the instructor a doctor's note explaining your illness no more than 48 hours after the midterm date.
  • Remarking policy: Please indicate which problems you would like to have regarded on a sticky note/stapled piece of paper on the assignment or midterm in question. I will have a look at the question in doubt however I will also look at all other questions as well. This means that your mark could decrease after regrading. If the error in question is simply an addition error, then I will unconditionally fix it. I will not accept papers for regrading until 24 hours after both solutions have been posted and you have received your assignment.

Course Material & Resources

Course Schedule and Syllabus

Here is a rough outline of the week to week schedule. I'll also add pdfs to learning goals as the weeks progress. Keep in mind that this schedule is rough (and incomplete) and will largely depend on how the class is doing.

Schedule of classes
Week Topics Learning Goals
1 Introduction. Programming basics: functions, if, for/while loops, arrays (definition, max, min, sum, length, append, sort, etc.), variables, dir, help command (?), floor, ceiling. Good coding practices. Week1
2 Iterative methods - Mathematical Induction, recursion, Euler's method.
3 More iterative methods: Cobwebbing, Newton's method, bisection method.
4 More on cobwebbing, file input and output, algorithm complexity, machine epsilon, (very brief) introduction to number theory.
5 Elementary number theory topics
6 Basic Cryptography
Course Notes
There are no formal course notes however the following books might serve as good resources:
  • Sage for Undergraduates. You will also find some other videos on Sage primers.
  • Sage Reference Manual. If you have a question, the answer is probably in here.
  • PEP8 and PEP257 can help with commenting styles.
  • Elementary Number Theory This book is by William Stein, the creator of Sage! Very neat book and I'll try to follow this one as much as possible.
  • Elementary Number Theory. Here is a free (with LaTeX file!) Elementary Number Theory textbook which also contains the information we will need.
  • The book of proof For mathematical induction.
  • Linear Algebra Here is another free book - a linear algebra textbook. Clearly we will not get through all of this but it serves as a good initial reference.
  • Computational Mathematics Here is a set of notes specifically on Computational Mathematics. I will follow parts of these course notes.
Homework - Sage Math Cloud
This term, all homework will be done using the Sage Math Cloud (SMC). There, assignments will be posted and you will do the assignments on the cloud. Please also save local copies of your work in case of an emergency. Once you finish an assignment, leave it in your SMC account and it will get automatically collected at the beginning of Friday classes. Please sign up to SMC and send me an email with your account information (the email address you used to log in to SMC is fine).

Your work and solutions must also be submitted on paper to your instructor during class time. Also, staple your work using a stapler in the top left hand corner. Failing to put a staple in your paper will result in an automatic grade of 0. Paperclips, folder corners, tape etc. are not staples and cannot be substituted as such.

Schedule of Assignments
Assignment Due Date
0 Friday January 16th
1 Friday January 30th
2 Friday February 13th Monday February 23rd
3 Friday February 27th Monday March 2nd
4 Friday March 13th
5 Friday March 27th
6 Friday April 10th

Online Forum
We are using Piazza as a class forum for online discussions. Any questions not illness or personally related should go there (and will only be answered there!) Please sign up with an account there for additional instructor support. A direct link to our page can be found here. Our course code is Tru$tNo1.
Other Resources
The Math Exam/Educational Resources Wiki is a place where you can help find links to videos and to past exams.