Notes and work Paradigms of Computation course Coursera