[TYPES] Suggestions for Advanced Programming courses?
Robert Harper
Robert.Harper at cs.cmu.edu
Mon May 10 13:23:40 EDT 2004
Aha! Great minds think in similar ways, I guess. I've been meaning to
invent just such a course here at CMU. I was thinking of calling it
"Programming Methodology", or maybe "Real Software Engineering". What I
want to do is to teach what it means to write good code, and how to do
it. Students just do not know. My idea is to be integrative, putting
together the various ideas they get in various classes (good algorithms,
typed language, modular design, specification and verification, and so
on).
Let me know what you come up with!
Bob
-----Original Message-----
From: types-list-bounces at lists.seas.upenn.edu
[mailto:types-list-bounces at lists.seas.upenn.edu] On Behalf Of Benjamin
Pierce
Sent: Sunday, May 09, 2004 3:30 PM
To: types at cis.upenn.edu
Subject: [TYPES] Suggestions for Advanced Programming courses?
[The Types Forum,
http://lists.seas.upenn.edu/mailman/listinfo/types-list]
Some of us at Penn are thinking about a new junior-level undergraduate
course on "Advanced Programming." The goal is to take students who are
already *competent* programmers (having already done a considerable
amount
of coding in several courses during the first two or two and a half
years)
and give them a sense of how really *good* programmers work.
Of course, we'd prefer to do this in the context of a civilized
programming
language! In particular, discussing modularity will be much easier in a
language with a modern module system or powerful type-system support for
modular programming -- this makes SML, OCaml, and Haskell natural
choices
[*]. However, advanced textbooks and related course materials such as
projects -- critical for the success of such a course -- are not so
plentiful for these languages.
There must be lots of Types readers who have worked on similar course
designs. Would you be willing to share some of your experiences?
Please reply directly to me and I will summarize to the list.
Regards,
Benjamin
[*] I know Scheme also has good modularity support these days, so this
is
another possibility; I would be interested in hearing about what kind of
advanced coursework people are doing in Scheme. However, our taste runs
to
statically typed languages.
More information about the Types-list
mailing list