And programming is not all of computer science; just as engineering is broken into mechanical, electrical, and numerous subspecies, CS encompasses pure information theory, applied theory, hardware engineering, software theory, user interface design, practical programming, "system" design in hardware, software and combined systems, network theory, and operational theory and practice.
My education touched, just barely, on all of those under the guise of "Computer Science". I can describe the physical reality behind amplifiers and flip-flops down to the semiconductor layer, evaluate algorithmic complexity, characterize the amount of information in a system, design and build a peripheral device, understand CPU architecture, criticize a GUI (and do user testing and suggest improvements), write automation scripts to make my life easier, write a utility to get results faster than I can get by hand, consult with people to understand what they want to do and subsequently spec out systems that will do it, and design and manage complex networks.
And I'm not a programmer, though I (obviously) do some programming to achieve these things. I'm essentially a "complex systems engineer" with a specialty in UNIX and TCP/IP networks. And this is all Computer Science... and very little of it was available as course material in Binghamton's Computer Science dept circa 1992-96.
There is some scientific method, there is some engineering rigor, and there is some esthetic elegance when it all comes out right.
Another Side of the Subject
Date: 2003-06-11 12:29 pm (UTC)My education touched, just barely, on all of those under the guise of "Computer Science". I can describe the physical reality behind amplifiers and flip-flops down to the semiconductor layer, evaluate algorithmic complexity, characterize the amount of information in a system, design and build a peripheral device, understand CPU architecture, criticize a GUI (and do user testing and suggest improvements), write automation scripts to make my life easier, write a utility to get results faster than I can get by hand, consult with people to understand what they want to do and subsequently spec out systems that will do it, and design and manage complex networks.
And I'm not a programmer, though I (obviously) do some programming to achieve these things. I'm essentially a "complex systems engineer" with a specialty in UNIX and TCP/IP networks. And this is all Computer Science... and very little of it was available as course material in Binghamton's Computer Science dept circa 1992-96.
There is some scientific method, there is some engineering rigor, and there is some esthetic elegance when it all comes out right.
-dsr-