Yes this year we put a lot of effort into reducing any kind of change 
between the two halves of the course, even changes of approach independent 
of language

This worked well for students. the first 5 days or so was a slightly 
enhanced version of Bootstrapworld Algebra. 

However, we wanted more on logical operators and on symbolic values, so we 
expanded the exercise a that has a butterfly trying to stay out of danger 
in a garden to include well in the middle of the garden. So the butterfly 
has to stay within the garden and outside the well. Then the size of the 
garden and the size and position of the well become variables...  This was 
a good preparation for the second half in which students designed a game 
from the ground up using 2htdp/universe.

Our "killer app" was to introduce vector arithmetic the moment we had 
structs. We did the math and the programming together and built a set of 
vector arithmetic functions /vector addition subtraction, vector/scalar 
multiplication, dot product, magnitude)

Then.. we introduced an object struct that had an imgae and three vectors - 
location, velocity acceleration. Once the students have developed functions 
to move and draw thewse objects they have a very powerful and simple tool 
in their hands.

Updating an object is like this

location, velocity, acceleration -> location+velocity, 
velocity+acceleration, acceleration  (all vector arithmetic, of course)

We introduced structs for the first time on Sunday morning. By Monday 
evening they had objects moving in parabolic arcs on the screen under the 
effect of "gravity"

This created a "wow" effect and students were then able to produce quite 
impressive games by the end of the course on Saturday sfternoon.

The "wow" effect is really important...        It gave students confidence.

I am not sure how easy this would have been in another language 
environment. the 2htdp/universe framework and the design recipe certainly 
were very important.

By the end of the 2 weeks even the most stalwart previous programmers had 
been converted to the benefits of the design recipe. Ad most of the newbies 
had produced quite sophisticated games far from the standard form provided 
for them in the first 5 days.

Of the difficulties we faced with students, syntax errors were the most 
common, missing else clauses and errors associated with implicit begin end 
were the most intractable.

Our students face the additional difficulty that all error message are in a 
foreign language (English) that many of them do not know well, some know 
hardly at all 

The only language trick we did was to use a  macro for struct definition so 
that every struct automatically had an inspector and so structs printed out 
nicely and EXAMPLE (ie check-expect) worked for structs. Except we called 
it ÖRNEK (which is example in Turkish) 

CS


On Wednesday, August 21, 2019 at 9:20:14 PM UTC+3, cwebber wrote:
>
> Chris Stephenson writes: 
>
> > Parantheses and learners - experience with 14-18 year olds 
> > 
> > I have just finished giving a two week intensive course to 14-18 year 
> olds 
> > at the Mathematics Village near Ephesus in Turkey 
>
> Very interesting email all around! 
>
> > (a) A change of syntax between the two halves had proved confusing for 
> > students 
>
> You actually touched on something that has been at the back of my mind 
> for a while.  Else where in this discussion: 
>
> Matthew Flatt writes: 
>
> > At Sat, 20 Jul 2019 18:07:40 -0400, Christopher Lemmer Webber wrote: 
>
> >>  - Are people happy?  Is this meeting their needs?  Get community 
> input. 
> >>    At this point, if the community is happy enough, and if it appears 
> >>    that *newcomers* (including in the educational space) are happy 
> >>    enough, now we can focus on switching the core Racket system over 
> >>    to ~Honu-as-the-basis. 
> > 
> > I agree that the process would have to be something like that. 
> > 
> > I'm skeptical of starting with teaching languages in the sense of BSL, 
> > ISL, and ASL. That sets up some different problems --- ones that Pyret 
> > has directly addressed/explored. (Obviously, we should pay attention to 
> > Pyret.) 
>
> I've been thinking about this, and I think that it's hard enough *for 
> me* to jump between different syntaxes.  If there was a switch to ~Honu 
> as being the default, it really should be ~Honu everywhere... not ~Honu 
> in one place and Pyret like syntax in the other (or vice versa).  That 
> kind of context switch is really hard. 
>
> In my experience, the most empowering thing for students is "being able 
> to write programs that do cool things".  If we use different syntaxes, I 
> think this will feel like the worlds between a "beginner's language" and 
> the "main world of Racket" will feel like too much of a jump... I know 
> *I* get intimidated by a shift in syntax, and I'm sure that for 
> students, it's even harder. 
>
> Gerald Sussman explained Python's success, and the reason for the switch 
> from Scheme and SICP to a Python based curriculum, as being because 
> Python had for whatever reason libraries that allowed students to be 
> able to lego together examples very quickly.  I've made the case that 
> Racket is the Python of lisps... even if we aren't continuing to have a 
> lispy syntax by default, we should realize that this is a strength we 
> don't want to lose.  If there's a syntax gulf between the restricted 
> student languages and the "main" language, we'll diminish that value 
> we're providing to newcomers. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/1ae449ba-1ed9-49a5-9730-91f6f8673ec7%40googlegroups.com.

Reply via email to