Path: utzoo!mnetor!uunet!tektronix!zeus!amadeus!karenc From: karenc@amadeus.TEK.COM (Karen Cate;6291502;92-734;LP=A;60kC) Newsgroups: comp.software-eng Subject: Re: American Programmer Message-ID: <3326@zeus.TEK.COM> Date: 28 Mar 88 20:46:07 GMT References: <555@psu-cs.UUCP> <1434@ur-tut.UUCP> <3415@bunker.UUCP> <5359@utah-cs.UUCP> <36845UH2@PSUVM> <1602@ogcvax.UUCP> Sender: news@zeus.TEK.COM Reply-To: karenc@amadeus.UUCP (Karen Cate) Organization: Tektronix, Inc., Beaverton, OR. Lines: 85 At this point in the discussion, I think I'll add my $.02 worth. This discussion has sort of meandered to an educational sidetrack, but so many educators read this group, that I wanted to keep it going here. After all, you don't HAVE to read it... I have now been out of college for 1 year. I graduated in CS from Oregon State University - whose CS dept was in a constant state of flux the entire time I was there. (No flames, please, that was only an opinion -- I think it's better now.) Anyway, there are some out- standing individuals there who had some good ideas. Here is a list of things I felt helped me the most: 1. Internships: First and foremost. I wish everyone could have the wonderful and varied experiences I had. 90% of what was presented to me in class would have been useless (misunderstood) if I hadn't already been in the "real world" -- at least the world I wanted to work in. I'm not kidding here. Never in school did I do anything vast enough to really justify real design work (Warnier Orr diagrams, or other design documentation techniques). Since I had already done a project that these would have been a tremendous help, I understood it. A reasonable alternative: We had an "Applications Programming" class. It was a two term sequence in which the students solved a real world problem for someone. The nature of the class changed from term to term, but because it was two entire quarters devoted to one programming project, it could be large and thorough. 2. One teacher had us write a program and hand it in. He then randomly distributed them back to the class. We then had to add/modify this other students' program. This was the second CS class we took, so we: a) learned a whole lot, and b) none of ours was good enough that we took offence at the comments of our peers (as a general rule). There was not one complaint about requiring comments after that. It also taught us the difference between helpful comments and the stuff you put in to please the TA. 3. Someone has already mentioned modifying an existing piece of code. This is a wonderful technique. Especially with a language like COBOL, and especially if the students already know another language. After they've dealt with a well written program. Give them a poorly written one without comments. [My second internship was to modify (re-write) a program that was written in basic by a non- programmer EE (I don't mean to say that EE's can't program, just that this individual was not particularly adept). Then it was ported three times through three different basics. Gads what a nightmare!] 4. Try being a grader. I spent many long nights grading lousy COBOL code. It taught me a LOT. I feel kind-of sorry for whoever hired some of those students, they would have to do a lot of re- training. It made my experiences all the more meaningful. I have some other miscellaneous comments: - We changed computers/OS's virtually every class. This was good and bad. Bad: The teachers were also changing often, and knew nothing about the machines we were working on (They had a vax they used...). Whatever documentation came with was not available for anyone to use. We spent many precious hours fighting syntax problems. Good: We graduated with a diverse experience base. We may not have known a lot about any individual, but we knew enough to get ourselves in trouble. Give us a manual and we could be dangerous! - I strongly feel that there should be a "program" at any given school. Instead of having a bunch of classes, some of which are required. There should be a continuous thread of classes where the curriculum is set for the whole four years. Hopefully, you should not have to fight to get into these. No, they shouldn't all be taught by the same instructor, but SOME projects should be the same, and each student should be at about the same place at the same time. Then you could pick up a program that was written a couple of months ago, etc. The theory can be developed in stages, instead of all in your junior or senior year. Then students could customize their programs with their choice of electives. I could write pages on how I would do it... But, then again, what do I know? Ok. I'll give up now. Remember, this is all my opinion, and I'm not sure that I claim it. Don't blame Tek or OSU for any of this. Karen Cate tektronix!amadeus!karenc -OR- karenc@amadeus.LA.TEK.COM