I have previously written about how I have taken a number of technical courses on the Coursera platform. Over the last year, I have continued taking online courses, but tried to broaden my horizons a bit by taking a few non-tech courses, in addition to a few courses related to software development.
The first course – A Brief History of Humankind by Dr. Yuval Noah Harari at the Hebrew University of Jerusalem, which I took between August and December 2013 – was a long and ambitious outline of the origins of mankind and of events, coincidences and choices that have led us to where we are today. In many ways, the instructor paints a bleak picture of the times behind us, and of those (according to dr Harari rather limited) ahead of us. The course’s second offering is currently (September 2014) in progress.
Between September and October of 2013, I took the course 9/11 and Its Aftermath (Part I) by associate professor David Schanzer of Duke University. I took the course because it is very easy to have a strong opinion about the atrocities of that day, but I was hoping for a bigger picture and a deeper understanding of what actually lead up to it. The instructor made a great effort at explaining the mechanics behind terrorism, and diving into the combination of many factors that can cause it. Although I don’t think I will ever be able to understand the actions behind such an attack, this was another interesting course. A sequel to this course, Responding to 9/11: Counterterrorism Policy in the 21st Century, starts in October of 2014.
With Principles of Reactive Programming between November and December of 2013, I went back to my own field again. This course was split up into three segments. The first one was taught by professor Martin Odersky from École Polytechnique Fédérale de Lausanne. The creator of the Scala language, whose course Functional Programming Principles in Scala I thoroughly enjoyed a year before, started by talking about general concepts of functional programming, and introduced the ScalaCheck library for property-based testing. During weeks 3 and 4, Erik Meijer from Applied Duality talked about reactive programming and concepts such as futures, also as computations on streams. During the last three weeks, Roland Kuhn from Typesafe Inc. introduced us to actor-based programming. These were for me three amazing weeks, and has led me to start work on an actor-based framework for Delphi, something that you may see on this site later. All programming during the course was done in Scala.
Another course in the humanities field, The Modern World: Global History since 1760, taught by professor Philip Zelikow, University of Virginia, between January and May 2014, is described as “…a survey course in modern world history for students […] who wish to better understand how the world got to be the way it is today”. Starting with the revolutions on both sides of the Atlantic, the course traces the events that have led to the world as it exists today. A very interesting course with a strong focus on how a situation causes actions among people, and how these actions cause a new situation. In many cases, the instructor puts forward quite convincing theories behind major events of world history.
Between March and May of 2014, I took the Machine Learning course, by professor Andrew Ng of Stanford University. This is the course that started it all, and led professor Ng to start Coursera in 2012. This too was a very interesting course, dealing with the topic of how to teach computers to learn from their experiences. The course covers supervised learning (classification, implemented using e.g. neural networks) as well as unsupervised learning (clustering, used e.g. for recommender systems such as the ones used by e.g. Amazon and Netflix). The programming assignments for this course were done using Octave, a language similar to Matlab.
I am currently enrolled in the course on Computational Investing by Dr. Tucker Balch of Georgia Institute of Technology. So far it seems very promising and you may read about it here in a year or two.