Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!ginosko!rex!ames!zodiac!joyce!gds
From: gds@spam.istc.sri.com (Greg Skinner)
Newsgroups: comp.edu
Subject: Re: Which language to teach first?
Message-ID: <24691@joyce.istc.sri.com>
Date: 13 Aug 89 16:32:23 GMT
References: <4218@portia.Stanford.EDU> <4200022@m.cs.uiuc.edu> <13419@bloom-beacon.MIT.EDU>
Sender: news@joyce.istc.sri.com
Reply-To: gds@spam.istc.sri.com (Greg Skinner)
Organization: SRI International, Menlo Park CA
Lines: 59

In article <13419@bloom-beacon.MIT.EDU> crcraig@athena.mit.edu (Christopher R Craig) writes:
>In article <4200022@m.cs.uiuc.edu> gillies@m.cs.uiuc.edu writes:
>>MIT didn't have this good sense.  They tried to teach a compiler
>>course without requiring the students to know the implementation
>>language.  It's hard to learn 2 new languages and also compiler
>>technology in one semester!
>
>I don't know when this was, but it certainly is no longer the case.
>The laboratory portion of 6.035 is done in CLU, which we had to learn
>in 6.170 (software engineering laboratory).

6.035 (the compiler course) underwent major revision from 1982 to
1983.  In 1982, it was taught by Mike Hammer.  There was no lab (ie.
no requirement to actually write a compiler or any portions of one).
Assignments consisted of essay-type questions concerning various
problems of compiler design and implementation.  Exams were
multiple-choice with penalties for wrong guesses.  (A few unfortunate
people wound up with negative scores.)  In 1983, after Mike Hammer
left, they restructured the course to implement the scanner, parser,
semantic checker and code generator in CLU on TOPS-20.  They did not
announce this change until the semester before the course was offered,
so some students did not have an opportunity to fit 6.170, the course
where the CLU language is used to implement software projects of
various sizes, into their schedules.

Other people have probably posted on this in the past, but frankly I
thought 6.035 that semester was a nightmare (and not just because CLU
was required -- in fact, I rather liked programming in it).  I believe
the teaching staff was just as unprepared to cope with a compiler lab
as the students were to take it.  There were many complex
administrative problems that cropped up during the course, such as
many students dropping forcing the lab groups to be rearranged,
overloaded computer facilities, insufficient staffing, conflicts with
other subjects, etc.  They took pity on us and allowed us to switch to
pass/fail if we wished.

>Back to the "6.001 is biased towards AI people" debate.  I don't
>really agree with that.

My personal opinion of 6.001 is largely independent of whether or not
it trains for future AI work.  I found it to be entirely too
fast-paced for a freshman subject (and this is speaking from the
perspective of someone who taught a seminar on it one IAP).  There are
a lot of deep concepts introduced here that most colleges do not touch
until junior or senior year.  It is great if you are the type of
person that can keep up with the pace but very distressing if you
cannot.

I don't know what MIT's undergraduate CS curriculum these days is, but
the last time I looked you could take 5 courses either using AI tools
or covering AI concepts (Abelson & Sussman, AI, problem-solving
paradigms, machine vision, and robot manipulation), as opposed to one
in operating systems, one in compilers, one in computer architecture,
none in databases, and none in numerical analysis.  There is a
definite bias towards AI, and perhaps not enough towards other parts
of CS.

--gregbo
MIT '84