# Probability And Computing: Randomization And Pr... !!BETTER!!

Probability is everywhere in computer science. In networks and systems, it is a key tool that allows us to predict performance, to understand how delay changes with the system parameters, and more. In algorithms, randomization is used to design faster and simpler algorithms than their deterministic counterparts. In machine learning, probability is central to the underlying theory. This course provides an introduction to probability with a focus on computer science applications. We will discuss elementary probability theory, including topics such as discrete random variables and distributions and Markov chains, and settings in which these are used in computer science (e.g., modeling real-world workload distributions, analyzing computer system performance, and designing and analyzing randomized algorithms).

## Probability and Computing: Randomization and Pr...

MAT 335 - Probability and Statistics I4 credits (Fall)Cross-listed as: STA 335 . An introduction to the mathematical theory of probability and statistical inference. Discrete and continuous distributions, as well as sampling distributions and the limit theorems of probability, will be introduced. The importance of randomization and simulation for computing statistical probabilities will be explored.Prerequisite: MAT 215 ; and STA 209 (previously offered as MAT 209), MAT 218 , or MAT 220 . Note: Plus-2 option available. Instructor: Staff

This paper presents a randomized scheduler for finding concurrency bugs. The scheduler improves upon current stress-testing methods by finding bugs more effectively, and by permitting us to quantify the probability of missing bugs. Key to its design is the characterization of the depth of a bug as the minimum number of scheduling constraints required to find it. In a single run of a program with n threads and k steps, our scheduler detects a bug of depth d with probability at least 1/nkd-1. We hypothesize that in practice, many bugs (including well-known types such as ordering errors, atomicity violations, and deadlocks) have small bug-depths, and we confirm the efficiency of our schedule randomization by detecting previously unknown and known concurrency bugs in several production-scale concurrent programs. 041b061a72