Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!umcp-cs!mangoe From: mangoe@umcp-cs.UUCP (Charley Wingate) Newsgroups: net.cse Subject: More on Math and CS Message-ID: <147@umcp-cs.UUCP> Date: Fri, 7-Mar-86 20:04:40 EST Article-I.D.: umcp-cs.147 Posted: Fri Mar 7 20:04:40 1986 Date-Received: Sun, 9-Mar-86 09:26:28 EST References: <6350@cca.UUCP> <6420@cca.UUCP> <1074@terak.UUCP> Organization: U of Maryland, Computer Science Dept., College Park, MD Lines: 78 In article <1074@terak.UUCP> doug@terak.UUCP writes: >Wanna know what's missing in the usual curricula for a CS degree? >They usually leave the CS grad with the belief that he understands >programming. Wrong; he understands Computer Science. That certainly isn't true here at UMCP. One has a considerable amount of freedom in arranging things, and typically, people specialize in a few of the anointed five fields. >There is no "science" in most applied computing. Professional >programmers seldom spend any time on CS concerns. The applications that >need to be programmed aren't exotic; they just need to be written. In >most cases, the algorithm is blatantly obvious. All that needs to be >done is to select a reasonably appropriate data structure, then crank >out the code to do the job. This is contrary to MY work experience, working on a very large (but very ordinary) sort of personnel program. What most professional programmers do, as far as I can tell, is take some vague requirements, re-tread the only data structure they know, and piece an algorithm together, all without any regard to any kind of software engineering practice. I submit that programming is in and of itself a discipline within CS. Here, it is found by mating languages and software engineering with "Information Processing". People who are interested in programming numerical applications also take Numerical Analysis. >Look at this list of CS topics suggested so far: >> Statistical theory of communication and linear systems, >> calculus, >> advanced calculus for engineers, >> linear algebra, >> mathematical statistics >> numerical analysis, >> propositional and predicate calculus, >> complexity theory (concrete and asymptotic), >> graph theory, >> combinatorics, >> universal algebra, >> Boolean algebra, >> relational algebra, >> model theory, >> theory of computation, >> theory of formal languages, >> recursion theory, >> lambda calculus, >> denotational semantics. Well, I will agree that a lot of this is not in and of itself of use to CS people. Almost everything on the list is only useful for various applications. People who aren't writing "scientific" programs, for instance, don't have a lot of use for calculus, numerical analysis, or universal algebra. People who don't have any interest in computing theory can also despense with all the related math. People who aren't interested in writing compilers or programming in Lisp won't have much use for lambda calculus, and it's not clear that ANYONE has any use for denotational semantics. What it comes down to is that only about a quarter of the list is of general interest to CS students. >I'm not saying that a CS curriculum should teach programming. What I'm >saying is that the students should be kept aware that CS and programming >are two different things. (Oh, by the way, this implies that I believe >that a CS degree is not particularly useful for a programmer.) That means that there is a long list of CS topics which now need to go in a new curriculum, such as: Analysis of algorithms Computer archetecture Software engineering Data structures Basic language theory C. Wingate