I can share my experience, because I was asking myself the same question 6 years ago...
My approach was to try and build a Lisp -> Brainfuck compiler. My reasoning was: Brainfuck is pretty close to a Turing machine, so if I can see how code that I understand gets translated to movement on a tape, I'll understand the fundamentals of computation.
It became an obsession of mine for 2 years, and I managed to develop a stack based virtual machine, which executed the stack instructions on a Brainfuck interpreter. It was implemented in Python. You could do basic calculations with positive numbers, define variables, arrays, work with pointers...
On one hand, it was very satisfying to see familiar code get translated to a large string of pluses and minuses; on the other, even though I built that contraption, I still didn't feel like I "got" computation in the fundamental sense. But it was a very fun project, a deep dive in computing!
My conclusion was that even though you can understand each individual layer (eventually), for a sufficiently large program, it's impossible to intuitively understand everything about it, even if you built the machine that executes that program. Your mind gets stuck in the abstractions. :)
So... good luck! I'm very interested to hear more about your past and future experiences of exploring this topic.
I wasn't aware, no. However, interpreting Brainfuck code is the easy part, as I've learned. The hard part was creating a "runtime" that understands memory locations aka. variables.
Most of the project was figuring out things similar to that. You get to appreciate how high-level machine code on our processors really is! When things like "set the stack pointer to 1234" are one instruction, instead of 10k.
I'm surprised at the 100 student limit they impose. I'm currently following MIT's 8.01x Physics course on edX along with 33k other students. So far I haven't had an issue that's a direct result of the number (like felling I don't get enough attention from the staff.)
So on one hand we have options like edX, which reach a lot more people and are mostly free ($50 for a verified diploma) that reach orders of magnitude more students, and on the other a paid-and-accredited degree.
I personally hope they'll be more of the first ones, because of a) not being able to spend $6k and b) the warm feeling I get in my stomach when I think about free and high-quality education that reaches tens of thousands of people.
In general, I think there is a lot more risk to the institution for handing out accredited degrees to paying remote students than for handing out an honor code certificate. They are just taking baby steps, which is a good thing.
Great. Do you maybe know if they plan on dropping the price in proportion to the number of students rolled in?
I'm thinking: if they enroll 10x students, their expenses will be covered if every student paid 1/10 of the price. And getting a masters degree for $600 from an accredited university... that's really something.
They will only have limited resources for per-student support, they will have to authorize each student and they will want to gradually develop what "passing grade" (or similar) they want to require.
They offer "ID Verified" certificate on some courses for a small fee, certificates which should be more valuable than the regular ones. However I don't think they're accredited.
The robot dares reminded me of "Lightbot"[1], a game which I admire and think gives a great introduction to programming concepts, without going into the details of a programming languages' syntax.
Anyway, great work. I showed it to my girlfriend who wants to learn programming; she finds it way more fun than Codecademy.
I got a notification from my antivirus program about a malware. I am not sure what it said exactly though because I pressed "Deny Access" quickly. So, beware.
My approach was to try and build a Lisp -> Brainfuck compiler. My reasoning was: Brainfuck is pretty close to a Turing machine, so if I can see how code that I understand gets translated to movement on a tape, I'll understand the fundamentals of computation.
It became an obsession of mine for 2 years, and I managed to develop a stack based virtual machine, which executed the stack instructions on a Brainfuck interpreter. It was implemented in Python. You could do basic calculations with positive numbers, define variables, arrays, work with pointers...
On one hand, it was very satisfying to see familiar code get translated to a large string of pluses and minuses; on the other, even though I built that contraption, I still didn't feel like I "got" computation in the fundamental sense. But it was a very fun project, a deep dive in computing!
My conclusion was that even though you can understand each individual layer (eventually), for a sufficiently large program, it's impossible to intuitively understand everything about it, even if you built the machine that executes that program. Your mind gets stuck in the abstractions. :)
So... good luck! I'm very interested to hear more about your past and future experiences of exploring this topic.