An educating week

An educating week

This has been a week of education for me. Three separate random events reminded me of how much I still have to learn about the world.

I was wandering around the interwebs yesterday and came across this interesting article that claims 190 universities have launched over 600 massive open online courses (MOOCs) in the past four months. That is a lot of education at your fingertips. I’ve been taking a couple MOOCs every year to brush up on some old concepts and learn a few more. I think it’s a great way to stay up to date in a data world that is moving exceptionally fast. This is a daunting list but I’m glad to see it all in one place.

I also attended a training yesterday about parallelization on HPC systems from Penn State’s Institute for CyberSciences and was told about GitHub’s education pack. Not only can you get free unlimited repos with a .edu email, but all sorts of other really cool treats. A free Hobby Dyno on Heroku for two years? Yes please.

Finally, dates in Excel are madness. For one of our Analytics Deliverables (read: homework but much harder), the students have to convert a weird date format into Excel dates. Part of that requires them to change a two digit year in string format. So, “14” is supposed to represent the year 2014. But:

=DATE("14",7,1) => 7/1/1914

Ok, that’s understandable. Excel thinks I mean 1914 if I just say 14. Call that a hangover from the 20th century. #Y2K I can fix that by adding 100 years (the solution a student brought me).

=DATE("14"+100,7,1) => 7/1/2014

However, adding 2000 to “14”(my solution) also gives me 2014:

=DATE("14"+2000,7,1) => 7/1/2014

Well that’s strange behavior we should all watch out for. Let’s try to create a date before 1900 (which is what Excel’s DATE system uses as a starting point):

=DATE(1882,7,1) => 7/1/3782

Again it thinks the number is years since 1900. So I think the code is something along the lines of:

numeric_year = numeric(year) if (year >= 1900) and (year <= 9999) else numeric(year) + 1900

Sure, why not?