a thoughtful web.
Good ideas and conversation. No ads, no tracking.   Login or Take a Tour!
comment by akkartik
akkartik  ·  3439 days ago  ·  link  ·    ·  parent  ·  post: What are you working on today?

Rather to my surprise, I wrote a hundred lines of code between getting up and going to work this morning. I'm building an environment to help teach my students programming, which consists of panels where you can define functions on the left, and a repl-like thingy on the right where you can call functions, see their results, click on the results to expand a trace of computations, zoom in and out of the trace. Eventually I hope to be able to make an edit to a function and automatically rerun all the commands in the 'session', flagging any changes or errors. Automatic unit tests for a fraction of the effort.

As of this morning, the left side is done. Screenshot:

I'm going to start wiring up the right side next. (The repl and trace browser are already done as standalone commands.)





caelum19  ·  3438 days ago  ·  link  ·  

I'm just about to make something similar!

Every Saturday, I teach a class of 10-18 kids aged 10-15. Because the younger ones do not have the patience for more conventional methods(Some refuse to read anything longer than a tweet...), I prepare a .pdf more focused on younger people, here's my most recent one.

What do you think?

Anyway, it takes about 40 minutes to make a page, so my plan is to either make a text editor or a plugin for an IDE/text editor that acts kind of like genius.com, but for code. I would write code, and then annotate it with descriptions so that when you hover over the code, it's description would display. And some other things like a mode that shows you the order that each statement is read in, to help explain functions, though I'm not sure how plausible that is without writing my own JavaScript interpreter.

akkartik  ·  3438 days ago  ·  link  ·  

This is great! Is it a common approach to go over a non-trivial program like this? I've been ranting for months that we should do more of this. Less blank page, more tweaking programs that actually do something, getting feedback along the way.

In case you haven't seen it, this is great as well.

caelum19  ·  3438 days ago  ·  link  ·  

Thanks! Yeah, when I started teaching these kids, I remembered that generating a list of prime numbers between zero and n wasn't too appealing to me when I was learning C. Since the start I've been using this approach. What are you doing with your students? I kind of get to cheat with JavaScript, it's not my favourite language but if you want results fast it's definitely up there, and that is very helpful because as soon as a kid starts experimenting and having lots of fun, that's when you've got them hooked.

And thank you very much for that link, it makes so much sense and I had no idea Khan Academy was as good for this as it is. Definitely getting the kids on it this Saturday.

akkartik  ·  3438 days ago  ·  link  ·  

I currently have two students (a 45 year old and his 10 year old son). They came expressly to learn Arc lisp. So far my approach with the younger one has been to give him a skeleton of a program to play tic-tac-toe, and then we're gradually filling it in. Right now we're three sub-problems deep learning about recursion, and tic tac toe probably seems much harder than when we started :)

My general approach has been to give him a day or two to solve a problem before working with him on the solution. The idea being that he'll remember more once he's struggled with it by himself. But several times now I realized that the problem I gave him was too hard and spent the next session working on something simpler. So I'm learning a lot.