bharvey wrote:
Just finished a week intro to BJC/BYOB/Snap! in boiling-hot Newark (although for some reason our lab room was freezing; you can't win for losing) for New Jersey teachers. Now they take our online course in four weeks (I hope) and then we have a wrap-up face-to-face week.
Mon: Intro to BJC, intro to BYOB/Snap!
Tue: One simulated course week, with (video) lectures, labs, discussion.
Wed: Recursion.
Thu: Higher order functions and lambda.
Fri: Discussion of how this will work in their high school classrooms.
Amazingly, this all went pretty well.
Grrrr.... we're still learning how to launch Notepad to type HTML code...
Offline
Hardmath123 wrote:
Grrrr.... we're still learning how to launch Notepad to type HTML code...
Well, don't be angry until these teachers actually teach the course to their students. But meanwhile, get 15-20 teachers together in your area, get them to get permission from their principals to teach BJC, and then shoot an email to bjc@bspace.berkeley.edu and we'll come run a workshop for them too!
Not that you personally need BJC, of course. But it'd help your fellow students. (You personally should teach yourself SICP, and after that, concentrate on teaching yourself math, esp. discrete math.)
Last edited by bharvey (2012-06-30 07:12:22)
Offline
bharvey wrote:
Hardmath123 wrote:
Grrrr.... we're still learning how to launch Notepad to type HTML code...
Not that you personally need BJC, of course.
Glad to know I'm ahead of someone.
But it'd help your fellow students.
Who still can't find their HTML documents once they save them?
You personally should teach yourself SICP
Structure and interpretation of Computer Programs, the book? I've been working through that recently, it's mind-bending.
and after that, concentrate on teaching yourself math, esp. discrete math.
We (my dad and I) have been doing lots of math for many years. I love it! Of course, we always found number theory daunting.
Offline
Know any more computer science books online? I've read Structure and interpretation of computer programs, I've read simply scheme, and I've read all three computer science logo style books and now I'm BORED!!!!!
Offline
OOP Message Passing will not work using ((the script[ ) of [sprite v ]) because that is not an exclusive BYOB feature; it is just Squeak. It works because the ([x position v ] of [sprite v]) block uses the OOP Message Passing feature of Squeak; using t1 action instead of self action. However; morphic.js is just a Smalltalk simulation and it uses JavaScript for methods instead of Squeak, MIT Squeak or Smalltalk. They have made a new block; (http://[ ]) witch reads a website. That can also be done easily in Squeak. Jens will probbally make a new block for OOP Message Passing. The blocks;
(the () block) and (the script [) have been replaced with THREE new blocks: rings. They are grey reporters. The first holds a script; but not with a C-Shape; infact, all inline command, predicate and reporter blocks have been replaced with rings. The second holds a reporter; third a predicate. The difference between a boolean and predicate is: a predicate is a boolean block (rule); (e.g: [scratchblocks] <touching [Sprite1 v ]> [scratchblocks]) a boolean is true or false.
Offline
Hardmath123 wrote:
Glad to know I'm ahead of someone.
But it'd help your fellow students.
Who still can't find their HTML documents once they save them?
Okay, you need to make up your mind what kind of mood you're in!
Anyway, I didn't just mean the students at your particular school, but high school students everywhere.
We (my dad and I) have been doing lots of math for many years. I love it! Of course, we always found number theory daunting.
I'm not sure I understand the "of course." But perhaps you should study group theory, and then a lot of number theory turns out to be just special cases of that. But, I wasn't just thinking number theory. Probability, logic, set theory (my own favorite).
Offline
joefarebrother wrote:
Know any more computer science books online?
Check out
http://www.reddit.com/r/csbooks/
If you want recommendations, there's
http://www.htdp.org/
which is less advanced than SICP, I think, but with a sufficiently different point of view that you might find some things worthwhile in it. You could read a logic programming book, such as
http://spivey.oriel.ox.ac.uk/wiki/files/lp/logic.pdf
Others...
http://www.paulgraham.com/onlisp.html
ftp://ftp.cs.utexas.edu/pub/garbage/cs3 … o_toc.html
But, what you really really want to read isn't free; it costs $75:
http://mitpress.mit.edu/catalog/item/de … ;tid=10142
Offline
Jonathan50 wrote:
OOP Message Passing will not work using ((the script[ ) of [sprite v ]) because that is not an exclusive BYOB feature; it is just Squeak.
Nah, Jens just can't do everything at once, and we're still not quite caught up with BYOB 3.0, which comes before the 3.1 stuff.
P.S. And btw BYOB 3.1 OOP wasn't just a question of unleashing Squeak; it was a huge effort!
Last edited by bharvey (2012-07-01 00:17:01)
Offline
I like the long trailer.
BAD:
Make a variable make a list make a binary search tree make a hash table make a baz make a window make a scrollbar...
GOOD:
Give a man a fish and tomorrow he'll want another kind of fish. Teach a man how to read and make fish DNA, and he'll be in his room forever; inventing fish that glow! Make a block!
Offline
bharvey wrote:
Hardmath123 wrote:
Glad to know I'm ahead of someone.
But it'd help your fellow students.
Who still can't find their HTML documents once they save them?
Okay, you need to make up your mind what kind of mood you're in!
Semi-frustrated with a hint of whimsical. Or really, really sleepy, depending on which way you look at it.
Offline
bharvey wrote:
joefarebrother wrote:
Know any more computer science books online?
If you want recommendations, there's
...
But, what you really really want to read isn't free; it costs $75:
http://mitpress.mit.edu/catalog/item/de … ;tid=10142
Thanks for the suggestions. If cost is a barrier, MIT Press provides this link to preview the book:
http://cisnet.mit.edu/4i7o9/5cjhf/toc
And some libraries (USA, Canada, Ireland, ...?) are willing to loan you their copies through inter-library loans:
Maine InfoNet is sending a copy from the University of Maine,
http://mainecat.maine.edu/search~S0?/ah … p;1%2C%2C2 to my local library for checkout for three weeks.
http://www.worldcat.org/oclc/53038538
Enter a postal code or location to find whether a library near you has a copy.
Offline
MathWizz wrote:
shadow_7283 wrote:
I'm ashamed to be asking this question, but how do you import xml files?
I just figured that out. Save it to the desktop, then drag the file onto Snap!. <- the punctuation is disturbing xD
EDIT: And don't forget to delete it from the desktop. You don't want it to clutter the place up, do you?
I also have to mention, before I figured out how to open the projects, I was injecting JavaScript though the console to make an XMLHttpRequest and pass it to Snap. xD
Offline
djdolphin wrote:
How do you open the xml project files? Also, is there a way to open BYOB 3.1.1 files?
Just drag it onto the Snap! window. (This works in most browsers, but not, for me at least, in Safari.)
No BYOB project conversion, so far, alas; I've been recreating them by hand. We know that's something people will want, but it'll be a while.
Offline
Squawkers13 wrote:
where's the BYOB skin and how can i get it?
any help?
Offline
Squawkers13 wrote:
Squawkers13 wrote:
where's the BYOB skin and how can i get it?
any help?
Type in this code in ScratchFrameMorph class. Then run ScratchFrameMorph exportSkin
exportSkin | t2 t4 | t4 _ 0. t2 _ ScratchFileChooserDialog chooseFolder: FileDirectory default pathName. 'Exporting Skin...' displayProgressAt: Display center from: 0 to: ScratchSkin size during: [:t3 | ScratchSkin keys do: [:t1 | t4 _ t4 + 1. t3 value: t4. PNGReadWriter putForm: (ScratchSkin at: t1) onFileNamed: t2 pathName , FileDirectory slash , t1 asString , '.png']]
Offline
dreamod wrote:
Squawkers13 wrote:
Squawkers13 wrote:
where's the BYOB skin and how can i get it?
any help?
Type in this code in ScratchFrameMorph class. Then run ScratchFrameMorph exportSkin
Code:
exportSkin | t2 t4 | t4 _ 0. t2 _ ScratchFileChooserDialog chooseFolder: FileDirectory default pathName. 'Exporting Skin...' displayProgressAt: Display center from: 0 to: ScratchSkin size during: [:t3 | ScratchSkin keys do: [:t1 | t4 _ t4 + 1. t3 value: t4. PNGReadWriter putForm: (ScratchSkin at: t1) onFileNamed: t2 pathName , FileDirectory slash , t1 asString , '.png']]
exportSkin, t2, and t4 aren't recognized.
Offline
Squawkers13 wrote:
dreamod wrote:
Squawkers13 wrote:
any help?Type in this code in ScratchFrameMorph class. Then run ScratchFrameMorph exportSkin
Code:
exportSkin | t2 t4 | t4 _ 0. t2 _ ScratchFileChooserDialog chooseFolder: FileDirectory default pathName. 'Exporting Skin...' displayProgressAt: Display center from: 0 to: ScratchSkin size during: [:t3 | ScratchSkin keys do: [:t1 | t4 _ t4 + 1. t3 value: t4. PNGReadWriter putForm: (ScratchSkin at: t1) onFileNamed: t2 pathName , FileDirectory slash , t1 asString , '.png']]exportSkin, t2, and t4 aren't recognized.
type
ScratchFrameMorph exportSkin
and do it.
Offline
dreamod wrote:
Squawkers13 wrote:
dreamod wrote:
Type in this code in ScratchFrameMorph class. Then run ScratchFrameMorph exportSkinCode:
exportSkin | t2 t4 | t4 _ 0. t2 _ ScratchFileChooserDialog chooseFolder: FileDirectory default pathName. 'Exporting Skin...' displayProgressAt: Display center from: 0 to: ScratchSkin size during: [:t3 | ScratchSkin keys do: [:t1 | t4 _ t4 + 1. t3 value: t4. PNGReadWriter putForm: (ScratchSkin at: t1) onFileNamed: t2 pathName , FileDirectory slash , t1 asString , '.png']]exportSkin, t2, and t4 aren't recognized.
type
Code:
ScratchFrameMorph exportSkinand do it.
YES! It worked!
Offline
a dozen demos
I've put together a few demo projects. Half a dozen I've transcribed from my Scratch-favs list, the other half dozen are transcribed form BYOB, the better ones by Brian. Thanks to the original creators! Click on the links, wait for the projects to load, then press the green flag (start) button...
original Scratch projects running in SNAP!
star wars - coolest soundtrack ever
funny face - almost no scripts
splotch paint - bloody!
kanon - schizophrenic singing
flashlight - reading in the dark
constraint - conflicting attractions
original BYOB projects running in SNAP!
vee - classic by E.Paul Goldenberg
jurassic park - two complementing fractals
math trainer - lots of BYOB internals
tree - draw a fractal, by Brian
animal game - AI by Brian
count change - money! by Brian
Enjoy!
Offline
Totally awesome. What does Vee do? It looks pretty cool.
Offline
Thanks, Hardmath123.
"Vee" is our flagship project, the one which started our collaboration towards BYOB and BYOB3. On the final day of the first Scratch conference in 2008 Brian organized an impromptu session rallying for user-definable procedures in Scratch. At that time Scratch lists were a brand new feature, and Brian showed how even with Scratch's new and shiny lists you weren't able to do something seemingly simple as "Vee".
I didn't know Brian before, and was totally on his side, thinking that "Build Your Own Blocks" (as John Maloney and I used to call it internally) would be the logical next feature to add to Scratch. So I sat down and mocked it up, except that at some point it wasn't a mockup anymore but the real thing. But I still couldn't do "Vee" in the first two versions of BYOB, because BYOB had neither first-class lists (which aren't actually needed for "Vee") nor first-class blocks (which is what Vee is really about). Luckily a year later, in 2009, Brian got in touch, taught me all about it, and we teamed up to create BYOB3.
So what does "Vee" do? Just open up the "vee" block in the block editor and look at it. I'm sure you'll immediately get what it does. Especially once you notice that the "shapes" variable contains a list of blocks, two of which are in turn instances of "vee"...
Last edited by Jens (2012-07-03 10:20:46)
Offline
Hardmath123 wrote:
Totally awesome. What does Vee do? It looks pretty cool.
Jens left out one crucial piece of the Vee story, which is that it's meant for a teacher to show students as the first lesson on recursion. So, although first-class blocks are crucial to making it work, the point of the project is recursion. In particular, a probabilistic recursion eliminates the need to talk about base cases in this first example.
Paul Goldenberg devised this lesson 20-odd years ago in Logo. My point at that meeting was that Scratch should be able to do everything Logo can do!
Alas, although I convinced Jens, we didn't convince the Scratch Team, hence two separate developments now.
Offline
bharvey wrote:
Hardmath123 wrote:
Totally awesome. What does Vee do? It looks pretty cool.
Jens left out one crucial piece of the Vee story, which is that it's meant for a teacher to show students as the first lesson on recursion. So, although first-class blocks are crucial to making it work, the point of the project is recursion. In particular, a probabilistic recursion eliminates the need to talk about base cases in this first example.
Paul Goldenberg devised this lesson 20-odd years ago in Logo. My point at that meeting was that Scratch should be able to do everything Logo can do!
Alas, although I convinced Jens, we didn't convince the Scratch Team, hence two separate developments now.
Thanks for sharing these insights into pedagogy and the history of language development. Recursion is both important and challenging to learn so these examples are helpful.
Offline