This seriously serious, click one or all to get free software, free design guidance, free free free!
30 Day to Launch Phone
No picture today, the Community server didn’t want to host it.
What the F#, umm, does that work? Oh well, I’ll stick with it for awhile. After all blogs like this are not broadly read, so I figure I can talk about anything I want to. Ok, on to curriculum and pedagogical discussions:
After all, I have read most of Minsky’s papers and posts over the past 50 YEARS and he doesn’t seem to really care what other people think. Of course, he is a tenured professor and I have to think about profit and audience.
So what would be a source for representative curriculum? OCAML classes come to mind, the excellent work done at UCSD on OCAML might be a good source, but on thinking about it, why? F# and OCAML are very similar except that F# is tied to the .NET Framework and OCAML isn’t, the Light Syntax is the same.
But what about the structure of the class, if the market is to be engineers and scientist does the class have to be difficult, or should it be a fun way to re-attract the students to programming? A honeypot would be a class that is fun and informative, with an eye to the student getting a very positive experience out of the classroom.
In starting my curriculum development, I will review the “Seven Deadly Sins of Introductory Programming Language Design[i]”. Although neither F# or OCAML was designed to be a first language, for engineers and scientists, it might very well be the only programming language this group of students will deal with in the future. The domain knowledge for engineers and scientists, not to mention the large load of “general education” in the US, means that the undergraduate engineering and science students may only have one programming classes at many schools. So in developing the curriculum the rules in the Seven Deadly Sins need to be avoided.
1. Less is More:
2. More is More:
3. Grammatical traps:
4. Hardware dependence:
5. Backwards Compatibility: “
6. Excessive Cleverness:
7. Violations of Expectations:
In a future post I will review how these rules impact F#, which could be a great first programming language for non-CS, the bulk of the rest of students would clearly benefit from a functional language similar to F#.
The big question is this: How do you motivate the students who only want the programming language to solve domain problems and aren’t into the programming for programming sake?
[i] Conway, D. and McIver, L. Seven Deadly Sins of Introductory Programming Language Design. Department of Computer Science, Monash University. <http://www.csse.monash.edu.au/~damian/papers/PDF/SevenDeadlySins.pdf>.
Conway, D. and McIver, L. Seven Deadly Sins of Introductory Programming Language Design. Department of Computer Science, Monash University. <http://www.csse.monash.edu.au/~damian/papers/PDF/SevenDeadlySins.pdf>.