|Additional Requirements and/or Comments:
Randomization and probabilistic analysis have become fundamental tools in modern Computer Science, with applications ranging from network security, cryptography and communication protocols to web search, computational finance and data mining. This course introduces the basic probabilistic techniques used in computer science applications, in particular covering the following topics:
1. randomized algorithms (such as randomized QuickSort)
2. probabilistic analysis of algorithms (such as expected time
3. statistical inference methods (such as Markov Chain Monte Carlo
Prior knowledge of discrete probability theory is encouraged but not required, as we will cover the basic probability theory (including probability spaces, events, random variables, expectation, etc) required for our purposes. Programming assignments can be done u! sing Python, Java, C/C++ or R.