Probabilistic Programming Primer