Skip to content

Jupyter notebooks about Programming, Statistics and Math

License

Notifications You must be signed in to change notification settings

jpneto/topicsInPython

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Topics in Python

This repository includes Jupyter notebooks dealing with themes ranging from Statistics and Mathematics to Programming.

Programming

Array Programming - what is array programming and how to use numpy. Run on Colab

Concatenative Programming - tacit programming and concatenative programming using Python high-order functions. Run on Colab

Corecursion - codata and corecursion, and how to use it in Python. Run on Colab

Monoids - Monoids as Python interfaces, implementation and use cases. Run on Colab

Functors & Monads - Functors, Applicative Functors and Monads as Python interfaces, implementation and use cases. Run on Colab

Finite State Machines - Implementing and testing Finite State Machines. Run on Colab

Continuations - applications of continuation-passing style programming, including tail-call optimization and use of combinators to perform backtracking. Run on Colab

Coroutines - applications of Python's coroutines to several types of programming problems. Run on Colab

Domain-Specific Languages - using Lark to create a small DSL Run on Colab

Constraint Programming - introduction to constraint programming using Microsoft's Z3 and pycosat Run on Colab

Logic Programming - introduction to logic programming with Prolog via Python's module pyswip Run on Colab

Statistics

Sampling Statistics - A sampling approach to random variables and distributions to teach basic statistical methods without Calculus. Run on Colab

Resampling - notes about permutation tests to estimate answers to probability problems and propose alternatives to several statistical tests. Run on Colab

Bayesianism - discussions about the philosophy and practice of Bayesian statistics Run on Colab

Probabilistic Programming - introduction to probabilistic programming Run on Colab

Mathematics

Optimization - brief notes about convex optimization and how to apply it with Python. Run on Colab

Street Fight Mathematics - some mathy ways to guesstimate answers of hard problems. The notebook includes Python solutions for the problems presented by Ryan O'Donnell in his lecture on this subject. Run on Colab

Differentiation - computing derivatives via symbolic differentiation, numerical differentiation and automatic differentiation. Run on Colab

JAX - use examples of Google's module JAX for automatic differentiation, JIT and vectorization. Run on Colab

Modular Arithmetic - elements of modular arithmetic, some examples and implementations of standard functions. Run on Colab