r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Rebol School] Rebol School

denismx
24-Apr-2006
[317x2]
Jean-François: one of the courses I teach is an introduction to programming 
to science students. Some of which will follow two more courses in 
programming, in the same language. Over the years, I've done this 
in Fortran, Pascal and now C++. At one time the first two courses 
were given in Python and the last (which I was giving), in C++. We 
decided that it was better to give all 3 in the same language. I 
didn't think Python was a good choice.

I'm now giving the first course (and maybe all 3). I'm exploring 
the possibility of opting at some time for Rebol, if I can break 
down the language into subsets that are "easily" learned and that 
offer useful tools for some large category of problems. I did'nt 
find any tutorial that seems to be quite there yet. 

Of course, the language is not the only thing taught. Basic programming 
and computer science concepts are also taught. But these can be taught 
independently from the choice of the language, for a large part. 

Rebol is my preoccupation. Some languages need a very lot of reading/learning 
before you can start to use it for solving problems with them. Maybe 
this is the case for Rebol. But I'm not sure yet. My hypothesis is 
that nearly everyone has learned Rebol by reading the Core manual 
and looking at examples in tutorials. It's ok to do it this way if 
one chooses so. But the teacher is expected to devise smoother paths 
for the learning process.
If I can engineer such a learning path, even if we never switch to 
Rebol for our classes, I'm sure that it would help enlarge the Rebol 
community. So I'm getting more interested in this project as I'm 
going along. It is not an obvious endeavor.
Anton
24-Apr-2006
[319]
I agree, starting with polygons and graphics is great for instant 
visual feedback at the beginning.
Gabriele
24-Apr-2006
[320]
i'd say the most important rebol native is INSERT. (even print is 
insert system/ports/output under the hood)
denismx
24-Apr-2006
[321]
ah! "insert". I would not have thought so. Will remember that while 
picking native words...
Jean-François
26-Apr-2006
[322]
Denis : You should maybe contact Gerard Cote on the mailing list. 
I believe he has been using Rebol in teaching introductory programming 
for a while now. He might have interesting pointers.


Also I would be curious to know if you have ever considered using 
Scheme for your courses. There are great ressources such as PLT Scheme 
and their book "How to design Programs" or "Simply Scheme" by Harvey 
and Wright. I think the content could be adapted to a curiculum based 
on Rebol
Graham
26-Apr-2006
[323]
A few ideas were collected here as well 3 years ago http://www.compkarori.com/vanilla/display/Rebol+School
denismx
5-May-2006
[324x9]
tks for the link Graham. And there is a mention of Gerard Cote in 
there too, Jean-François.
Actually, I'm not trying to figure out how to introduce programming 
concepts, or computer science in general. I already have a lot of 
stuff on that since I have been teaching this for 20 years now. And 
I'm not looking tor a "better" language to teach, even though I have 
given a look to Scheme.
What I want to develop is a "better" approach to learning Rebol, 
for non-programmers mostly. I'm really focusing on Rebol, and not 
what should be learned before, nor what could be a better option.
The "Rebol Essentials" is a good start. But I think I can break the 
approach down to still simpler steps. The difficulty I face is not 
having the broad, overall picture for Rebol. I am very conscious 
this limits my ability to make the best choices for the moment.
Here is what I figure would be a good starting point, at the present 
level of my knowledge:
First concepts: values, words (at a basic level), blocks (later on 
: functions)
First natives: print, arithmetic operations, the simplest control 
structures (conditional, for loop, while loop)
Then reading data somewhere and some simple parsing techniques: find 
a string, extract from one point to a second and saving the data.
I have the feeling that would be a very good starting point. I'm 
a little hazy on what is offered for parsing in Rebol at the moment. 
I'll look into that next. I think that once you have read a file 
into memory, it is in block form and you can use natives like "first", 
"next", "find" and so on on it. If so, then I would be going that 
way for sure.
Anton
5-May-2006
[333x3]
read file --> string
load file --> block
Strings and blocks are both series, so first, next find etc work 
on both, but when you load you get a block and the units are values. 
When you read, you have a string and the units are characters.
When you load, the file has to be LOADable by rebol, which means 
everything in it must be parseable into rebol values.

When you read, the file can be absolutely anything. I usually have 
to read web pages and parse a string, for instance.
Volker
5-May-2006
[336]
How about that old way of starting with a text-adventure? Write a 
framework and let the learner add some special item?
Maxim
5-May-2006
[337x6]
actually denis, for introducing looping I'd use foreach before while. 
 while is rather hard to grasp in the begining, cause its easy to 
bugger up the end conditions and end up in infinites loops.
for example, in parsing a sentence, foreach could make you very easily 
traverse the whole string like so:
foreach letter sentence [print letter]
also remember that find, does not copy the series, it returns the 
serie at a different index.
to extract substrings without use of 'PARSE you can do:
substring: copy/part find sentence "debut" find sentence "fin"
in the above, the string "fin" is not included, since find returns 
the start of the match by default... to include it, just add the 
/tail refinement.

substring: copy/part find sentence "debut" find/tail sentence "fin"
this can allow you to explain optional arguments later on in funcs. 
  also as an easy exercise, you can ask them to return the substring 
without "debut" or "fin"... (simply switch the /tail to the first 
find)
denismx
17-May-2006
[343x4]
Anton, Maxim: noted. Hum... will have to test what happens if I use 
"début" with the accent. In VC++ console mode, the output doesn't 
use the same character table as the editor. Didn't think of checking 
this yet, but the classe will be held in French so I should check, 
although this is not vital.
Volker: good idea. "old way"? I've never seen this approach used 
before (and I'm not young). But I think it would be very motivating 
project for these students. I'll use this suggestion.
I've talked to one of my colleagues about Rebol and he's checked 
into it. He's interested also. So it is becoming more probable we 
will switch to Rebol to introduce basic programming concepts as well 
as to empower them with a programming tool to build very small applications 
to complement the scientific software at their disposal.
My colleagues suggest that we use the View GUI. He feels that it 
is simple enough to code a graphic interface with this. I admit I 
have not looked into View much. My preconception is that adding the 
graphical layer complicates things too much (like Windows/C++). Maybe 
I'm wrong as Rebol is concerned?
Pekr
17-May-2006
[347x3]
you are wrong :-)
well, just kidding ... it depends .... easy things are easily don 
... if you will insist on OS behavior compatibility, there might 
be some work included - but for scientific kind of stuff, it is pretty 
good imo. I do remember how relatively easily I got my results with 
Matlab ..
you may look into RebGUI project - consumes less memory (mostly non-issue 
on PC), provides more styles, resizing, more proper behavior to styles, 
try to go thru demo AND look into tour.r source - you will see how 
nicely readable the gui part is - you don't need to go into internals 
too much ...
denismx
17-May-2006
[350]
RebGUI, something new to me. In fact, we probabably just need an 
interface to enter data and start some process and show the results. 
Maybe draw a graph with the results - that would be great. Will look 
into it. Tks.
PeterWood
17-May-2006
[351]
You may want to take a look at Matt  Licholai's quick plot dialect 
for your students to use to plot results. The details are at http://www.rebol.org/cgi-bin/cgiwrap/rebol/ml-display-thread.r?m=rmlQBZK

Scroll down the thread to find the location of the source.


There is an updated version of his ez-plot example in the script 
library at http://www.rebol.org/cgi-bin/cgiwrap/rebol/view-script.r?script=ez-plot.r
JaimeVargas
17-May-2006
[352]
Maybe you can use Rebol and  try to implement a curriculum similar 
to HtDP.  

The Structure and Interpretation of the Computer Science Curriculum 
http://www.cs.brown.edu/~sk/Publications/Papers/Published/fffk-htdp-vs-sicp-journal/
Gregg
18-May-2006
[353]
My preconception is that adding the graphical layer complicates things 
too much 

 -- A valid concern in many environments, but VID is great, and simple, 
 for simple things.


view layout [button "Show help" [alert "Sorry, I can't help you"]]


No need to manage the event loop, no redraw handlers (until you need 
to get into them of course), just put an action block after a face 
style and it binds to it automatically.
Thør
26-May-2006
[354]
.
Thør
16-Jun-2006
[355]
.
Claude
7-Oct-2006
[356]
.
denismx
7-Nov-2006
[357]
Did that "online school" that was talked about ever get tested? How 
did it work out?
Gregg
8-Nov-2006
[358]
I never heard anymore about it.
[unknown: 9]
8-Nov-2006
[359x5]
Could not find a free tool that allowed al the features we wanted.
The best we found was TeamSpeak for Voice.
It needs Chat (writte), Talk (Spoken), Video, and several Whiteboards, 
and a way to view somoeone's computer screen.
We use TeamSpeak all the time.
Tell me what is out there, and I will get this started.
Izkata
8-Nov-2006
[364x2]
Google Desktop has a plugin that makes GTalk able to make a chatroom, 
and another that allows you to share part of your screen with someone 
on your buddy list.  I don't know how well they work, thouhg
though*, as I never found anyone else to test it with*
Allen
8-Nov-2006
[366]
Reichart, can you list the ones that you tried, but failed your criteria?