Skip to main content

Current Courses

          In an attempt to enlarge my skill-set and keep my brain gears well oiled, I am studying computer science, programming and data analysis. Fascinating courses on every subject are easy to find these days and data science seems to be extremely popular.

Programming/Computer Science

   1.  At the moment, I am working through the free Saylor Academy Computer Science Pathway. Unlike MOOCs offered by universities, Saylor Academy comprises courses cobbled together from already existing online resources (though there are some original resources). 
          So far, I am very impressed with the Computer Science course (CS101):

    • it is  logically structured (each new unit builds clearly on the last)
    • it provides multiple resources on each concept (videos, readings, interactive pages) 
    • it includes regular assessments (including self assessed programming assignments)
          One weakness of the initial course is that it lacks programming practice (the focus of the course is Java and C++). For this I have looked to another course.

     2.  Introduction to Programming (in Java) is a course offered, in French, by the Swiss University (École Polytechnique Fédérale de Lausanne). It is one of several MOOCs I am taking on Coursera at the moment. The advantage of this course is that it includes a large number of programming assignments, both guided and unguided.

     3. At the same time I am working through Beginning Programming with Java for Dummies which is a straightforward complement to the Saylor material.

     4. On edX, among many other courses, I am taking Computing: Art, Magic, Science, also offered by a Swiss university. The instructor (Bertrand Meyer) is apparently a software engineering 'god', primarily due to his influence on object oriented programming. The course so far is quite abstract- Meyer is trying to teach pure object oriented programming (represented by his Eiffel language) vs. the mess that Java and C++ have become (in his view).

     5. Codecademy and Code School are two sites that offer free, guided courses in numerous programming languages. Codecademy is entirely free and I have started working through the Python course. Although a beginner could complete the course successfully, some might find the explanations a bit terse and need to look elsewhere. For example, an early lesson involves decision making (if, else if, else) using boolean operators. I found it difficult to complete the final assignment until I had covered the topic in the Saylor CS101 course and understood the underlying principles.
         Code School charges for most courses, but offers a short, free introduction to R and a very short one to Git. The R course is pretty and pirate-themed but it didn't offer the opportunity for independent practice. Each step was spoon-fed, and so defeated the purpose of an interactive tutorial. 

       ( A much better introduction to R (see below) is the Swirl package which provides tutorials in the actual environment. It is still a step by step tutorial, but it requires you to write your own code rather than copy the screen (as in the Code School course).)

Data Science

   1. My main focus is on the Coursera Data Science Specialization, a series of 9 short courses with a Biostatistics focus. The course introduces the use of Git and Github for version control, (the rationale for using Git took a few days to sink in.) To a noob like myself, Git is relatively opaque- I am still working on understanding the underlying structure (workspace>staging>commit to local repo>push to remote repo) and the associated commands. The Git course on Codeschool helped with the basic commands.
       The second course is an introduction to R programming, which I am halfway through. The design principle of the course seems to be to throw all the details at you in the videos and then expect you to remember where in the video to look when you are applying in R. A better design would have been to have the student work in R concurrently using examples.

  2. Other courses in R have done just this. On edX, I am enrolled in Foundations of Data Analysis. The video tutorials on R lead the student on a more gentle path and get them working with data files early on rather than go through every single command you will ever need before you need them.

 3. There is also a, now dormant, course which I am dipping into for alternative explanations called The Analytics Edge. This course also provides a nice introduction to R.

  4. An exciting new course on edX is Data, Analytics and Learning. It is itself an experimental course. The instructors are attempting a new style of MOOC to take advantage of opportunities afforded by social media and information sharing capabilities of the web. Rather than a standard, linear (teacher>student>assessment) format, the course looks more like a non-linear network. Students use the basic structure of the course to identify broad learning goals, they then use a bespoke social platform (ProSolo) to post their goals, interact with other students and record their competencies (i.e. what they have learned) as they develop. 
    The actual content of the course is on Big Data in Education and introduces a variety of new software tools including Tableau, R and an intriguing site called Silk where users can create and share data visualizations.

5. My one criticism of the R courses is that all of them recommend using RStudio (an R language IDE) but teach you how to use R. Most of the time, this is not an issue, but I have already encountered instances where commands in R do not seem to work in RStudio (though this could be a version issue).

  Other

Other than that I am brushing up on maths (especially calculus), taking a Logic course, and preparing for a course in Linear Algebra next year. 






Comments

Popular posts from this blog

CodeSchool vs Codecademy(or 'How socket inherits event listening methods and implements asynchronicity')

In this review I'm going to focus on the pedagogy that I see evident in some CodeSchool courses and compare them to  Codecademy. By pedagogy, I mean: 'How does CodeSchool teach?' and ' Does it do a good job of teaching?'. I'm going to argue that despite high quality videos, colourful web pages, and often ssspppeeeeeakkkiiiing...rrrreeally...slowly..., CodeSchool's pedagogy is inferior to that of Codecademy. There are many fantastic resources for learning to code on the web, and CodeSchool is one of them. So far I have completed courses in Ruby, Rails, Javascript, HTML/CSS, Jquery and Git on CodeSchool. The courses have all included high quality videos and colourful, interactive exercises- as well as  massive  pdf files of the slides ( the files take more than a minute to load on my machine .) The question is: does the higher production value mean better educational quality? The 'Try' courses on CodeSchool(such as Try Ruby and Try jQuery) are f...

Algorithm Analysis - 1

Currently, I'm learning to perform algorithm analysis using Big-O notation. In one resource I found the following problem: You just dropped a box of glass toys and  n  toys in the box broke in half. You'd like to match the halves of the toys so that you could glue them together, but the only way to tell whether two halves belonged to one toy is to physically pick up the two pieces and try to fit them together. Express how long this matching process will take in terms of  n . The answer given is n^2 (n squared) with the following explanation:  You have to compare every piece with every other piece. If you have 1 toy and it breaks in half, you have 1 comparison to make. If you have 2 toys and they both break in half there are 4 pieces and you have to do 6 comparisons. If you have 3 toys, there are 6 pieces and you have to do 15 comparisons. If you have  N/2  toys, you have  N  pieces and you have to do N-1 + N-2 + N-3 + ... + 1 =(N)(N-1)/2...

Ruby, RSpec, Linux and Relational Algebra (or "What I'm doing this Christmas")

Last week was challenging- I'm beginning to appreciate the need for a programming buddy.  So far, I haven't found a Ruby IDE that helps with missing brackets or illegal syntax. This means hours spent looking for errors which more experience (or an IDE) would have solved in an instant. I've spent a lot of time on Stack Exchange looking for solutions to problems that many have already had- so far I haven't had to post a single new question (though it's evident that many people post duplicate questions, not having looked for a solution first). I spent longer on the Ruby project than anticipated, BUT I really enjoyed learning about Behaviour Driven Development. Thinking of tests in RSpec and then watching my Ruby script pass (eventually) was like passing an exam (though  one I had written myself). This week I'll be starting Rails-after I complete the CodeSchool Rails courses I'll go on to their RSpec course. Partly for the geek cred, partly out of curiosit...