INTERACTIVE COURSE

Advanced

44 Lessons

20h

Certificate of Completion

36 Playgrounds

35 Illustrations

Course Overview

There are a lot of problems we face in programming that deal with uncertainty, statistics, and probabilities. Unfortunately, the majority of the general-purpose languages that we use on a daily basis don’t provide a great approach to solving them. This is particularly the case in C# with the System.Random class. The implementations of this class have been pretty poor for some time. System.Random in C# regularly leads to unexpected, buggy outcomes. If you’re a C# fan who’s looking for new ways to use the l...

Course Content

1

Introduction to System.Random in C#

2

Introduction to Fixing Random

Fix the Trivial ProblemsIntroduction to Continuous Probability DistributionsIntroduction to Discrete Distributions

3

Fixing Random - Discrete Distribution

Singleton DistributionDiscrete Distribution on C# ObjectsNon-uniform Discrete DistributionNon-uniform Discrete Distribution (Continued)Alias MethodConditional Probabilistic ReasoningEfficiently Sampling a Conditioned DistributionLikelihood FunctionsProbability Distribution MonadProbability Distribution Monad (Continued)Probability Distribution Monad with Round NumbersSolve Problems in Bayesian InferenceDiscrete Probability Distribution Type as a MonadMonty Hall ProblemEmpty DistributionMusings about Language DesignProposed Stripped-Down C#Converting to Ordinary C# 7Challenges for Improving Imperative Probabilistic WorkflowsProblems with Discrete Probability DistributionsModel Markov ProcessesAn Application of Markov Model

4

Fixing Random - Continuous Distribution

Probability Distribution FunctionTechniques for SamplingMetropolis AlgorithmPosterior DistributionsComputing Continuous Posterior DistributionExpected Value of a Discrete DistributionWhat is the Average Value as the Number of Samples IncreasesBetter Estimation of the Expected ValueBetter Estimation of the Expected Value (Continued)Reviewing Expected ValueCorrect Implementation of Importance SamplingAttacking the Final ProblemFurther Improvements

5

Conclusion

6

Appendix

2 Lessons

COURSE AUTHOR

How You'll Learn

You don’t get better at swimming by watching others. Coding is no different. Practice as you learn with live code environments inside your browser.

Videos are holding you back. Educative‘s interactive, text-based lessons accelerate learning — no setup, downloads, or alt-tabbing required.

Learn faster and smarter with adaptive AI tools embedded in every Educative course.

Built-in assessments let you test your skills. Completion certificates let you show them off.

Recommended Courses

BEFORE STARTING THIS COURSE