Revisiting ArsDigita University
Overview + Introduction
If you Google or Quora the question “do I have to know math/computer science to code?,” many of the answers will say no and follow with a condescending and dated point about how computer science students can’t even write a ‘fizzBuzz’ program. It shouldn’t take much skepticism to see how false this must be. Wishful thinking can get a person to believe a lot. And while it may be true that yes, one can code without knowing any computer science, it does not mean this is an optimal path in attaining a deep understanding of the art of programming.
I just finished a software bootcamp and it was clear who had understood the material better and why. While everyone got the gist, the students who got the most out of the coding tools were the students who had backgrounds in computer science*. It did not matter their age, gender, sexual orientation and the like, if at student knew the fundamentals, the student then easily understood Ruby or SQL or DOM manipulation.
I drowned a lot. Drowning was not exactly pleasant. I finished alive but the next steps were clear: computer science was in order. That is where ArsDigita University comes in. Over the next fifty-two weeks, I want to follow the program, write a post on the core discoveries and of course test my newfound knowledge against any future projects.
Some thoughts about taking on a curriculum dating from 2001. First, the program is free. Second, it is specifically designed for one year. Looking at many of the other MOOCs and seeing them in combination, there is no definite timebox for completion of something similar. Third, computer programming is mostly about thinking, not using new technologies or grasping libraries. That is why I attended a bootcamp. Now, I need to understand the discipline’s history and its fundamentals, which will reinforce my bootcamp knowledge. Forth, new does not mean better. I cannot think of many books, for example, that are better than the western classics; Gillian Flynn is not tenser than Nabokov, Krugman is no more rigorous than Marx, Facebook is not better than going to a bar with friends. Anything created will undergo the test of entering a cultural filter. New things have not been tested and thus, their fate is unknown. But things, like a Rothko or Hey Jude, have. And if they are still around, it means they are still profound. It is seventeen years later, and the views for ADI lectures continue to be patronized.
With any further ado, here is the outline for the next year courtesy of adiuni.org.
- Structure and Interpretation of Computer Programs
- Discrete Math
- How Computers Work
- Object-oriented Program Design
- Algorithms
- Systems
- Web Applications
- Theory of Computation
- Artificial Intelligence
- Unix Workshop
- Database Management Systems
- Applied Probability
Footnotes:
* Having a grasp doesn’t necessarily mean the knowledge gains were outsized. Every student knew far more than when they started. The non-cs students who excelled and had scant prior coding knowledge performed quite well due their general intelligence, grit and what seemed a focused life (devoid of outside responsibilities) allowing them to stay on task. In other words, cs is useful for a bootcamp, but it is not the end all be all.
**Bringing a computer science background reminds me of the the pattern known as the ‘relative age effect’ that happens in the development of soccer talent. It partially explains a youth player’s success by simply finding out what month the player was born. Chances are they were born in the first half of the calendar year. Because they are older they most likely are bigger and more developed. The big kids play against smaller kids allowing them to run rampant, hone their skills and gain confidence over time.
