markg@nvuxf.UUCP (M. Guzdial) (05/14/85)
To Mr. Shapiro at Haverford and Mr. Chen at Princeton Gentlemen: I think that both of you, frankly, are being blinded by your abilities and perhaps your own vanity. Obviously, you are both excellent computer scientists working on complex applications requiring a good deal of CPU horsepower. That's great, but most users DON'T have those sort of requirements, and burdening those users who don't have these requirements with either not having a machine or paying the bucks for one that comes up to your high standards is unfair. I think that my background permits me to speak with some familiarity with the requirements of undergrads in respect to computers. I am a recent graduate (May '84) of Wayne State University in Detroit, MI, with a B.S. in Computer Science. I taught community education for three years, and my last year at Wayne, I taught a class in Robotics ("Real-Time Assembly Language Programming") curriculum at Macomb County Community College and high-school-equivalency classes. Mr. Shapiro mentions that he knows of some 10 members of his class of some 250 could bury a 6300, and that he would expect even greater numbers of demanding users at a larger university. Surprisingly, I have not found this to be true. Wayne State University has 35,000 students, and I found only a handful of undergrads who REQUIRED more CPU than even a Commodore-64. Sure, there are always the hackers and the ones who want ever-faster-response, but these are just the folks who'll be designing, building, and programming the next Suns and Crays. Both of you mention your intense demands for "simulation, compiler hacking" and artificial intelligence applications. Great, but very few undergrads are going to have such demands, let alone fit in all of those classes in an undergrad curriculum. At Wayne, CS in under the school of Liberal Arts, and between CS core classes and liberal arts core classes, I had few electives left over for the "fun" CS courses. I'm returning to grad school in the Fall and plan on taxing resources of the CPU then, but I had little need to do so working for my BS. Further, in a single semester, in any of these classes, how much CPU are you really going to need? In one semester, I really can't imagine an undergrad building a compiler to tax the CPU of even a 6300, unless it's an inefficient hog. I wrote a simple compiler for an even less-powerful CPU, a 6502-based "box," and I found that writing my own parser and code generator for that, and making it run well, easily kept me busy for a semester. Why can't Lisp be run on such a machine? Patrick Winston, co-author of "Lisp," seems to think that Golden Common Lisp on a PC is reasonable, according to his article in last month's Byte. Sure, if you're planning on doing massive Prolog-like resolutions you'll run the 6300 into the ground, but you'd do that to any processor short of a super-mini or a mainframe. Most importantly, though, is that by insisting on the 6300, representing any decent, expandable microcomputer, UVM is making sure that all students have the advantages of having access to such a machine for their own use, and that faculty may develop computer-based-curricula knowing that what they develop may be used by the entire student base. Going with several different machines ruins the latter, and not forcing the purchase eliminates both since, certainly, the non-CS-types won't buy the machine if they don't have-to. They have to be educated to realize that such a machine can be useful to them.
chenr@tilt.FUN (Ray Chen) (05/15/85)
Keywords: In article <109@nvuxf.UUCP> markg@nvuxf.UUCP (M. Guzdial) writes: >Obviously, you are both excellent computer scientists working on complex >applications requiring a good deal of CPU horsepower. That's great, but >most users DON'T have those sort of requirements, and burdening those users >who don't have these requirements with either not having a machine or >paying the bucks for one that comes up to your high standards is unfair. Mr. Guzdial, I think you underestimate the number of people who really USE computers. I'm not talking about cpu cycles and disks alone, but also about tools and such available only in a Unix-style environment. Now, the following figures are rough estimates and not official but... Over the past 2 years each year at Princeton we've had -- 45-80 people who take the undergrad operating systems course 25-40 people who take the undergrad compiler course 20-30 people who take a graphics course 15 people or so who take a course in AI 15 people or so who take a course in natural language processing 10-20 (?) people who do independent work for a professor The year I took the OS course, the final project was writing a stripped-down, multi-tasking, Unix-style kernel. The next year I think it was a queuing simulation. The compiler people write compilers. My year we implemented a full Algol-style language (arrays, subroutines, scoping, the whole bit) in LISP. This year, they're implementing a somewhat stripped down version of C using lex and yacc. The operating systems course and compiler course are considered to be "core" courses for computer science majors. Independent work is "strongly suggested" and will soon be required. A list of independent CS projects include design and implementation of a window-oriented editor, investigating Chinese character recognition, investigation of hidden surface and shading algorithms, investigating the behavior of cellular automata, implementing an ethernet driver, investigating crash recovery mechanisms, design and implementation of a cellular automata simulation machine. I think that these projects are all in progress now and I'm sure I've left out quite a few more projects that I don't know about. I submit that a 6300 in the UVM configuration would be virtually useless for most of the CS majors at Princeton after the fall semester of their sophmore year. Now life may be easier at other schools. Maybe at other places, with the proper curriculum and care, for some CS majors, the useful lifetime of a 6300 could be streched beyond a year and a half. Maybe. Is what you gain by forcing everybody to buy one computer worth driving away the rest of the computer science majors who don't want to be forced to pay $2000 for something that they won't be able to really use? Ray Chen princeton!tilt!chenr
markg@nvuxf.UUCP (M. Guzdial) (05/17/85)
princeton!tilt!chenr writes; >The year I took the OS course, the final project was writing a >stripped-down, multi-tasking, Unix-style kernel. The next year >I think it was a queuing simulation. The compiler people write >compilers. My year we implemented a full Algol-style language >(arrays, subroutines, scoping, the whole bit) in LISP. This >year, they're implementing a somewhat stripped down version of C >using lex and yacc. > >The operating systems course and compiler course are considered to be >"core" courses for computer science majors. Independent work >is "strongly suggested" and will soon be required. > >A list of independent CS projects include design and implementation of >a window-oriented editor, investigating Chinese character recognition, >investigation of hidden surface and shading algorithms, investigating >the behavior of cellular automata, implementing an ethernet driver, >investigating crash recovery mechanisms, design and implementation >of a cellular automata simulation machine. I think that most of the projects you list could be handled adequately on an AT&T 6300. My own familiarity is with the IBM PC not the 6300, but latter is supposed to be a "compatible" and faster than the original by some 60%, so I think my arguments will still hold. A "stripped-down, multi-tasking, Unix-style kernel" can basically be written on just about anything. PC/IX and Venix prove it can be done, even without being "stripped-down" in a PC-style environment. In the early 80's, a product came out called "ANIX" which gave a UNIX style environment to Apple programmers. MANX software still markets a similar product. Again, a "queuing simulation" is a machine independent project which may be developed under any environment. Compilers exist, even Algol style compilers (e.g., Pascal), for everything from Commodore-64s to AT&T 6300's. LISP doesn't run on everything, but it is available in a useful form on PC-compatibles as Golden Hill Common Lisp. The manufacturer quotes programmers from the MIT AI Lab as saying that they can develop code in this environment and upload it as-is to their Symbolics processor, thus indicating that this Lisp is not a "toy" environment. For some applications, the recursive and list-oriented nature of Logo can suffice when Lisp is not available. C can also be developed and used on PCs, though without lex and yacc. The compiler writers must develop their own parsers, which is a useful educational experience in itself:-). Many "window-oriented editors" exist for PC environments, including Emacs and esp, as well as the new TopView, Windows, and GEM environments. Ethernet is designed to machine independent and should certainly be usable on a microcomputer. Cellular Automata, by their nature as models of computation, are implementable on any digital computer. Note well that I did leave out the Chinese character recognition, the investigation of hidden surface and shading algorithms, and design and implementation of a "cellular automata simulation machine." Graphics and image processing often require a great deal of CPU horsepower, so these might not be comfortably implemented on a small machine (though "hidden surface algorithms" should be testable on a 6300-style box). Since I'm not familiar with CAD on a PC, I couldn't say that designing a machine would be do-able on a PC. My point is that a microcomputer IS acceptable for most of an undergrad CS student's workload. I see the 6300 as being representative of any "standard" microcomputer of today's marketplace. Being an advocate of the personal computer dreams of Alan Kay and Adele Goldberg, for example, as described in "Personal Dynamic Media," I would like to see more powerful microcomputers AS THE STANDARD. But going beyond the industry standard would tend to become expensive, thus eliminating the benefit of placing a microcomputer as an integral part of the college experience by making the college experience too highly-priced. Mark
brownc@utah-cs.UUCP (Eric C. Brown) (05/19/85)
In article <288@tilt.FUN> chenr@tilt.UUCP (Ray Chen) writes: >I think you underestimate the number of people who really USE >computers. I'm not talking about cpu cycles and disks alone, but also >about tools and such available only in a Unix-style environment. > >The year I took the OS course, the final project was writing a >stripped-down, multi-tasking, Unix-style kernel. The next year >I think it was a queuing simulation. The compiler people write >compilers. My year we implemented a full Algol-style language >(arrays, subroutines, scoping, the whole bit) in LISP. This >year, they're implementing a somewhat stripped down version of C >using lex and yacc. > I think that you fail to understand the power of a 6300. I use a Tandy 2000 (apx. 3x speed of IBM XT, 1.5x speed of 6300 or so), and I frequently get better response time on C compilation and execution on the Tandy 2000 than I do on a VAX 750. Assuming the students are not running huge core hogs like Lisp, I see no reason why software could not be developed on the 6300. Every major tool that I have used on the VAX works on our Tandy (except Lex and Yacc, and those are available from the Austin Code Works, but I haven't had a chance to order/evaluate them). Eric C. Brown brownc@utah-cs {ihnp4, decvax, seismo}!utah-cs!brownc
shebs@utah-cs.UUCP (Stanley Shebs) (05/22/85)
In article <109@nvuxf.UUCP> markg@nvuxf.UUCP (M. Guzdial) writes: >Mr. Shapiro mentions that he knows of some 10 members of his class of >some 250 could bury a 6300, and that he would expect even greater >numbers of demanding users at a larger university. Surprisingly, I have >not found this to be true. Wayne State University has 35,000 students, and >I found only a handful of undergrads who REQUIRED more CPU than even a >Commodore-64. This is one way to quantify the difference between "good" schools and "not-so-good" schools - multiply Mips, main memory size, and disk size of the machine that undergrads are required to purchase, then scale appropriately. What's the Mips of a Commodore-64? >Both of you mention your intense demands for "simulation, compiler >hacking" and artificial intelligence applications. Great, but very >few undergrads are going to have such demands... At Utah, the CS undergrads really tax the 780, and there's not that many of them. ME students run structural analysis and solid modelling programs, and EE students run VLSI design systems. I don't know about the other engineering students. >I wrote a simple compiler for an even less-powerful >CPU, a 6502-based "box," and I found that writing my own parser and code >generator for that, and making it run well, easily kept me busy for a >semester. Writing programs in assembly language keeps me busy too, but it's not particularly useful or educational. Did you write the compiler on the 6502, or on a different machine? >Why can't Lisp be run on such a machine? Patrick >Winston, co-author of "Lisp," seems to think that Golden Common Lisp on >a PC is reasonable, according to his article in last month's Byte. >Sure, if you're planning on doing massive Prolog-like >resolutions you'll run the 6300 into the ground, but you'd do that to >any processor short of a super-mini or a mainframe. Lisp is an important part of the undergrad curriculum at Utah. Fortunately, only the kiddies in CS105 do Lisp on a PC (Macintosh). They only get 1200 items of heap space, which cramps the style of even their programs. After that, they know Lisp, and are ready to write interesting programs that just won't fit on a PC. stan shebs