Computer Science 351 — Discrete Probability Theory for Computer Science
The course ends by continuing the introduction to discrete probability theory that was started in Computer Science 251. Results that are useful for the average-case analysis of algorithms, and the analysis of randomized algorithms, will be emphasized — and examples from computer science will be given.
This material will be covered in lectures on November 3 – 26 and in tutorials on November 16 – December 3.
You should not need any reference material, for this, that is not provided on the course web site. However, the following book is an excellent reference for the material on discrete probability theory that is included in this course.
It is freely available to students at the University of Calgary, as an ebook, through the university library. This sentence is a link to the ebook.
Once again, you have to start somewhere! This lecture introduces sample spaces and probability distributions, which will be used to model and analyze experiments, for the rest of this course.
Almost everything in this lecture should be a review of material that was introduced in a prerequisite for this course — but an example from computer science, and a small number of technical results, will likely be material that students have not seen already.
This exercise concerns material from Lecture #19. Please read and try to solve the problems on this exercise before attending the tutorial where it is discussed.
There is often a numerical value, associated with an experiment, whose value we wish to know. Indeed, computing (or estimating, or bounding) this value may be the main reason to consider the experiment at all. This lecture introduces notation and some results that are needed for this.
While random variables were introduced in a prerequisite course, the expected value of a random variable, and its properties, might be new.
This exercise concerns material from Lecture #20. Please read and try to solve the problems on this exercise before attending the tutorial where it is discussed.
As noted above, there is often a numerical value, associated with an experiment, whose value we wish to know about. This can be modelled using a random variable whose expected value can be computed or bounded.
We might also be interested in the probability that this random variable’s value is far away from its expected value — or is above (or below) a given threshold. This lecture includes notation and results that can often be used to compute or bound this kind of probability.
While the worst-case analysis of an algorithm is often important, this might not describe how the algorithm behaves “most of the time“ — and this might be what someone is most interested in, when they want to make a choice between algorithms.
It is sometimes possible to produce algorithms that are simpler or (at least slightly) faster, than would otherwise be the case, if these algorithms are allowed to make random choices.
This lecture describes how probability theory can be applied to perform an average-case analysis of an algorithm, to understand how it behaves in practice. It also introduces several kinds of randomized algorithms, including algorithms that can fail (in limited ways) that have been studied and used.
“Classical” probability distributions arise when probability theory is being used to solve problems, over and over again. However, the language used in an application area might not be the language used in a textbook on probability and statistics, so these distributions might appear in a somewhat “disguised” form. If you are already familiar with these classical probability distributions then you will, ideally, recognize them — so that you can look for and make use of helpful material about these classical distributions in the “probability theory” literature.
Note: For the purposes of this course, this is “for interest only:” students will not be examined on this material in CPSC 351.