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