Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site tilt.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!princeton!down!tilt!chenr From: chenr@tilt.UUCP (Raymond Chen ) Newsgroups: net.college Subject: Re: C.S. Dept. woes Message-ID: <62@tilt.UUCP> Date: Wed, 18-Apr-84 02:09:17 EST Article-I.D.: tilt.62 Posted: Wed Apr 18 02:09:17 1984 Date-Received: Wed, 18-Apr-84 08:34:03 EST References: <2540@csu-cs.UUCP> <3433@yale-comix.UUCP> <1278@cbosgd.UUCP> Organization: Princeton Univ. EECS Lines: 49 They have a neat system here at Princeton. They make you learn the theory in class and then apply the theory in lab. With the exception of one course, the Intro to Computer Science for CS majors (which is taught in PASCAL) you don't learn languages in the course, you learn them as a by-product of the course. For example, I took the operating systems course last year. During lecture, we learned about various architectures, methods of managing memory, resources, disk access schemes, scheduling schemes, etc. We didn't get *incredibly* theoretical, seeing as it was the first time the concept of an "operating system" had been officially introduced, but then the Professor gave us a set of UNIX-style manual pages and said "write an process scheduler and implement these system calls...". Unfortunately, we didn't get to go through the agony of making *all* the decisions that op system designers have to make, but we had to make some of them. *And* we did have to design our own data structures, etc. in order to handle semaphores, mailboxes, processes in various states, and all the other fun things. Ditto with the graphics course. We derived the Bresenham algorithm in class and had to implement them for lines, circles, ellipses, etc. as an assignment. Later on, we were introduced to some of the problems involved in designing user-interfaces, then were told to write an interactive graphics editor. The two pure theoretical courses (with no programming assignments) that I can think of off the top of my head are the Theory of Algorithms and the Finite Automata courses. I don't know about the automata course because I haven't taken it yet, but after some of the programming we've had to do, most of the class was quick to recognize the applications of graph theory, among other things. The only problem I see is that in order to really get the theory I'd like to have, grad school is a necessity. There simply isn't enough time to go as deep as the Professors are capable of going, in a semester, without starting out 6 feet under already. So, (hopefully) Grad School Bound ..., -- From the Random Fingers of -- Ray Chen {allegra | ihnp4 | mhuxi}!princeton!down!tilt!chenr "It's amazing what a thousand monkeys and a few typewriters can accomplish..."