4 ms·
One of the beauties of programs that teach Scheme and ML (or OCaml or F#) in introductory CS is that they level the playing field. The typical high school comp
by bm98 16y ago
One of the beauties of programs that teach Scheme and ML (or OCaml or F#) in introductory CS is that they level the playing field. The typical high school computer hot shot has never seen anything like functional programming before, and is no better off than anyone else in the class. Follow that with the theoretical foundations of CS and you have plenty of hot shots at the bottom of the class. A professor of mine once said, "Some kids just can't hack the math."
- Locke1689 16y agoI don't know what you mean by "hotshot" exactly, but all of the people who had extensive experience in my high school also knew functional programming and data structures and algorithms. I'm not sure math makes all that much of a difference either because the most experienced people in my class were all doing math-related things (myself a physics minor, my girlfriend a math minor, and my two other friends a math and physics double major, respectively).
- _delirium 16y agoThat definitely wasn't the case at my high school. The high-school coders were almost exclusively some mixture of C, C++, Java, PHP, Perl, and maybe bash. There probably were nonzero people who had used Scheme, but I'd be very surprised if it were more than one or two.
- rwmj 16y agoAnd if a few of them tried Scheme, then teach Prolog. Nobody knows that ;-)
- Hexstream 16y agoFailing that, Forth or J ;P
- Locke1689 16y agoMeh. Do you really think learning programming languages is hard? I think with C, C++, Python, Scheme, CL, Haskell, Racket, and ML under my belt it would take me about a day or two to adapt to new syntax and then you'd be back in the same position you started in. I just wouldn't worry so much about experienced students or give them something extra to work on if they wanted it. I started programming when I was 9, meaning I had been messing around with Linux, systems, programming languages, and algorithms for a full 9 years before stepping into my first class freshman year. My professors did the proper thing and used the finals from the freshman year CS courses to propel me to upper level courses in my first quarter. Don't try to work against experience, work with it.
- deleted 16y ago[deleted]
- leon_ 16y agoIt's that "func programming is rocket science"-stigma people nowadays spread. I don't know why they hype functional programming that much (maybe because they could show off the C "hotshots" in their CS 101 course?) but FP is such a basic and simple paradigm that it's not really something to brag about.
- strlen 16y agoThat's the theory (and I am a strong proponent of teaching Scheme or Haskell in introductory CS followed by C in a data structures class: Visual Blub#++2EE on Rails is something you can learn on your own when you need it for a specific task), but that's not how it is in practice. My girlfriend took Berkeley's introductory CS class as an undergraduate. She did well in the class, got an A, but she was really put off by the attitude of many classmates who had prior programming experience and judged her for not having any. It doesn't have to be with programming languages: it can be with things like setting up your UNIX shell, using emacs, ssh etc... something that we take for granted but had to learn at one point or another. While she didn't intend to Major in Computer Science in the first place, I can't help but think that the environment was almost deliberately designed to make sure that somebody who had great potential to be an excellent programmer couldn't accidentally realize it (much as Jean, the author of the article did). Women who are good at programming still end up deciding against it as a career; on the other hand, many men are horrible at programming, but persist at it. Interestingly enough, in Russia/former USSR the male:female ratio is in Computing is slightly better (more females) than other technical fields. I am not sure whether that's still the case (I left former USSR in 1996). My mother is a software engineer (she introduced me to Scheme and OCaml, back when you weren't considered a real programmer if you worked in anything other than C++). She had many female colleagues when she worked in a Computer Science research lab (back in the days of [Soviet clones of-] PDP-11s, VAXen and IBM 370s, ATT UNIX, etc... when programming was much more incidentally complex than it is now).
- SupremumLimit 16y agoI think the situation in Russia is similar to the US now. We had less than 10% females in computer science when I was at university in the early 2000s.
- strlen 16y agoQuick note: forgot to state that Berkeley's intro CS course is taught in Scheme and uses the SICP book.