The Amazing Colossal Lifelong Learning Ketchup

Taking inspiration from some guy who decided to do a self learning journey through the entire MIT CS undergrad education in 1 year, I’m curious how I stand after spending 1 year doing something in the same spirit.  There was quite a bit of overlap of my own undergrad education and that of the MIT CS undergrad, so let’s see how I would stack up if I were to attempt the MIT CS 1 Year Learning Challenge.  

8.01: Physics I – Classical Mechanics – COMPLETED @ UIUC

18.01: Single Variable Calculus – COMPLETED in High School

18.02: Multi-Variable Calculus – COMPLETED in High School

8.02: Physics II – Electromagnetism – COMPLETED @ UIUC

6.01: Introduction to EE and CS I – COMPLETED @ UIUC

5.111: Principles of Chemical Science – COMPLETED @ UIUC (I will count this as Orgo)

7.012: Introduction to Biology – COMPLETED @ UIUC (I will count my microbiology)

18.03: Differential Equations – COMPLETED @ UIUC

6.02: Introduction to EE and CS II – COMPLETED @ UIUC

6.042J: Mathematics for Computer Science – TBD 

6.006: Introduction to Algorithms – COMPLETED with Coursera

18.06: Linear Algebra – TBD with Coursera

6.041: Probabilistic Systems Analysis – TBD

6.002: Circuits and Electronics – COMPLETED @ UIUC

6.046J: Design and Analysis of Algorithms – COMPLETED with Coursera

6.034: Artificial Intelligence – TBD with EDX

6.003: Signals and Systems – COMPLETED @ UIUC

6.004: Computation Structures – TBD

24.241: Logic I – COMPLETED with Coursera

14.01: Principles of Microeconomics – TBD?

6.033: Computer Systems Engineering – COMPLETED @ UIUC & futher on Coursera

6.013: Electromagnetics and Applications – COMPLETED @ UIUC (I will count Power Circuits towards this goal)

14.02: Principles of Macroeconomics – TBD?

24.242: Logic II – TBD

6.011: Intro to Comm., Control and Signals – COMPLETED @ UIUC

24.244: Modal Logic – TBD

14.20: Industrial Organization – TBD

14.23: Government Regulation of Industry – TBD?

14.48J: Economics of Education – TBD?

6.005: Elements of Software Construction – TBD

6.801: Machine Vision – TBD

6.837: Computer Graphics – TBD

COSC 545: Theory of Computation – TBD

I’m not sure I’d actually want to complete the rest of this course list!  I’m very glad I am not forced to jump through these hoops.

I count Coursera curriculum as part of some hypothetical uber undergrad curriculum based on the level of rigor of the coursework.  Comparatively, the Coursera (Edx, etc) coverage will go far beyond that of any single undergrad major in breadth and sometimes in depth, without going into the details of research and papercraft!  

Mirroring the MIT Challenge FAQ, my Endless Coursera Et All Challenge FAQ.

Here’s my progress after one year.

Completed Fall 2011 

  • Intro to C Programming – UW Online * CS61A – UC Berkeley (Part 1/3)
  • Relational Databases – Stanford (no samples) Completed Spring 2012 

Completed Spring 2011

  • Software Engineering for Saas in Ruby on Rails – UC Berkeley 
  • Natural Language Processing – Stanford (1/4)
  • Design and Analysis of Algorithms I Part 1 – Stanford
  • Udacity CS101 – Building a Search Engine
  • Game Theory – Stanford 
  • CS61A – UC Berkeley (Part 2/3)

Completed Summer 2012 

  • Algorithms I – Princeton 
  •  Networked Life – UPenn Completed Fall 2012

Completed Fall 2012

  • Statistics One – Princeton
  • Computing for Data Analysis – John Hopkins 
  • Introduction to mathematical thinking – Stanford – Lectures only
  • Web Intelligence – IIT  

Currently In Progress Fall 2012 

  • Functional Programming Principles in Scala – EPFL 
  • EDX CS188 – Berkeley 
  • Mathematical Biostatistics Bootcamp – John Hopkins
  • Computational Investing – Gtech 
  • CS61A – Berkeley (Part 3/3)

What rules am I following?
Coursera is definitely easier to delineate completion as it was designed to be taken in a self-study format.  However, I am also supplementing with EDX, Udacity, Berkeley, and any other online material that is sufficiently polished to cowboy on.  

Unless specified, I am doing all the following for “Class Completion”:
  • Watch all posted lectures
  • Do all in lecture quizzes
  • Do all assigned quizzes and homeworks
  • Do all non-optional programming assignments
  • Do all programming projects as long as they have some sort of unit tests or test cases written so that I can quickly measure my progress. 
  • Attempt to complete course within the time constraint that the class is in session or sooner

Because I hate exams, I generally do not do them unless it’s a math class.  Generally these online classes will automatically grant certificates based on achieving at least a 70% in the class, so I do not have to do that measurement myself.  I do aim for a score that I would be happy with if this were my GPA though.

Why do this?

I am not sadistic. I just feel like this is actually the path of least resistance to gaining knowledge.  I believe failing and trying again and sometimes taking longer than others is part of the learning process.  If I don’t complete a class within time constraints, I continue until I finish.  In the normal time-constrained world, that would be counted as failure — end of story.  I am doing this as part of an exploratory process that can only be simulated if I were to stay in college for decades.  

Is there No Failure?

Sometimes I have encountered classes I just cannot stomach or I just can’t seem to make any headway into.  Those I will abandon readily but with great sadness! 

What’s Next?

There’s quite a few more Courseras on my list in my bigger list of things I’d like to achieve personally. 
  • Go back and review some Calculus and Linear Algebra with the upcoming Courseras
  • Learn more Chinese with
  • With the undergrad curriculum as a guideline, use Coursera to further that as well as for my own exploratory desires
  • Start and finish a personal project
  • Get to 300K on!
  • Work on my colossal reading list, see also the Amazing Colossal Science Fiction Ketchup

GitHubbing and Coursera

Yay, I finally caved and bought my subscription to GitHub. I'm still not sure what the true benefit of it is, besides being able to finally get some private repos.

I'm nearing the end of the Computing for Data Analysis class by John Hopkins University and the Statistics One class by Princeton. ??Both have been a very neat crash course on R programming for me. ??I definitely need to brush up more on my statistics and probability. ??So I'm also following the Biostatistics Bootcamp Coursera also offered from John Hopkins. ??All this math has resurfaced painful memories of college and how shabby my math fundamentals are. ??I think I will likely be brushing up on those as well, as soon as they are Coursera'd.

I have some vague notion that I need to learn more math and review all my forgotten ECE maths these days. ??I want to finally have a solid understanding of eigenvectors and matrix algebra and be able to fluidly move around those constructs in some math software package. ??I'd also like to get much better at conceptualizing massive data in my mind. ??I think I'm moving at the speed of molasses towards these personal flags.

Somehow, learning math still seems more attainable than making a simple video game or some little pet project. I'm hoping that very soon I'll do something so that I might claim I have it as a hobby. ??I'm using the projects from Berkeley's CS188 on EDX and CS61A as inspiration. ??Feeling rather burnt out tonight though and haven't made much progress there. ??I don't know if I rather crunch hospital data more because it's easier or if I just like data crunching.

Deleted Scenes From This Week

I’ve been on a quest to fill up my ipod with music, when the Pandora and Turntable of today have turned me into a music prey rather than a music hunter.  Switching back is hard work, especially since I’ve discovered some of my favorite bands could easily be just any guy on the internet with a synth and a computer.  This is truly the age of electronica, when having an analog meat-space band has become obsolete.  Dare I dream of it being a Brave New World of democratic electronica?  I think it might be here already.

A MIXTAPE for you:
U.S. Killbotics – Winter is coming
Opiuo – Robo Booty
RATATAT – Mirando

I’ve just about exhausted Spotify’s Related Artists sections for new material.  I’ve also tried the same on Zune and

Lately, I’ve had great luck farming from

When all else fails, I will venture forth into the dungeons of Bandcamp.

Fast Forward >>

It’s a gray, cold summer in Seattle and I’m sitting at the doctors’ office waiting for my immunization.  My nurse bustles in and most likely sees my distaste for needles, and she assures me without the slightest hint of arrogance, “I am very good.”  And she was.

Fast Forward >>

“You will be seeing Hiro today,” The receptionist guides me to my seat. She tells me with emphasis,  “He is very good.”

Two Japanese woman gossip over their gelled nails, in that breathy, nasal pitched tone. I cannot see them, but I am picturing anime women in my minds’ eye.  Hiro, my stylist — no, The Artist, eyes me critically through the mirror.  He is dressed in a purple t-shirt and has a twisted lob of hair that gathers at a side of his forehead.  He flicks his head and sends the forehead plait bobbing.  

Fast Forward >>

A middle aged woman is scanning my over-priced items at Whole Foods.  I am imagining she herself does not shop there.  Then I see a look in her eye, as if reading my thoughts and as if shaming me for my indulgence.  Then I realize, with a tinge of bitterness, that she and all the cashiers could be replaced by some software and one developer for maintenance.  This is not the first time the thought has crossed my mind under similar circumstances, which in itself also bothers me.

Fast Forward >>

I log into my Google+ only to confirm what I had already known all along: Google+ is an absolute ghost town. This is a sad cautionary tale of when too many engineers get together and lose touch with other humans.

I’m going through Week 3 of Introduction to Human-Computer Interaction course on  When an existential moment hits me and I realize that this course is better renamed to “Introduction to Human-Human Interaction for Humans that have Lost Touch with Humanity.”  The irony as it applies to myself is not lost on me.  I’m also frustrated by how common sense the material seems to be, so I unenroll for the first time on Coursera.

Open Questions for the World at Large

I keep making a mental note of setting up a series of posts in the style of McSweeney’s, but all I’ve got so far is a modern day un-“fairy tale” swirling about in the shallow parts of my brain…  I’m pretty sure it’s been done, but I wish I had an algorithms doing this type of checking for me.


Are early-stage startup employees just a glorfied version of the unpaid, liberal arts intern?  Given a generous statistic indicating that 9/10 startups fail, how are these two opportunities much different in the average case?


The End of the Future” by Peter Thiel indicates a general sentiment that is beginning to creep into my own thoughts.  


I keep waxing back and forth on whether the global economy is headed towards a major depression or towards high inflation.  It seems without doubt that the world has reached peak oil, global warming, and maxing out what institutional structures were intended for i.e. the Eurozone currency crisis.   

The Online & Free Education

This is such an amazing week.  It is such an incredible time to be young of mind and free to pursue educational desires.  Free, online classes are starting to populate for this semester.  I’m feeling more and more torn that I cannot just drop everything else in my life just to enjoy these amazing resources.  On the other hand, it was as if these classes were conceived with the busy, corporate worker in mind.  It’s as if the designers put every thought of my schedule and convenience when creating the online curriculum.


Tonight is something of a historical night, now that two offerings on have finally come online after some time in preview.  I’m going to be following both the Software As A Service Berkeley class with Ruby on Rails, and Model Thinking from UMich.  The first is interesting because it is teaching something that is very relevant to the IT industry, whereas in general a computer science curriculum emphasizes the science and math aspect.  The second class fits more under philosophy or some other soft science.   I am very curious how they will be utilizing Coursera and how effective they will be in educating me.  

Luckily for the administrative hiccups, Stanford’s Coursera courses have all been delayed, and I might be able to consume all of their offerings after all.


Tomorrow, the first Udacity CS classes will be launching!  I will be following along the CS 101 Search Engine class, although it hardly seems as basic as 101 suggests it should be.  Udacity will be an interesting experiment to see if Professor Thrun’s certifications for his classes will carry any weight in the real world.  I love the idea that a single man is doing what it took universities so long to get running.  I love that a single man will accredit his classes and universities be damned.  I would love to see a future where professors break free of the university model, break free of the ivory tower by getting real time feedback from the world, stay current with technological trends, and teach the world.


MITx is doing something similar to Stanford and Professor Thrun, in that they are offering free online courses then charging a fee for the certification, although if done correctly it shouldn’t be too different from other types of accredited engineering certifications.  I am excited they will be offering “real engineering” classes rather than so many more software classes.   But I won’t be experimenting on their platform until they’ve offered something I haven’t taken.  I am sad yet relieved at the same time!

Open Courseware

I’m also following along Berkley’s SICP class online in near real time. These are just independent study materials, but the exercises and projects have been educational!  I found this material to be easier to digest than the MIT opencourseware’s equivalent Intro to Computer Science course material.  Both courses are taught in Python.  The first has homework solutions and the later has the benefit of video lectures.  Probably the most wholesome approach is to use both, although I don’t plan to do that.

I wonder how and will fare with these giants now playing in their sandbox?   It seems to me that neither offers a very complete solution to the online education problem.  Codecademy is still very vocational and lacks anything that resembles study material, while codelesson is essentially structured self study and doesn’t have the power to draw large virtual rosters.  

A Lone Celebration

Since this is the time of the year when the pair bonding ritual is blazenly celebrated, I’m going to go on a somewhat contrary path. I want to celebrate the ending of relationships, for which I am personally thankful for.

Cheers to:

  • The end of my draining relationship with being constantly on instant messenger.  This is the first step to taking back control of my time for its primary customer — me.
  • The end of my physically abusive relationship with my Macbook Air, as in, I no longer use it as my primary computer.  Now I don’t have the constant neck and shoulder pain.  I never gave ergonomics much of a thought until I started having a constant feeling of mild pain.  Once I realized that I can adjust my desktop to the best possible configuration for my health, health regained! 
  • The end of caring what everyone else is doing, caring what everyone else is achieving, being taken advantage of by power-hungry sociopaths, and feeling envious or demoralized.  
  • The consummation of my compulsions for video games, movies, tv.  

Overall, I am most happy that my time is 100% mine and not to be compromised for anyone else.  

Python 3.0 Print Oddity

English: Python logo Deutsch: Python Logo

Image via Wikipedia

So I tried out the python doc’s code sample for HTMLParser in the shell, but modified it a bit for Python 3.0 and also my own purposes.  It seems like if you just re-run the class in IDLE, the behavior will update but old print statements will persist.  So strange! I wonder why?

from html.parser import HTMLParserclass MyHTMLParser(HTMLParser):    def handle_starttag(self, tag, attrs):        if tag == 'p':            print ("Encountered a P tag:", tag)            print ("Attrib:", attrs)    def handle_endtag(self, tag):        if tag == 'p':            print ("Encountered  an end P tag:", tag)    def handle_data(self, data):        print ("Encountered   some data:", data)parser = MyHTMLParser()parser.feed('<html><head><title>Test</title></head>'            '<body><h1><p>Parse me!</p></h1></body></html>')

Looks like the correct behaviour, but why does the original print output get displayed?

Encountered   some data: Test
Encountered a start tag: p
Encountered   some data: Parse me!
Encountered  an end tag: p

This must be some residue of the previous Python version, although the docs suggest I should be able to do everything as before except wrap print parameters with the parentheses.  


Old: print "The answer is", 2*2New: print("The answer is", 2*2)


I guess in Python 3+, only the str.format is safe to use for all occassions — at the moment.  

Enhanced by Zemanta


Ender’s Game Musings, AudioBooks, Reading

I've been having a blast lately rediscovering audiobooks as a distinct media form. ??By combining audio listening while on the go and reading on the Kindle, I've doubled my consumption rate of literature compared to last year when I was only using a Kindle! ??In only two months into the new year, I've been able to reach the halfway point of this year's reading goals — which, of course, I've now set higher! ??This puts me back to a respectable 18% completion! ??Perhaps, if I can continue at my current rate of 100 books per year, I should be able to read 7000 books before I die. ??That should well enough cover my reading bucket list!

So, out of the many legal platform choices for audiobooks out there, none of them seem to be fully featured…

We have Overdrive Media, which serves as the platform for most libraries and Barnes & Noble. ??OverDrive has a better PC software that will have the audio divided up into sensible 'chapter' locations — whereas Audible has nothing of that sort. ??Overdrive updated their Windows Phone app to Mango, so now you can listen to books in the background, just as it should be. ??

Amazon's Audible certainly has the price point advantage over Barnes & Noble. ??I'm tempted to buy my audiobooks from B&N instead just because the delivery platform is better. ??Yet, I have to wonder if my digital media will sink with the ship when some inevitable day Amazon devours B&N?

There's been murmurings of a newcomer to the audiobook territory,! ??They boast of a Netflix all-you-can-eat subscription model, which also has me sorely tempted. ??I've got to also wonder what will happen to their customer base if they end up shuttering.

This weekend, I re-read the first Ender's Game via audiobook. ??I can highly recommend this audiobook, as it is among the better books to listen to because of the multiple narrators and general good voice acting. ??I'm also finally reading the second and third books of this series to wrap up what I started so long ago in my youth!

Spoiler Musings Ahead!

The second and third Ender's Game books makes an earnest foray in exploring the??Portuguese??and Chinese culture. ??I'm still having a hard time "disbelieving" the setup where 3000 years after a civilization advanced enough to commit interstellar xenocide and mankind has colonized the far reaches of space via advanced alien technology, there exist entire colonies that have stunted religious and cultural baggage reeking of the 21st century. ??This becomes especially anachronistic by the third book, where ancient Chinese customs from pre-21st century are used as a template for this space colony. ??It seems almost a rule that science fiction should become dated first by the science rather than that of human nature! ??While it is self-admitted that Orson Scott Card himself is not very knowledgeable about Chinese culture, the third book makes this evident by omission when compared against his second novel, where unexplained Portuguese language is sprinkled throughout the novel. ??

/End Spoiler

How to get free OverDrive audiobooks on your Windows Phone 7

Getting these free OverDrive audiobooks onto the Windows Phone may not be so straightforward, but it might be worth it if free audiobooks are valuable to you too!

Before you get started, make sure you have a library account from your local library.  You should check with your local library to see if they support ebook and audiobook lending via OverDrive.

First, download the OverDrive Media Console from your Windows Phone

Create a new Adobe Account ID if you do not already have one.  You will need this id for the DRM that comes with the audiobooks or e-books.


From your Windows Phone, open up the OverDrive Media Console to authorize with your Adobe Account ID from the settings.  From OverDrive’s site, there’s a FAQ.


Search for your library or OverDrive source from within the app.  Then login to the OverDrive site with your library account.


Next search for audiobooks by filtering only by mp3 audiobooks.  There doesn’t seem to be support for wma audiobooks on Windows Phone at this time, so you will not find a download link.


Browse and check out the audiobooks you wish, and follow the instructions from there to download your choices.

Rumors have it that Audible should release their Windows Phone app shortly too!  

Related articles

Enhanced by Zemanta

Codesprint Leaderboard


 There’s 14 hrs left and USA is not even in the top 10.  Ouch!  How symbolic is this of America’s setting sun?

Previous Older Entries

Greatest hits

  • 1,585 hits