patrick@mcc-pp.UUCP (Patrick McGehearty) (09/10/86)
I suggest that a 4 yr program should cover a large variety of topics so that when the student later specializes he/she is aware of the range of the subject matter (i.e. knows how to start learning more) I would suggest the following plan for a curriculm: 1st yr: Intro course - basics of programming, what are computers good for (including why 0.3+0.7 may not be 1.0) Software eng - how to program well, intro to 2-4 languages 2nd yr: Adv. programming - complex data structures, more languages last course in art of programming as such, skilled programming capability is assumed in later courses. Theory of computer science These courses should be the "washout" courses. That is, anyone who is successful in these courses should have the talent, dedication, interest, or whatever to complete the curriculm. The purpose of putting them here is to let students know before they have spent three years whether they should continue in computer science. 3rd & 4th yr: more advanced courses such as: Algorithm Analysis and Numerical Methods Programming System Construction (ie. compilers, operating systems, or database systems - gain knowledge of large system construction problems and techniques) Intro to AI Methods etc. There should a common core in the above with room for electives to provide a variety of skills from new graduates. I leave it to others to discuss the fine details of the advanced topics. - Patrick McGehearty
skajihar@udenva.UUCP ("Lord of Sith" Kajihara) (09/11/86)
In article <1642@mcc-pp.UUCP> patrick@mcc-pp.UUCP (Patrick McGehearty) writes: >I suggest that a 4 yr program should cover a large variety of topics >so that when the student later specializes he/she is aware of the >range of the subject matter (i.e. knows how to start learning more) Following this discussion of late, I agree with this idea. From some people here in the math and computer science department, I have gotten the idea that they think that a computer scientist is anyone from a data processor to a systems analyst and that a broad range of subjects is the worst thing to do. However, these people are of the idea that an undergraduate will necessarily go into industry right away. They do not seem to anticipate their people going to graduate school. (These ideas are my own and not the department's). I, as a physics major, believe that I would have difficulty choosing a field of study as an undergraduate if all I knew was mechanics. I advocate the broader range of subject matter so that the student knows what the general field encompasses. Later on, it would be good to specialize, but those who do not know how to learn broadly will not know how to do this. Scott Kajihara
mc68020@gilbbs.UUCP (Thomas J Keller) (09/12/86)
Once again, we are involved in this silly argument. A am going to make a few points in this article, and I am **NOT** planning to pull any punches. If you can't take strong statements, quit now. Comments on my statements are welcome, flames can be sent to /dev/null (or up your A**E). 1) There *IS* a difference between Computer Science and Computer Engineering. They are separate, but **HIGHLY** congruent fields. In particular, the CS major should have a general understanding of CS topics, with a reasonable comprehension of gate-level logic and hardware interfacing considerations. CE majors, on the otherhand, need a much more thourough comprehension of CS topics. It is impossible to adequately engineer a machine (for *ANY* purpose, if one does not comprehend the purpose and use of the machine to be designed. To argue otherwise is to argue in favor of the increasing levels of mediocrity one sees in virtually all fields of endeavor. It is not valid to claim that in as much as a field has grown so large that no one can know everything there is to know of it, that one therefore should learn *ONLY* those small portions necessary to accomplish a given task. 2) People whose goal is to become *programmers* should go to the Control Data Institute, or some such equivalent trade school, where they will be taught a programming language or two, *MAYBE* a little math, and hopefully a little about data structures. This will meet their needs. ********** S T O P ********** hampering the Computer Science schools with these people! Due to limited resources, the universities cannot provide separate curricula (most can't anyway), and so the *SERIOUS* CS students get watered down corses, while the FPA (Future Programmers of America) get courses too complex or advanced for their needs (and usually for their capabilities as well). Lay off the "elitism" crap, too! Computer Science curricula are, or should be designed to prepare COMPUTER SCIENTISTS for their chosen profession. If other people wish to be programmers, more power to them! The world *NEEDS* more programmers. By all means, let us train them well. But ***DON'T*** screw the CS students in the process! 3) Probably the single most important are of computer sciences right now is in research. We desparately need qualified COmputer Scientists (as opposed to mere programmers) to conduct the research which is going to move us into the next few generations of computing. If we don't stop confusing CS curricula with FPA curricula, we are going to fall behind the Japanese and a few others once again. **GROW** up, damn it! Now that I've said my piece, leave me be. -- Disclaimer: Disclaimer? DISCLAIMER!? I don't need no stinking DISCLAIMER!!! tom keller "She's alive, ALIVE!" {ihnp4, dual}!ptsfa!gilbbs!mc68020 (* we may not be big, but we're small! *)
elg@usl.UUCP (Eric Lee Green) (09/17/86)
In article <905@gilbbs.UUCP> mc68020@gilbbs.UUCP writes: > [he states my general thoughts, that a programmer should have some idea of what hardware does, then:] >2) People whose goal is to become *programmers* should go to the Control > Data Institute, or some such equivalent trade school, where they will Actually, I think one of the biggest problems is that people are NOT learning how to program. At some schools, one can graduate with honors without ever having to write a program more sophisticated than "Hello World". And the results are sometimes ludicrous. I remember some of the AI/Cognitive Science guys presenting all sorts of fuzzy fuddled ideas that were in no shape or form capable of being modeled by current machines. A whole generation of researchers seems to have digressed into abstract thinking as their sole form of thought, and have no idea how to turn their neat idea into a neat hack. >3) Probably the single most important are of computer sciences right now is > in research. We desparately need qualified COmputer Scientists (as opposed > to mere programmers) to conduct the research which is going to move us > into the next few generations of computing. If we don't stop confusing > CS curricula with FPA curricula, we are going to fall behind the Japanese Sounds like the above problem. Research requires abstract knowledge and the ability to think. Computer science research, however, involves one more thing: mapping that thought onto either real or imagined hardware. That was the breakthrough of the Turing Machine -- Turing took an abstract concept, counting theory, and mapped it onto a machine. Basically, that is one of the primary differences between CS and Math. I do agree with the thoughts about Freshman and Sophomore curriculums, however. For example, asking students to recognize an expression, without first teaching them something about finite state recognizers and other theory of that nature, is simply ludicrous. You're teaching the students to just sit down at the terminal and fiddle around till something works, you're not teaching them Computer Science. -- Eric Green {akgua,ut-sally}!usl!elg (Snail Mail P.O. Box 92191, Lafayette, LA 70509) -- Tengo lo mismo que doy y solo sirve al presente.
mc68020@gilbbs.UUCP (Thomas J Keller) (09/18/86)
In article <923@usl.UUCP>, elg@usl.UUCP (Eric Lee Green) writes: > In article <905@gilbbs.UUCP> mc68020@gilbbs.UUCP writes: > > > [he states my general thoughts, that a programmer should have some > idea of what hardware does, then:] > > >2) People whose goal is to become *programmers* should go to the Control > > Data Institute, or some such equivalent trade school, where they will > > Actually, I think one of the biggest problems is that people are NOT > learning how to program. At some schools, one can graduate with honors > without ever having to write a program more sophisticated than "Hello > World". And the results are sometimes ludicrous. > have no idea how to turn their neat idea into a neat hack. Whoa! I have not said that Computer Scientists should not learn to program! On the contrary, I concur most heartily with the suggestion that CS people are not being taught adequate programming skills. What I am trying to get across here is that there are people who are going to be "programmers" and there are people who are going to be computer scientists. They are headed into two very different realities, and require different training. > > >3) Probably the single most important are of computer sciences right now is > > in research. We desparately need qualified COmputer Scientists (as opposed > > to mere programmers) to conduct the research which is going to move us > > into the next few generations of computing. If we don't stop confusing > > CS curricula with FPA curricula, we are going to fall behind the Japanese > > Sounds like the above problem. Research requires abstract knowledge > and the ability to think. Computer science research, however, involves > one more thing: mapping that thought onto either real or imagined > hardware. That was the breakthrough of the Turing Machine -- Turing > took an abstract concept, counting theory, and mapped it onto a > machine. Basically, that is one of the primary differences between CS > and Math. > Ok, but as above, I haven't said that CS researchers shouldn't have a solid grounding in programming skills, which is the primary element necessary to the mapping to which you refer, and which *IS* essential in some research. Bear in mind, however, that there are areas of CS research where conventional programming methodology is not appropriate, or even applicable. CS people need to be taught to work with the abstract as well as the concrete. > I do agree with the thoughts about Freshman and Sophomore curriculums, > however. For example, asking students to recognize an expression, > without first teaching them something about finite state recognizers > and other theory of that nature, is simply ludicrous. You're teaching > the students to just sit down at the terminal and fiddle around till > something works, you're not teaching them Computer Science. > -- Indeed. I took several upper division "specialization" courses, such as Compiler Design and Construction or Operating Systems Design in which a significant number of the students, all of whom had allegedly completed the pre-requisite coursework, were unfamiliar with such concepts as pointers (in PASCAL or C). Concepts such as vertical and horizontal microcode were dismissed as "so many buzzwords" by these students. *CHOKE* I believe that CS people need some knowledge of hardware. I do not believe that they necessarily need to be able to design their own digital circuits, however. I do believe that CS people are a different breed from "programmers", and that *VERY* early on in the curriculum their paths must diverge, and radically. I cannot speak for any other campus, but at the school *I* attended, a graduate with a CS degree was a programmer, and not a highly qualified one at that. Between lack of resources, muddled curricular goals and an inability to identify students with the talent and skills form those without, the department managed to turn out a large group of marginally trained programmers. Not a single Computer Scientist has yet to come out of that school, nor is one likely to. -- Disclaimer: Disclaimer? DISCLAIMER!? I don't need no stinking DISCLAIMER!!! tom keller "She's alive, ALIVE!" {ihnp4, dual}!ptsfa!gilbbs!mc68020 (* we may not be big, but we're small! *)