Web Images Videos Maps News Shopping Gmail more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Ruby for Highschoolers?
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 1 - 25 of 69 - Collapse all  -  Translate all to Translated (View all originals)   Newer >
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Nicholas Evans  
View profile  
 More options Jun 11 2006, 12:55 pm
From: Nicholas Evans <OwlMan...@OwlManAtt.com>
Date: Mon, 12 Jun 2006 01:55:39 +0900
Local: Sun, Jun 11 2006 12:55 pm
Subject: Ruby for Highschoolers?
Howdy list,

I'm a highschool student with a very high chance of ending up
student-teaching the Programming I course during the 07-08 schoolyear.

This year was the first year for the course, and Scheme was used.
However, I've been talking to the teacher about Ruby, suggesting that
she should try it for one of the programming courses next year.
(Unfortunately, there's no ready-made curriculum for Ruby available to
her, and she is not really a techie, so that idea was shot down.)

If I end up teaching it, I think it would be cool to cover Ruby instead
of Scheme. I'd have to develop my own curriculum, but whatever.

The goal of the course is to teach programming concepts in half of a
school year. The things that were covered during this year's course were
writing functions to do a simple calculation, using variables, and using
cond/booleans. Many students struggled during the beginning of the year
with writing basic functions. Our teacher kind of blamed herself for
that, because this was her first year teaching programming, and she had
never been trained on Scheme.

I think that teaching students Ruby might be a bit less...arcane. It
looks friendlier, for one. It would also open the course up to more
concepts than Scheme offers, like automagic testing, manipulating files,
object orientation, etc. Teaching OO during this course would probably
also benefit the kids later on for Java during Programming II...

So, given all of that, I have two questions for ya, list. One, do you
think there's any merit from teaching pretty non-technical sophomores in
highschool Ruby over Scheme? And two - Is there a DrScheme-eqsue
environment available for Ruby (screencap:
http://www.plt-scheme.org/software/drscheme/tour/images/editor-repl.g...

The DrScheme-esque thing is a big deal. The computer labs are *all*
Windows labs, and nothing will change this. The program serves as a sort
of incredibly simple IDE. In the top pane, you can put in your code, and
the bottom pane displays results and lets you use an irb-for-scheme type
thinggy.

I appreciate any comments you can give me, list.

Regards,
Nick Evans


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christian Neukirchen  
View profile  
 More options Jun 11 2006, 1:25 pm
From: Christian Neukirchen <chneukirc...@gmail.com>
Date: Mon, 12 Jun 2006 02:25:55 +0900
Local: Sun, Jun 11 2006 1:25 pm
Subject: Re: Ruby for Highschoolers?

Nicholas Evans <OwlMan...@OwlManAtt.com> writes:
> If I end up teaching it, I think it would be cool to cover Ruby
> instead of Scheme. I'd have to develop my own curriculum, but
> whatever.

I know this sounds heretic and probably is not what you expect from
this list, *but why*?

> The goal of the course is to teach programming concepts in half of a
> school year. The things that were covered during this year's course
> were writing functions to do a simple calculation, using variables,
> and using cond/booleans. Many students struggled during the beginning
> of the year with writing basic functions. Our teacher kind of blamed
> herself for that, because this was her first year teaching
> programming, and she had never been trained on Scheme.

Do you think an untrained teacher better teaches Ruby instead of Scheme?

> I think that teaching students Ruby might be a bit less...arcane. It
> looks friendlier, for one.

That's a matter of taste; people that never saw code didn't yet
develop a taste for it.

> It would also open the course up to more concepts than Scheme
> offers, like automagic testing, manipulating files, object
> orientation, etc. Teaching OO during this course would probably also
> benefit the kids later on for Java during Programming II...

I'd say, due to the small core of Scheme, it's even easier to explain
these topics.  You have everything: write a few macros for
unit-testing, files can be done with ports (they are in the spec),
object orientation can be done with closures.  Once they did all this,
they know what they are talking about.

Of course, teaching this is not that easy.  Did you ever read SICP?
Have a look into it and rethink your choice.

(Despite all of this, I prefer Ruby for *coding*, of course.  But
Scheme is the better choice for teaching.  YMMV.)

> Regards,
> Nick Evans

--
Christian Neukirchen  <chneukirc...@gmail.com>  http://chneukirchen.org

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Steven Davidovitz  
View profile  
 More options Jun 11 2006, 1:31 pm
From: Steven Davidovitz <steviediz...@gmail.com>
Date: Mon, 12 Jun 2006 02:31:14 +0900
Local: Sun, Jun 11 2006 1:31 pm
Subject: Re: Ruby for Highschoolers?
On Mon, 12 Jun 2006 01:55:39 +0900

I think non-technical High Schoolers would definitely benefit from learning Ruby before moving on to other statically-typed languages. I am a junior next year and we only have one Computer Science course that teaches Java. I have a couple friends who took it this year and some of the code they have written this year could have benefited from prior knowledge of any basic programming. I taught myself Ruby using the Pickaxe book among others and I would have to say it is just absolutely fun to program in Ruby.

The IDE could be a problem, but if anything, it could probably be coded in Ruby using one of the toolkits in a couple days/weeks (using Fox, Tk, etc.).

-Steven Davidovitz


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Hal Fulton  
View profile  
 More options Jun 11 2006, 1:35 pm
From: Hal Fulton <hal9...@hypermetrics.com>
Date: Mon, 12 Jun 2006 02:35:53 +0900
Local: Sun, Jun 11 2006 1:35 pm
Subject: Re: Ruby for Highschoolers?

Nicholas Evans wrote:
> Howdy list,

> I'm a highschool student with a very high chance of ending up
> student-teaching the Programming I course during the 07-08 schoolyear.

Boy, do I envy you guys. When I was in high school, I learned
BASIC and Fortran.

This is not a bad idea IMO. Start with simple things, of course.
Introduce OO fairly early.

Are these people who have programmed before at all? Or not?

Look up whatever Ruby tutorials you can. I don't have links
handy, but there are some good ones out there.

Good luck...

Hal


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Nicholas Evans  
View profile  
 More options Jun 11 2006, 1:54 pm
From: Nicholas Evans <OwlMan...@OwlManAtt.com>
Date: Mon, 12 Jun 2006 02:54:01 +0900
Local: Sun, Jun 11 2006 1:54 pm
Subject: Re: Ruby for Highschoolers?

Christian Neukirchen wrote:
> Nicholas Evans <OwlMan...@OwlManAtt.com> writes:

>>If I end up teaching it, I think it would be cool to cover Ruby
>>instead of Scheme. I'd have to develop my own curriculum, but
>>whatever.

> I know this sounds heretic and probably is not what you expect from
> this list, *but why*?

I figured I'd be killing a few birds with one stone. I think Ruby is
simple enough to teach basic programming concepts with (although my
opinion on the matter probably isn't worth much, because I don't know
Scheme, really). It's also practical and a hellava lot closer to Java
than Scheme is. And we are kids are compelled to take the Java course
senior year if we take the Scheme one sophomore year.

I also like Ruby better than Scheme.

>>The goal of the course is to teach programming concepts in half of a
>>school year. The things that were covered during this year's course
>>were writing functions to do a simple calculation, using variables,
>>and using cond/booleans. Many students struggled during the beginning
>>of the year with writing basic functions. Our teacher kind of blamed
>>herself for that, because this was her first year teaching
>>programming, and she had never been trained on Scheme.

> Do you think an untrained teacher better teaches Ruby instead of Scheme?

I think I've underexplained the situation. If I end up as the teacher's
assistant and I can sell Ruby, I'm going to be the one teaching it to
the class AND the teacher.

>>I think that teaching students Ruby might be a bit less...arcane. It
>>looks friendlier, for one.

> That's a matter of taste; people that never saw code didn't yet
> develop a taste for it.

That said, I saw people getting incredibly confused by the idea of
matching the curly braces up. Ruby looks a lot more natural, so I think
it would be easier for people to relate something like this:

def do_something(n)
   if n < 10
     true
   else
     false
   end
end

As opposed to:

(define (do_something n)
  (cond
   [(< n 10) true]
   [else false]
  )
)

(Sorry for parse errors, if there are any.)

>>It would also open the course up to more concepts than Scheme
>>offers, like automagic testing, manipulating files, object
>>orientation, etc. Teaching OO during this course would probably also
>>benefit the kids later on for Java during Programming II...

> I'd say, due to the small core of Scheme, it's even easier to explain
> these topics.  You have everything: write a few macros for
> unit-testing, files can be done with ports (they are in the spec),
> object orientation can be done with closures.  Once they did all this,
> they know what they are talking about.

I was unaware that Scheme had OO. I don't really *know* Scheme, so I
guess I'm not being terribly fair.

> Of course, teaching this is not that easy.  Did you ever read SICP?
> Have a look into it and rethink your choice.

I haven't even heard of that. I'll look into it. =)

> (Despite all of this, I prefer Ruby for *coding*, of course.  But
> Scheme is the better choice for teaching.  YMMV.)

Thank you for the feedback!

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Timothy Hunter  
View profile  
 More options Jun 11 2006, 1:55 pm
From: Timothy Hunter <TimHun...@nc.rr.com>
Date: Mon, 12 Jun 2006 02:55:36 +0900
Local: Sun, Jun 11 2006 1:55 pm
Subject: Re: Ruby for Highschoolers?

Steven Davidovitz wrote:
> I think non-technical High Schoolers would definitely benefit from learning Ruby before moving on to other statically-typed languages. I am a junior next year and we only have one Computer Science course that teaches Java. I have a couple friends who took it this year and some of the code they have written this year could have benefited from prior knowledge of any basic programming. I taught myself Ruby using the Pickaxe book among others and I would have to say it is just absolutely fun to program in Ruby.

> The IDE could be a problem, but if anything, it could probably be coded in Ruby using one of the toolkits in a couple days/weeks (using Fox, Tk, etc.).

I know this will be controversial, but...IDE? Why do you need an IDE?
They're learning programming, not clicking on things. They can write
their Ruby programs using whatever text editor is convenient, vim,
emacs, Scite, whatever.

"IDE? We don't need no stinkin' IDE!"


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Nicholas Evans  
View profile  
 More options Jun 11 2006, 1:58 pm
From: Nicholas Evans <OwlMan...@OwlManAtt.com>
Date: Mon, 12 Jun 2006 02:58:48 +0900
Local: Sun, Jun 11 2006 1:58 pm
Subject: Re: Ruby for Highschoolers?
Hal Fulton wrote:
> Nicholas Evans wrote:

>> Howdy list,

>> I'm a highschool student with a very high chance of ending up
>> student-teaching the Programming I course during the 07-08 schoolyear.

> Boy, do I envy you guys. When I was in high school, I learned
> BASIC and Fortran.

> This is not a bad idea IMO. Start with simple things, of course.
> Introduce OO fairly early.

I'd find it difficult to not talk about it from the very start.

> Are these people who have programmed before at all? Or not?

For the most part, no. The assumption that the course makes is that the
students are complete beginners.

> Look up whatever Ruby tutorials you can. I don't have links
> handy, but there are some good ones out there.

Aye. Another benefit is having the first edition of the pickaxe
available online. We used How To Design Programs a lot during the class.

> Good luck...

Thank you!

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Nicholas Evans  
View profile  
 More options Jun 11 2006, 2:03 pm
From: Nicholas Evans <OwlMan...@OwlManAtt.com>
Date: Mon, 12 Jun 2006 03:03:13 +0900
Local: Sun, Jun 11 2006 2:03 pm
Subject: Re: Ruby for Highschoolers?
I'm not after a full-blown IDE. They'd be working under Windows, and I'm
(perhaps wrongly) reluctant to open up the command prompt. I want to
focus on programming, and not have to bother with Windows shell commands
too.

DrScheme worked out really well. I guess what I'm after is a nice
frontend to irb, and if I have to, I'll write it myself (and release it
to the world, of course!).


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kenneth Johnsen  
View profile  
 More options Jun 11 2006, 2:37 pm
From: "Kenneth Johnsen" <sande...@gmail.com>
Date: Mon, 12 Jun 2006 03:37:29 +0900
Local: Sun, Jun 11 2006 2:37 pm
Subject: Re: Ruby for Highschoolers?

Hi Nick,

I recently landed a job teaching math and IT at a school here. I have just
finished my first 6 months, where we have mostly been focusing on HTML and
relational databases.

However, there's still programming and OO left in the curriculum (as well as
ERP and other things).

I initially had the idea that I would teach PHP, because it ties in nicely
with what my students know about html and the web, and I could do the OO
part with PHP, too.

But I think that Ruby would be better as a teaching language.

I'd be very interested in seeing what you come up with, if you decide to
teach Ruby. Maybe we can bounce some ideas off of eachother.

Regards,

Kenneth.

2006/6/11, Nicholas Evans <OwlMan...@owlmanatt.com>:

--
Med venlig hilsen / Best regards

Kenneth Johnsen


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Philip Hallstrom  
View profile  
 More options Jun 11 2006, 2:49 pm
From: Philip Hallstrom <r...@philip.pjkh.com>
Date: Mon, 12 Jun 2006 03:49:19 +0900
Local: Sun, Jun 11 2006 2:49 pm
Subject: Re: Ruby for Highschoolers?

I wouldn't be too worried about the ()'s, I'd be more worried that Ruby
has a lot of various syntax...

method arg1, arg2, arg3
method(arg1, arg2, arg3)

var = if true then '1' else '0'
        # or the case equivalent...

etc...

I personally love it, but when you are a complete beginner this sort of
thing just makes your head hurt and I haven't even hit the ones that make
my head hurt...

Might be just be, but when I've tried to teach people languages they all
seem to want a very rigid syntax.... for example, they liked for(;;) but
didn't want to deal with do/while because they had their "one true looping
construct".

Not saying scheme is any better in this regard though, but something to
think about...

anyway, more to chew on.


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
James Britt  
View profile  
 More options Jun 11 2006, 2:59 pm
From: James Britt <james.br...@gmail.com>
Date: Mon, 12 Jun 2006 03:59:20 +0900
Local: Sun, Jun 11 2006 2:59 pm
Subject: Re: Ruby for Highschoolers?

Nicholas Evans wrote:
> I'm not after a full-blown IDE. They'd be working under Windows, and I'm
> (perhaps wrongly) reluctant to open up the command prompt. I want to
> focus on programming, and not have to bother with Windows shell commands
> too.

A big part of programming is understanding the world you live in.

There is nothing spooky about the command line, even in Windows.

Don't treat people like children, or they'll start acting like children.

Assume the best, and let them show you otherwise.

--
James Britt

"The greatest obstacle to discovery is not ignorance, but the illusion
of knowledge."
  - D. Boorstin


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Hal Fulton  
View profile  
 More options Jun 11 2006, 3:14 pm
From: Hal Fulton <hal9...@hypermetrics.com>
Date: Mon, 12 Jun 2006 04:14:41 +0900
Local: Sun, Jun 11 2006 3:14 pm
Subject: Re: Ruby for Highschoolers?

James Britt wrote:
> Nicholas Evans wrote:

>> I'm not after a full-blown IDE. They'd be working under Windows, and
>> I'm (perhaps wrongly) reluctant to open up the command prompt. I want
>> to focus on programming, and not have to bother with Windows shell
>> commands too.

> A big part of programming is understanding the world you live in.

> There is nothing spooky about the command line, even in Windows.

Agreed. Even in win32, I spend a lot of time at the command line. It's
certainly better than it used to be years ago, now that it understands
the up/down arrows and filename completion.

A command line is simple and intuitive in a different way from how a
GUI is simple and intuitive. It still has its place, and will for years
to come. Although I won't be sad if we come up with something better.

> Don't treat people like children, or they'll start acting like children.

> Assume the best, and let them show you otherwise.

True enough. They *are* high school students, though. Cut them
a little slack.

Still, if you've never used the command line, you can learn
most of what you need in half an afternoon.

Hal


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Logan Capaldo  
View profile  
 More options Jun 11 2006, 3:26 pm
From: Logan Capaldo <logancapa...@gmail.com>
Date: Mon, 12 Jun 2006 04:26:22 +0900
Local: Sun, Jun 11 2006 3:26 pm
Subject: Re: Ruby for Highschoolers?

On Jun 11, 2006, at 12:55 PM, Nicholas Evans wrote:

Maybe you could base the curiculum/text on Chris Pine's Learn to  
Program. (Either that or Cartoon Foxes).

> So, given all of that, I have two questions for ya, list. One, do  
> you think there's any merit from teaching pretty non-technical  
> sophomores in highschool Ruby over Scheme? And two - Is there a  
> DrScheme-eqsue environment available for Ruby (screencap: http://
> www.plt-scheme.org/software/drscheme/tour/images/editor-repl.gif)?

Hmm, Ruby or Scheme for non-technical students? That's tough,  
Scheme's sysntax makes your eyes bleed, but it has very very simple  
semantics(short of callcc). OTOH the subset of Ruby I'd imagine you'd  
be using for this class would have pretty simple semantics to.

> The DrScheme-esque thing is a big deal. The computer labs are *all*  
> Windows labs, and nothing will change this. The program serves as a  
> sort of incredibly simple IDE. In the top pane, you can put in your  
> code, and the bottom pane displays results and lets you use an irb-
> for-scheme type thinggy.

I don't know of any DrScheme-ish environment for ruby. You could try  
using FreeRIDE or Scite (both come with the one-click installer). Or  
possibly FXIrb [1]

> I appreciate any comments you can give me, list.

> Regards,
> Nick Evans

Good luck

[1] http://rubyforge.org/projects/fxirb/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Matthew Smillie  
View profile  
 More options Jun 11 2006, 3:48 pm
From: Matthew Smillie <M.B.Smil...@sms.ed.ac.uk>
Date: Mon, 12 Jun 2006 04:48:39 +0900
Local: Sun, Jun 11 2006 3:48 pm
Subject: Re: Ruby for Highschoolers?
On Jun 11, 2006, at 17:55, Nicholas Evans wrote:

> Howdy list,

Howdy Nicholas.

> I think that teaching students Ruby might be a bit less...arcane.  
> It looks friendlier, for one. It would also open the course up to  
> more concepts than Scheme offers, like automagic testing,  
> manipulating files, object orientation, etc. Teaching OO during  
> this course would probably also benefit the kids later on for Java  
> during Programming II...

When it comes to teaching programming, I'm not certain Ruby is a good  
fit.  There are definitely some points in its favour, which have been  
pretty much covered it seems to me, so I'll point out a couple of  
reasons I think it's not an appropriate fit.  For a bit of context,  
I'm a PhD student at the moment, and have been a tutor/TA on  
introductory programming courses for a couple of years now (they were  
in Java).

The reason for this is that there are many, many different ways to  
accomplish things in Ruby, and this can actually be detrimental to  
the students' fully understanding the basic concepts involved.  They  
tend to get hung up in trying to sort out the minor differences  
between, say,  all the different ways of doing a conditional.  When  
this happens, I've noticed students tend to drift towards "string  
substitution" - basically just fiddling with the order of what  
they've written, hoping to hit the right combination by chance; they  
get the assignment done, but they've learned essentially nothing.

Basically, there are many ways to accomplish a given task, which  
makes it comparatively easy to write a program that - while it  
produces the desired output - completely misses the point of the  
learning exercise.

Another difficulty is that while the syntax might *look* straight-
forward, but in part that's because a lot of Ruby relies on  
programmers having an understanding of how programming works in  
general, and a lot of the generic terms can be elided or condensed.  
When you're learning programming, you need to know about those  
implicit bits, and having to write them out explicitly helps with that.

To give a concrete example, think of the 'return' statement - it's  
*required* in Java for the method to return anything, and is optional  
(but generally not used) in Ruby.  For someone learning Ruby, this  
means they have to remember that the last statement evaluated is the  
return value, which is just one more thing to put on their stack of  
not-quite-understood concepts (and they have LOTS of those concepts  
when they're learning).

matthew smillie.


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
James Britt  
View profile  
 More options Jun 11 2006, 5:24 pm
From: James Britt <james.br...@gmail.com>
Date: Mon, 12 Jun 2006 06:24:31 +0900
Local: Sun, Jun 11 2006 5:24 pm
Subject: Re: Ruby for Highschoolers?

Matthew Smillie wrote:

> Basically, there are many ways to accomplish a given task, which  makes
> it comparatively easy to write a program that - while it  produces the
> desired output - completely misses the point of the  learning exercise.

If accomplishing a given task is *not* the point of the  learning
exercise, then what is, and why might students be unclear on what is
expected of them?

I'm skeptical that Tim Toady is the culprit here.  If you, as the
teacher, don't want students diddling arounf with every syntax for a
conditional, then tell them the one form they are allowed to use for the
exercise and leave it at that.

> Another difficulty is that while the syntax might *look* straight-
> forward, but in part that's because a lot of Ruby relies on  programmers
> having an understanding of how programming works in  general, and a lot
> of the generic terms can be elided or condensed.   When you're learning
> programming, you need to know about those  implicit bits, and having to
> write them out explicitly helps with that.

> To give a concrete example, think of the 'return' statement - it's  
> *required* in Java for the method to return anything, and is optional  
> (but generally not used) in Ruby.  For someone learning Ruby, this  
> means they have to remember that the last statement evaluated is the  
> return value, which is just one more thing to put on their stack of  
> not-quite-understood concepts (and they have LOTS of those concepts  
> when they're learning).

Actually, this is fundamental to understanding Ruby; expressions return
values; methods are a series of expressions.

The "must remember to type a gratuitous 'return'" seems like the extra work.

Students will learn the Ruby you teach them.  Don't throw a lot of
syntax at them before explaining basic principles.    Otherwise the
syntax just seems arbitrary (or more arbitrary than it is), and the
principles will not make much sense after they've been blindly coding
with random expressions in search of code that simply runs without errors.

It may be useful to watch the SICP videos from MIT (and they may be the
best argument for teaching Scheme over Ruby :) )

http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/

--
James Britt

"Take eloquence and wring its neck."
  - Paul Verlaine


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Francis Cianfrocca  
View profile  
 More options Jun 11 2006, 6:19 pm
From: "Francis Cianfrocca" <garbageca...@gmail.com>
Date: Mon, 12 Jun 2006 07:19:36 +0900
Local: Sun, Jun 11 2006 6:19 pm
Subject: Re: Ruby for Highschoolers?

You're asking for views on teaching a particular programming language to
high-schoolers. This may sound like the dumbest imaginable question, but
have you decided exactly why your students need to be studying a programming
language?

Are you trying to impart some early training to young people who are
thinking about pursuing careers as professional programmers? Are you
thinking of it as an adjunct to a math or science courses? Are you thinking
about orienting future businesspeople who will spend a lifetime programming
Word and Excel macros (aarrgh, where's my razor... I can't face that
future)? Are you thinking about people destined for technical careers for
whom some mild familiarity with scripting can be useful? Or have you smply
taken a personal interest in imparting some of your own joy of programming?

If you know your goals and your audience's goals, then the choice of
language(s) may be self-evident.

On 6/11/06, Nicholas Evans <OwlMan...@owlmanatt.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
ReggW  
View profile  
 More options Jun 11 2006, 6:33 pm
Newsgroups: comp.lang.ruby
From: ReggW <m...@yourhome.com>
Date: Mon, 12 Jun 2006 07:33:41 +0900
Local: Sun, Jun 11 2006 6:33 pm
Subject: Re: Ruby for Highschoolers?

Steven Davidovitz wrote:
> I think non-technical High Schoolers would definitely benefit from
> learning Ruby before moving on to other statically-typed languages.

I disagree.
I think that learning a stricter/statically-typed languages first would
benefit people better.

It's far easier to go from strict(statically) to free(dynamic).

I come with 20 years of C/C++ experience.

It took me no time to understand that variables don't have types,
classes can be changed midway through the script, Arrays can hold
anything.

If you start with this knowledge and try to go to C++, you will commit
suicide.

--
Posted via http://www.ruby-forum.com/.


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
ReggW  
View profile  
 More options Jun 11 2006, 6:37 pm
Newsgroups: comp.lang.ruby
From: ReggW <m...@yourhome.com>
Date: Mon, 12 Jun 2006 07:37:10 +0900
Local: Sun, Jun 11 2006 6:37 pm
Subject: Re: Ruby for Highschoolers?

Timothy Hunter wrote:
> I know this will be controversial, but...IDE? Why do you need an IDE?
> They're learning programming, not clicking on things. They can write
> their Ruby programs using whatever text editor is convenient, vim,
> emacs, Scite, whatever.

For student just starting to learn a language, a good IDE would help
greatly.

--
Posted via http://www.ruby-forum.com/.


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jeff Dik  
View profile  
 More options Jun 11 2006, 6:38 pm
From: "Jeff Dik" <s45...@gmail.com>
Date: Mon, 12 Jun 2006 07:38:38 +0900
Local: Sun, Jun 11 2006 6:38 pm
Subject: Re: Ruby for Highschoolers?
Ruby and Scheme are both beautiful languages.

I think Ruby would be an excellent choice for a first programming
language.  You don't need to know a lot of concepts to get started
programming in it, but it's also a very rich language.  I'm tempted to
say that Ruby will grow with you, meaning not that Ruby will gather
more and more syntax with age, but that as you become a better
programmer, you'll discover other areas or ideas in that language that
you have yet to explore.

However, as you know Ruby but not Scheme, I'd recommend that you
advantage of the opportunity to learn Scheme.  You'll probably find
that it will make you a better programmer in Ruby, as well.

Jeff

On 6/11/06, Nicholas Evans <OwlMan...@owlmanatt.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
wenas agusetiawan  
View profile  
 More options Jun 11 2006, 6:53 pm
From: "wenas agusetiawan" <lucky...@gmail.com>
Date: Mon, 12 Jun 2006 07:53:30 +0900
Local: Sun, Jun 11 2006 6:53 pm
Subject: Re: Ruby for Highschoolers?

Hi,

I do not think that teaching ruby is a good idea because they will get used
to built-in function and built-in function without even be able to
understand how something is built ( design patterns and etc ), IMHO learning
what is programming better than what is programming language

On 6/11/06, Jeff Dik <s45...@gmail.com> wrote:


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Timothy Hunter  
View profile  
 More options Jun 11 2006, 7:33 pm
From: Timothy Hunter <TimHun...@nc.rr.com>
Date: Mon, 12 Jun 2006 08:33:14 +0900
Local: Sun, Jun 11 2006 7:33 pm
Subject: Re: Ruby for Highschoolers?

All right, I'm listening. How would an IDE help?

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
James Britt  
View profile  
 More options Jun 11 2006, 9:01 pm
From: James Britt <james.br...@gmail.com>
Date: Mon, 12 Jun 2006 10:01:04 +0900
Local: Sun, Jun 11 2006 9:01 pm
Subject: Re: Ruby for Highschoolers?

ReggW wrote:

> It took me no time to understand that variables don't have types,
> classes can be changed midway through the script, Arrays can hold
> anything.

> If you start with this knowledge and try to go to C++, you will commit
> suicide.

A compelling argument against using C++.

--
James Britt

"Take eloquence and wring its neck."
  - Paul Verlaine


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
James Britt  
View profile  
 More options Jun 11 2006, 9:02 pm
From: James Britt <james.br...@gmail.com>
Date: Mon, 12 Jun 2006 10:02:56 +0900
Local: Sun, Jun 11 2006 9:02 pm
Subject: Re: Ruby for Highschoolers?

wenas agusetiawan wrote:
> Hi,

> I do not think that teaching ruby is a good idea because they will get used
> to built-in function and built-in function without even be able to
> understand how something is built ( design patterns and etc ), IMHO
> learning
> what is programming better than what is programming language

Hear hear!

Machine code or bust.

--
James Britt

"Take eloquence and wring its neck."
  - Paul Verlaine


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Matthew Smillie  
View profile  
 More options Jun 11 2006, 9:40 pm
From: Matthew Smillie <M.B.Smil...@sms.ed.ac.uk>
Date: Mon, 12 Jun 2006 10:40:35 +0900
Local: Sun, Jun 11 2006 9:40 pm
Subject: Re: Ruby for Highschoolers?
On Jun 11, 2006, at 22:24, James Britt wrote:

> Matthew Smillie wrote:

>> Basically, there are many ways to accomplish a given task, which  
>> makes it comparatively easy to write a program that - while it  
>> produces the desired output - completely misses the point of the  
>> learning exercise.

> If accomplishing a given task is *not* the point of the  learning  
> exercise, then what is, and why might students be unclear on what  
> is expected of them?

For introductory assignments, the results of the assignment are  
invariably already known, because otherwise how will the students  
know they're on the right track?  So how could the results be the  
point of the exercise?  The instructor knows them, the students know  
them, everyone knows them.  What the students don't know is how to  
get from the input to the output, and it's *that* process that you're  
trying to teach, not as a recipe, but as a skill.

This is the same in most forms of introductory-level teaching; the  
precise nature of your opinions about feminist imagery in Margaret  
Atwood's work aren't the point of writing a paper for English 101.  
The point of writing that paper is to learn the process of writing  
any English paper: develop and describe a particular thesis.

As a trivial (and somewhat absurd) example, let's say the exercise is  
to write an array-sorting routine.  In teaching terms, this has the  
practical value of getting them familiar with arrays and fundamental  
operations (setting, accessing, comparing), and demonstrates  
theoretical points about efficiency (bubble sort, anyone?),  
algorithms, and depending on exactly what the algorithm is, recursion  
or notions of combining small local operations to effect a global  
result.  On the other hand, a student could write "arr.sort" and have  
accomplished the same task having learned nothing more than how the  
docs are organised.

There are two less-trivial examples that I've seen a few times that  
are worth mentioning in this context.

Some of the students in the course I taught had only ever programmed  
in Prolog before - and a couple of them were extremely proficient at  
it.  They tended (in Java) to end up finding ways to make everything  
effectively global.  They accomplished the task, more or less, but  
did they learn anything valuable about encapsulation or OO design?  
Not really.

Similarly, a few students have come in having done some shell  
scripting or website PHP or Perl hacking, and the fundamental mistake  
they made was to do everything statically (in Java, so as class  
methods).  So, they had classes, which were pretty decent, but missed  
out objects and had to do some really odd fiddling to manage state at  
the class level.  Again accomplishing the task, but missing out on  
some pretty fundamental aspects of object orientation.

So no, the point of a programming exercise is not simply for a  
student to produce the desired output, but rather to teach students  
something more fundamental about programming in a practical way.  
Philosophically, it's not just where you end up, it's how you get there.

> I'm skeptical that Tim Toady is the culprit here.  If you, as the  
> teacher, don't want students diddling arounf with every syntax for  
> a conditional, then tell them the one form they are allowed to use  
> for the exercise and leave it at that.

Well, isn't that equivalent to giving them a language in which the  
expression of conditionals is more restricted?  What's the effective  
difference of the instructor saying "always write your conditionals  
this way" and the language requiring it, from the student's perspective?

In any case, conditionals are just one example, and the larger  
problem boils down to the fact that the students must learn, and  
learn on their own (in the sense that they might work together, but  
noone can copy understanding of their lab partners).  Specifying the  
style or allowed syntax for an assignment specifically enough that  
noone gets side-tracked is a fruitless task: you end up just giving  
them pseudo-code and a set of formatting guidelines.

That's pretty obviously undesirable, for one thing, you want students  
to get side-tracked every so often.  What you don't want them to do  
is get so caught up in the subtleties of the *syntax* that they miss  
the larger point of the assignment - not seeing the forest for the  
trees.

Think of it as similar to why we advise people not to optimise  
prematurely, because premature optimisation amounts to almost the  
same thing: a programmer becoming too focused on the specific  
implementation of one small piece of code, ignoring the larger task.  
For experienced people, this might be "how can I cache my search  
results?", but for beginning programmers, this very often is "what's  
the smallest number of lines I can use to write this conditional" or  
"that ternary operator looks clever, how can I use it to do this?".

I will admit, though, that it is a tricky argument, because the best  
students are the ones who experiment on their own and are smart  
enough to read their textbook or look up online docs, and  
discouraging them from this does them an enormous disservice.  But  
equally, you want to make sure that you're not setting traps for  
them; it's just as much a disservice if they spend all their time  
working on a one-line #inject implementation of a method, and don't  
learn how inheritance works.

You're assuming that they're completely understood and internalised  
the concept of 'all expressions return values', which I will  
guarantee that not all of them have.  When you're learning  
programming, that is still something that you have to *think* about.

Again, a practical example: the 'expressions return values' thing is  
pretty simple at first glance, a = 3 + 2 seems pretty easy to  
understand.  For some reason, though, the majority seem to consider  
variable assignment as some sort of a special case.  Of course, it's  
what lets you do things like "a = b = c = 1" and "if (a = a + 5)".  
The latter example never fails to draw slightly confused looks from  
people the first time they see it.

So, it *is* extra work, but it's valuable extra work because it helps  
students internalise that particular concept.  It makes it absolutely  
explicit to the student that methods return values.  If they're  
reading code, it gives them an anchor for their analysis and  
understanding.

Again, though, 'return' is just an example of a more general idea:  
Ruby syntax is concise, which is great for when I'm using it.  But  
that same property can make it a headache (literally) for beginners -  
there's just more that they have to actively think about and remember  
in order to grasp what's going on.

> Students will learn the Ruby you teach them.  Don't throw a lot of  
> syntax at them before explaining basic principles.    Otherwise the  
> syntax just seems arbitrary (or more arbitrary than it is), and the  
> principles will not make much sense after they've been blindly  
> coding with random expressions in search of code that simply runs  
> without errors.

Striking the balance between introducing concepts and introducing  
syntax is difficult, since they have a somewhat circular relation:  
this syntax expresses this concept, which is implemented using this  
syntax.

So, while "don't throw a lot of syntax at them before explaining  
basic principles" is correct advice, it's not very useful advice,  
since all it does is rephrase the problem.  In fact, it's about the  
biggest problem in teaching programming, and it has no correct  
answer; some students will do better if you just give them a link to  
the language docs and turn them loose, some do better with formal  
definitions of the syntax, some need a simple, plain-english  
explanation, and some always need some hand-holding.

A more subtle point is that the instructor isn't teaching you Ruby, s/
he's teaching you how to program.  Ruby does have a lot going for it  
in this regard: first-order functions, object-orientation, and so  
on.  But my point is that Ruby's concise nature is an argument  
against using it to teach general principles, because the syntax  
takes many of those general principles as already understood, and  
tucks them out of the way.

matthew smillie


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
M. Edward (Ed) Borasky  
View profile  
 More options Jun 11 2006, 9:50 pm
From: "M. Edward (Ed) Borasky" <zn...@cesmail.net>
Date: Mon, 12 Jun 2006 10:50:51 +0900
Local: Sun, Jun 11 2006 9:50 pm
Subject: Re: Ruby for Highschoolers?

I believe the goals are stated in the original post. The first half of
the course, Programming I, is to teach programming concepts. The second
half, presumably by someone else, called Programming II, is in Java.

Now, unlike Hal Fulton, when *I* was in high school, high schools didn't
have computers. For that matter, major universities didn't have computer
science programs and minor universities, if they had a computer at all,
it was a punched card thingie used to do accounting. :) Of the 300 or so
people in my senior class, perhaps 10, among them of course myself,
ended up learning how to program. I think I'm the only one still doing
it, mostly because I love it too much to retire.

In any event, that was a long time ago. For teaching programming to
today's high school students, I think there are really four choices for
Programming I, given that Programming II is in Java.

1. Stay with Scheme. It's a "known quantity", it's a perfect vehicle for
learning about recursion, lists, selectors, constructors and predicates,
functional programming styles, etc. If they're going to be computer
scientists, this would be my choice.

2. Start with Java. Hey, why not? They'll be learning Java anyhow in
Programming II, and there are world-class free IDEs for it. Why make
them switch languages in mid-stream?

3. Hold on now ... I am serious. How about C? Darn near everything under
the hood in today's computers -- the Ruby interpreters, Java (and
Scheme) virtual machines, the Linux kernel, the GCC compilers -- is
written in C. It's close to the metal.

Actually those are the only choices I would have picked, since I don't
know Ruby very well yet. But hey, this is a Ruby list, so I'll say

4. Ruby. I don't think the IDEs are a problem, it is a good introduction
to programming and unlike Java and C, there's no "compiler" to wait for.
In fact, if Programming II was not in Java, Ruby would have been number
2 and there would have only been three items in the list. :)

--
M. Edward (Ed) Borasky

http://linuxcapacityplanning.com


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Messages 1 - 25 of 69   Newer >
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google