ECE 398BH

PROBABILITY IN ENGINEERING LAB

Fall 2014

This new one-hour credit course is designed to be taken concurrently with ECE 313 Probability in Engineering Systems. The course will strengthen your understanding of the concepts in ECE 313 through computer simulation and computation, and expose you to a variety of applications. It will help prepare you for follow on courses using probability, computation, and analysis of data.

Syllabus

- Introduction to simulation using Python. Using random number generators to generate discrete random variables with specified pmfs, plotting histograms, exploring law of large numbers, simulating random walks, simulating experiments such as random poker hands or Monty Hall's three door problem.
- Bernoulli processes, Poisson distribution, standardized random variables, parameter estimation, confidence intervals
- Bloom filter/hashing, min hashing, power of two choices in load balancing
- Markov chains with application to random text generation, PageRank algorithm, inference of Markov chain transition probabilities, cache replacement policies and Zipf (heavy tailed) distribution
- Binary hypothesis testing, sequential hypothesis testing (SPRTs), gambler’s ruin, connection between SPRTs and gambler's ruin, CUSUM algorithm for change detection, Gaussian distribution and central limit theorem, failure rate functions
- Review of ordinary differential equations with application to failure rate functions, simulation of evolutionary dynamics, , contagion in social networks (SIR model without or with graph structure)
- Random vectors. covariance matrices, MMSE linear estimation (simple and multiple linear regression), and dimensionality reduction through principal component analysis (PCA)

There will be seven laboratory assignments. Students must be present in the scheduled lab on the odd numbered weeks when new assignments are handed out. Final laboratory reports will be due 13 days after the lab. A short quiz will be given on each of the labs. Grading will be 80% based on the labs (including quizzes) and 20% on the take home final exam.

Instructor: B. Hajek NetID: b-hajek

Teaching assistant: Kevin Schmid NetID: kdschmi2

Section | Meeting time and place |
---|---|

BH1 | 9-11:50 am Thursdays Room 2022 ECE Building |

BH2 | 2- 4:50 pm Thursdays Room 2022 ECE Building |

The lab assignments will be distributed to you and turned in by you as iPython notebook (.ipynb) files. If you'd like to work with the IPython notebooks on your own computer, we recommend you download Canopy (free express version) from https://www.enthought.com/products/canopy/ or Anaconda from https://store.continuum.io/cshop/anaconda/. The differences between these for the purposes of this course are minor, but Canopy is the one available on the Linux Engineering Work Stations. To run an IPython notebook on a Linux Engineering Work Station (the type of machines in the lab) first run "module load canopy" and then "canopy" to open a ``welcome to Canopy window." Then click on editor to open a canopy editor window, and from the Canopy editor window use file-> open or file -> new -> python notebook to open an existing .ipynb file or start a new one.

There are numerous tutorials on the web to help you get started, such as for

- Python,
- ipython notebooks, and
- Numpy. a package adding support for large, multidimensional arrays and various operations on them such as matrix multiplication.