I think we missed a key point i was trying to make (likely I didn't explain it well enough).
With a web tutorial, DON'T teach "J" - - teach math. Think of Iverson's "Concrete Math Companion". Take Khan's math tutorials and produce labs that follow along with Khan's videos. Check out Khan's Algebra tutorials (and all the other math-oriented ones) at: http://www.khanacademy.org/#browse It would be fairly easy to make simple J labs that follow each Khan video, expanding on the fairly narrow examples in the Video. Iverson's "Concrete Math Companion" starts out by explaining some basic J notation. I'm not sure that is necessary, at least initially, for the Kahn supplementary labs. Encouraging lots of direct execution experimenting, with the occasional exposure to a new "shortcut" could be a big help to the student, who would be learning array noration without realizing it. A liberal use of direct execution for most of the initial classes would probably be a good approach. You don't even need to mention J, at least at first. Typing 2 + 3 and getting 5 doesn't need an intro to J to perform the addition. For that matter, you could simply explain J's extension of the primitives to arrays as a "shortcut" for experimenting. Thus 3 + 1 2 3 4 5 showing a result of 4 5 6 7 8 could be explained as a "shortcut" to get the answer to multiple additions, without having to type + each time. A similar explanation could be used with +/, all without ever mentioning J as a programming language. Imagine two tabs on your browser - one tab will show Khan's video, and the other tab open to a J labs session running a lab associated with that specific Khan video. The student watches the video, and then steps through the lab. New video, new lab (or the next step on the same lab). Ideally, all the J labs would be hosted on a cloud server with fairly restrictive limits (memory? execution time?) for each session, so the student wouldn't have to go through the pain of setting up a J http server and getting all the add-ons loaded on their own machine. The student should simply have to click on a link on the J Software site (or ideally on the Khan site) to launch the Khan-focused J labs in a new browser tab/window. After all, isn't this one of the main reasons that J Software went through all the effort to separate J's UI from the computational engine - to allow remote J execution? It would be fairly inexpensive to rent a virtual server from Amazon EC2 ($20-$30/mo for a small system) or Microsoft's Azure, to host the J computational server, and it would be easy to expand, if traffic got heavy. Skip On Fri, Feb 3, 2012 at 10:02 AM, Dan Bron <j...@bron.us> wrote: > Hmm. I could do a basic intro to J course at one of the NYC JUGs. If we > broadcast & record it, we could then post it on youtube. > > The question is: who is the audience? What do they already know about J? > What do they want to know? > > -Dan > > -----Original Message----- > From: programming-boun...@jsoftware.com > [mailto:programming-boun...@jsoftware.com] On Behalf Of William Tanksley, > Jr > Sent: Friday, February 03, 2012 10:43 AM > To: Programming forum > Subject: Re: [Jprogramming] Demise of @ and [: debate > > I'd love to see a youtube class on J. I'd download every episode as it > aired to my phone and watch it on the train, using my computer to do > experiments and take notes. That's what I do with "njwilberger" > rational trig and hyperbolic geometry lessons. > > -Wm > > On Fri, Feb 3, 2012 at 6:57 AM, Skip Cave <s...@caveconsulting.com> wrote: > > A methodical approach to teaching J might be to group the primitives into > > groups of similar functionality. Order these groups by complexity (simple > > to complex), as well as perhaps ranking them by familiarity with > > already-learned concepts from traditional math classes, most familiar > > first. > > > > With a learning sequence defined, spend a class on each group of > > primitives, starting with the simplest and most familiar functions (+-*%, > > or perhaps = =. =:), and progress to the most complex and unfamiliar > > functions.You should probably start with direct execution, and introduce > > verb creation after a few classes on basic primitives. Some class time > > should be spent on how to read and understand the vocabulary definitions. > > > > Homework for each class would focus on usage of that current classes' > > primitives, with previously-covered primitives thrown in for good > measure. > > The homework problems should be constructed to not require primitives > that > > haven't been covered yet (though nothing would prevent an advanced > student > > from looking ahead and trying them). > > > > It would be interesting to create an online J class, much like the Khan > > Academy on youtube. In fact, if you really wanted to introduce J to the > > masses, create a math tutorial that follows and supports Khan's math > > tutorials, using J as the tool. This would be similar to Iverson's > > "Concrete Math Companion" which follows 'Concrete Mathematics' (Graham, > > Knuth, and Patashnik (GKP)). > > > > Just a thought.. > > > > Skip > > > > > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm