Leading Canadian University drops Java in favour of Scheme for first year students

Started by
43 comments, last by Sneftel 16 years ago
Quote:Original post by Raghar...

Computer Science isn't about teaching you to program. If it was, the $1000s or $10,000s it costs to go to university would be better replaced with a few $100 on books.

Advertisement
Quote:Original post by Samith
What's the deal with people having trouble with parentheses? I don't remember ever having that much trouble with them. Didn't your code editors highlight parentheses pairs?


Even with highlighting it strains the eyes.

Plus highlighting requires interaction in order to visually grasp the structure of the code; you can't just look at it and see what's going on. Another downside is that highlighting typically only highlights one grouping at a time.


Anyone who says that scheme allows people to focus on the problems rather than fighting with syntax is fooling themselves. The parentheses insanity is far more difficult to handle than learning a few keywords here and there.

Hooray for syntactic sugar.
This is my signature. There are many like it, but this one is mine. My signature is my best friend. It is my life. I must master it as I must master my life. My signature, without me, is useless. Without my signature, I am useless.
Quote:Original post by Mithrandir
Anyone who says that scheme allows people to focus on the problems rather than fighting with syntax is fooling themselves. The parentheses insanity is far more difficult to handle than learning a few keywords here and there.

I agree. Should we eliminate punctuation and capitalization from readings in literature courses because "students shouldn't have to fight with syntax"?
Quote:Original post by Sneftel
Quote:Original post by Mithrandir
Anyone who says that scheme allows people to focus on the problems rather than fighting with syntax is fooling themselves. The parentheses insanity is far more difficult to handle than learning a few keywords here and there.

I agree. Should we eliminate punctuation and capitalization from readings in literature courses because "students shouldn't have to fight with syntax"?


Why not?

1t d0nt m4tt3r 0n teh 1nt3rn3tz, s0 itz kewl!11!!1!LOL!!1!

[smile]
Quote:Original post by Sneftel
Are you channeling Warsong?

Stop derailing this thread, it's my job. ~_^
I'ld say bad news.

While I loved Scheme, DrScheme is painful as a development environment. Thats the biggest problem, isnt it? There isnt a single good one for Scheme.
I posted my thoughts on the matter here

Regarding the syntax issue, I use editors with paren matching, which helps a lot and I indent my code, which means that I see the structure from the indentation, not from the number of parentheses.

Does anyone really count the closing braces in Java, or do you just look at the indentation?

As for Scheme turning off students, the experience of a teacher and Scheme implementer suggests otherwise: http://www.ccs.neu.edu/home/matthias/Presentations/CCSNE/first%20year.pdf


Some quotes from the PDF:
Quote:
* HtDP (A free book on programming in Scheme) students routinely outperform C/C++ students on C++

* All students: HtDP preferred by ~70%

* The more C++, the more they prefer HtDP

* Female students: prefer HtDP by a ratio of 4:1


If you are interested, HtDP is freely available online.
To tell you the truth, I think *ECMAScript* would be a fairly decent choice for a beginner programming language. Several reasons:
- It's syntax is very forgiving. Forget a semicolon at the end of a line? No worries, it's all cool as long as there is a newline character to at least differentiate between lines. Forget to use the var keyword when declaring a variable? Again, fuhgedaboudit, the language compensates. Yes, declaring variables with var keyword is semantically different than with it, but it's not going to matter to a beginner.
- No need to match return types, any function can return a value at any time.
- No need to worry about converting between data types, the language does automattic type coersion. In my own time as a programming tutor, I found students struggled with the concept of data types the most. Incidentally, the concept of scope was a big sticking point.
- The syntax *is* roughly C-like, and C-like languages account for the vast majority of languages used in industry. It's like training wheels.
- It's usefull in a wide variety of different applications: Websites, scripting, it's even possible to write .NET apps in it. Basically, it's a language the kids can grow with.
- None of the "public static void main" stuff, none of the "#include <library_they_won't_remember.h>" or "imports some.kind.of.junk.*;" or "using A.Whole.Lot.Of.Confusion". Granted, import statements are required to use .NET features in JScript.NET, but by the time you get that far it shouldn't be a big deal to introduce the concept.
- Wide adoption means there are tons of examples online.
- Its use in web pages can get beginners writing compelling projects almost immediately. It is well known that learning labs centered around "real world" applications help cement concepts more readily.
- It supports procedural, functional, and object oriented programming, without requiring any one in particular. Admittedly, it's OOP is a little funky, but a number of different implementations (specifically JScript.NET) correct that.

[Formerly "capn_midnight". See some of my projects. Find me on twitter tumblr G+ Github.]

Actually, the more I use &#106avascript, the more I like it. It's a very fun language to work with. I think the main reason we dont see more classes that us it is because most people, from what I see, dont think of it as a programming language proper: most people still seem to see it as the toy language you use on the web.
I'm just a hobbyist programmer, but what wrong with Python?

This topic is closed to new replies.

Advertisement