[plt-scheme] Teaching Scheme

From: Samuel Williams (space.ship.traveller at gmail.com)
Date: Mon May 3 10:22:07 EDT 2010

Dear Neil,

Thanks for your insightful reply. I agree with the majority of your response. Thats the short answer..

On 4/05/2010, at 1:41 AM, Neil Van Dyke wrote:

> Samuel,
> (First, a disclaimer that I have only dabbled occasionally in the field of CS education, but I have a lot of varied experience in industry and research.)
> It's commendable that you sought out input on the site from language experts.  I suspect that, like many substantial projects, this journey leads in a very different direction than was originally intended.  Here's why...

Thanks for your commendation.

Yes it has changed in many ways already - but I think the end goal is still the same.

> I think that the current formulation of that site misrepresents what's important and true about these languages, and encourages people who actually think they need that kind of guidance on picking languages to make decisions on the wrong criteria and even snap judgments.  (Put up a page on COBOL, and you've got a winning language for much of the audience in the snap judgment category.)

Are you able to provide clarification as to what exactly what has been misrepresented, or are you saying, in general, everything has been misrepresented?

Can you provide some clarification about what is important and true about programming languages, in terms of your statement, and even in general?

Can you provide me with further insight regarding your comments about COBOL?

> Also, and much more importantly, at the HS level, the languages themselves are incidental to the substance of what is being taught and the methods. Designing a first-rate curriculum from scratch is a huge undertaking of many person-years, even if you can eventually pull it off.  Fortunately, others have already done it.  Start with the package that others developed, not the programming language.  On shoulders of giants, and all.

I certainly agree with you here.

However, you might be misunderstanding the purpose of the site.

Firstly: This site is not necessarily a resource for someone without guidance. Nor is intended to be a full curriculum. It is more about providing a resource where people can learn about the different programming languages and in what ways they are different. It is designed also as a starting point for people who are interested in programming languages.

In a sense, (and I might be wrong), this site is much more superficial.

Secondly: The biggest issue is that people are not doing that (teaching the concepts). At the school in New Zealand, Computer Science is basically MS Office and MS Access. It is a real disaster in my opinion.

Part of the goal of this site is it isn't only for students, but also for teachers to realise there is more than one programming language available in the world. It is like Neapolitan ice cream for someone who has only ever eaten vanilla.

In a certain sense, I've tried to link to as many relevant external links as possible. This is my giant standing.

> If I were to put up a Web site to help HS teachers choose a programming language to teach, it would take this form: "Which language?  Whoa, now hold on there, pardner.  In most situations, you want to teach HTDP.  In a few situations, you want to teach SICP.  And here are a few more packages of approaches/textbooks/materials to consider in some situations, including some packages based on HTDP or its tools.  In all situations, you use whatever languages the package is set up to use."

I assume you are talking about:
	HTDP = http://www.htdp.org/
	SICP = http://mitpress.mit.edu/sicp/full-text/book/book.html

Can you confirm?

Yes, I agree. However, the world is becoming much more diverse. We now need to pick the right language for the job. JavaScript for the web client, PHP, Python or Ruby for the web server, C or C++ for the game development, etc. I'm not saying that this is an exclusive membership, however we can't suffice with one language since students are so curious.

As a preface to the above, no I don't think we should be teaching for the job market, but students have a lot of ideas and goals, and I think we should encourage that. We can't satisfy the student who wants to use OpenGL and 3D graphics unless we use a language capable of these interfaces. If someone wants to do client side web usability, JavaScript is the best/only? option.

The problem is that while computer science is about concepts, we also need to consider the real implementations too, and these have real effects on the way technology is deployed and used.

Another way of looking at this, is that the concepts can be taught without a programming language. But real world results and feedback depend on the language we choose for implementation of our ideas.

> If you want to help HS teachers with CS education, instead of doing a language comparisons site, I'd suggest learning more about HTDP or another package, and finding ways to build upon it.

I do agree with you. But lets consider this for a moment: Without my site, which will be made publicly available for New Zealand students and teachers, few, if any, would ever find out about Scheme - and I think that would be a loss for those people.

Scheme might be a great language for teaching, but if no one is aware of it, then it won't be used. This is the same for all languages - it is important that people are aware of the choices.

Do you think this is a valid point?

> Cheers,
> Neil

Thanks for your well thought out response.

Kind regards,

Posted on the users mailing list.