

Joel Friedman's Course Materials

Materials below may have errors!
Errors will be corrected either here or in class.
If you are not attending my classes: use these materials at your
own risk!
"Don't let them fool
yuh / Or even try to school yuh /.../
I
in the darkness,
yuh
muss cum out di light"  Bob Marley
Current Courses (Winter 202122)

Courses listed in grey have no syllabus at present. For undergraduate
courses, see previous years to get an idea of the syllabus.
Graduate courses typically vary greatly from year to year, even if
the course number and title are the same.
 CPSC 421101/501101 (Introduction to the Theory of Computing)
 CPSC 536F201 (Topics in the Theory of Computing: Applications of Linear Algebra)

Recent Older
Courses (Fall 2019 to Spring 2020)


Some Even Older Courses

You could try the
WayBack Machine (an archive)
for some courses not found here, or
for any snapshots before the final version (the course webpages typically vary
during the term).
These are provided as is: they may contain broken links, etc.

MATH 441
(Math Modeling: Discrete Optimization Problems, 201819)

MATH 223
(Honours Linear Algebra, 201819)

CPSC536J
(Topics in Algorithms and Complexity: Linear Algebra Problems, 201819)

MATH 441
(Math Modeling: Discrete Optimization Problems, 201718)

CPSC 421
(Introduction to the Theory of Computing, 201718)

MATH 200
(Third semester calculus, 201516)

MATH 340
(Introduction to Linear Programming, 201516)

CPSC 421
(Introduction to the Theory of Computing, 201516)

MATH 340
(Introduction to Linear Programming, 201415)

CPCS 421
(Introduction to the Theory of Computing, 201415)

Some Way Older Courses

These courses likely have material that were lost during a rather
hasty move of
files from the UBC Mathematics servers to the UBC Computer Science
servers around early 2019. I'll do the best I can...
You could try the
WayBack Machine (an archive)
for some courses not found here, or
for any snapshots before the final version (the course webpages typically vary
during the term).
These are provided as is: they may contain broken links, etc.

Some Handouts

These are some handouts from my previous courses that I have been able
to find on my course webpages.
To access some others,
you could try the
WayBack Machine (an archive).
As with all course materials, these handouts
may have mistakes, typos, etc., that
were only corrected in class; if time permits,
I'll indicate which parts of these handouts seem free
of major errors.

An Introduction to Differential Equations, aka Homework 8
(for a course in numerical methods)
(CPSC 303, Spring 2020);
seemingly free of major catastrophes and chaos, but briefly discusses
these notations in the context of ODE's; incomplete in parts;
also, sections in small print have
likely not been carefully proofread.

Energy in Cubic Splines, Power Series as
Algotihrms, and the Initial Vaule Problem (CPSC 303, Spring 2020);
seemingly free of major errors.

Remarks on Divided Differences (CPSC 303, Spring 2020);
seemingly free of major errors.

Normal and Subnormal Numbers (CPSC 303, Spring 2020);
at this point we tried to understand why
we saw inconsistencies in
various (then) current implementations of MATLAB;
seemingly free of major errors.

What the Condition Number Does and Does Not Tell Us
(CPSC 303, Spring 2020);
seemingly free of major errors.

Recurrence Relations and Finite
Precision (CPSC 303, Spring 2020);
the homework associated to this topic revealed inconsistencies in
various (then) current implementations of MATLAB;
seemingly free of major errors.

Introduction to the Markowitz Model (Math 441, 2017 or 2018);
introduces the mean (average) and variance with simple examples,
then explains the usefulness and limitations of the Markowitz
model;
seemingly free of major errors.

Applications in Linear Algebra (Math 223, Spring 2019);
applications include time series and PageRank, and the fundamental
yet simple "linear algebra without linear algebra;"
seemingly free of major errors.

Selected Oddities and Humour
from Courses

This page is always under construction, correction, etc.
There is no intention to offend anyone, except possibly myself.
Please email me with the words "Selected Oddities" in the beginning
of the Subject Header of the email if you have a concern about the
content; I'll do what time permits.

This is why all my course materials come with a disclaimer regarding
people who access this material and are not taking the course:
in the early days of the internet, I circulated
some notes on complementary slackness algorithms
on my Math 340 course webpage.
Some book (connected with physics, I think) referenced these notes,
whereupon I received an email from a seemingly disgruntled
expert in the field,
I believe about the lack of
proper attributions and/or references.

In addition to the standard O(f(n)), o(f(n)), etc., I think everyone
computer scientist
should see the notation OO(f(n)),
pronounced "uhoh of f(n)," which
I believe is due to Udi Manber (?) (see almost any of my course notes for
CPSC 421 somewhere).

In Math 523, Spring 2014, I taught
Valiant's profoundly impactful result that an algebraic formula of size
m can be expressed as a determinant of size m+2
(my recollection is that
coupled with a result regarding the permanent, this is an
"algebraic analog" of NP versus (something that roughly looks like) NC,
which due to a collapse in
the algebraic model becomes an algebraic analog of NP versus P).
After botching the proof a few times in front of the class, I realized
there was a reason:
this often quoted result has a minor bug.
The bug can easily be fixed to yield a determinant of size
2m+1, which does not change the impact of the result.
Furthermore, as of 2014, there was (a much more elaborate) proof yielding
a size m+1 formula.
What is curious is that no one checked the details of this
short proof
(or at least bothered to report the error)
for years, and many sources reported this m+2 "result,"
including a textbook that assigned
this "result" as an exercise, with hints; that said, a cursory glace
at Valiant's proof makes it quite convincing that there exists some
O(m) result.

