Soliciting views on PLs in CS education 
Author Message
 Soliciting views on PLs in CS education

     Anybody wanna talk about the place of PLs in CS education?

     I'm giving a speech at the ACM Computer Science Education Technical
Symposium in Kansas City in March, on this general topic.  I have some
views of my own, some of which I'd like to try out on you.  I'm posting
here only because I've been browsing this newsgroup lately, trying to
pick up goodies while I deepen my rather shallow knowledge of Unix & C.
(Just bought the camel book, guys.)

     The subject is a BS program in CS.  I assume the usual math,
science, and liberal arts, plus a middle-of-the road sort of CS
curriculum: discrete math, some kind of intro course (CS1), data
structures (CS2), algorithms, operating systems, software engineering,
assembler and architecture, logic and switching theory, intro to
theoretical CS, and a choice of electives like AI, formal languages,
compiler construction, simulation, database, graphics, etc.  A good
portion of my talk will be about the way we teach the CS1 course, as
reorganized by Douglas R. Troeger, formerly of Syracuse; it builds on an
informal logic, uses invariants from about week 4, and teaches only a
subset of Pascal.  Not a coding course, in other words, but that's not
the subject of this memo.

     My setting is City College, City University of New York.  We're not
CMU or MIT, but how many places are?  Can't everybody pick from the top
1% of the student population.  Our best students go to the top grad
schools, including CMU and MIT, or get the neat industrial jobs; our
average students find work.  About like a few hundred other CS programs,
in other words.

     The question is: within this context, what programming languages
should be taught, when?  I'm talking now about students who will enter
the job market or grad school in the mid and late 1990s.  (Please
understand that I do not equate CS education with the accumulation of
languages in which the student has had one elementary course.  That kind
of curriculum is Bad News, and I don't think very many schools do it.
But it's also not right to expose students to three or four procedural
languages and give them the very false notion that they have surveyed
the landscape.)

     Here are my current prejudices, er, convictions:

     1.  Pascal is still the right language for CS1.  Modula-2, if you
like, but not C.

     2.  Students should learn a second language early, to minimize the
damage of the First Language Syndrome.  I think I favor C in the
Algorithms course; some places are doing it in Data Structures.  The
program development world being what it is, they _must_ learn C at some

     3.  Students must see examples of language types other than
procedural/imperative, and learn at least one fairly thoroughly: LISP,
Prolog, some concurrent language, . . .

     4.  Students must understand that some tasks should be programmed
in any of these "conventional" languages at all, if awk or perl or
whatever will do what they need in a tiny fraction of the time.


     1.  Whaddya think?  This make sense?  What have I left out?
Anybody want to fight for Scheme in CS1 instead of Pascal or anything
like it?

     2.  Is it conceivable that a student would graduate in the last
half-decade of the 20th century and _not_ know Unix?  Or is that too

     3.  Are there particular languages that they should know, or should
have available as electives?  Does knowing fortran or Cobol still help
getting that crucial first job?

     4.  Does the current tide of downsizing from mainframes to PCs and
workstations bring anything to this discussion?

     Any and all comments welcome.  I will try to answer all mail.  If
anybody rattles my cage so hard that I completely change my way of
thinking, I will give explicit acknowledgment in my paper.  Thanks in
advance to all.

Dan McCracken, Computer Science, City College of New York
New York, NY 10031    212-650-6162

(I _think_ one of these should work . . . )

Sun, 27 Mar 1994 09:52:35 GMT  
 [ 1 post ] 

 Relevant Pages 

1. Comments Solicited on Performance of DB_File

2. Sending SOLICITED bulk mail.

3. McGraw-Hill Education Examines Career Readiness Issues, Hosts 21st Century Workforce Virtual Conference

4. Training and Education in Perl

5. ADV: Help Students Take Charge of Their Education!

6. Australian FTP site for perl4.0 -

7. Hot novel by CS professor, includes perl code

8. how to be a CS major

9. PERL FAQ pls.

10. test, pls ignore

11. Pls help: Perl on SunOS 4.1.2

12. possible bug in perl -- pls help fix...


Powered by phpBB® Forum Software