[said Al] > > For goodness sake, Software Engineering /= CS > > It's apples and oranges. Which is better? > > CS experts should do CS, ie science, ie discover new knowledge, > propose and test testable hypotheses. > > Software engineers should engineer software, ie build things that > work and that we know will work because they are built the right > way or else the engineer isn't. Sigh. You're entitled to your opinion that there should be a dichotomy here, and some share it. But many do not. > > A dispute over which is better among such an esteemed group as this > raises all kinds of questions, but I won't go there. You should > stop this dispute lest some future graduates see it and get all > confused. There's no dispute here, except over whether we should create an artificial CS/SE dichotomy in education. See below. > > > Al > I'm appending the definition of Computer Science as adopted by the Computing Accreditation Council (CAC) of ABET (Accreditation Board for Engineering and Technology). This is the body (a creature of ACM and IEEE Computer Society) that accredits U.S. *undergraduate* computing programs. Currently there are about 200 such accredited programs. I've abridged this a bit, but you'll get the idea. The accreditation process includes a number of standards that further this "mission statement". Any program desiring accreditation must show that it meets the standards, and that all students meet that program's requirements. For more details, see www.abet.org. Now the definition: "...[T]he discipline spans both advancing the fundamental understanding of algorithms and information processes in general, as well as the practical design of efficient reliable software and hardware to meet given specifications... In computer science there is an inherent intermingling of the theoretical concepts of computability and algorithmic efficiency with the modern practical advancements in electronics that continue to stimulate advances in the discipline. It is this close interaction of the theoretical and design aspects of the field that binds them togeher in a single discipline. "...[A] well-educated computer scientist should be able to apply the fundamental concepts and techniques of computation, algorithms, and computer design to a specific design problem. The work includes detailing of specifications, analysis of the problem, and provides a design that functions as desired, has satisfactory performance, is reliable and maintainable, and meets desired cost criteria. Clearly, the computer scientist must not only have sufficient training in the computer science areas to be able to accomplish these tasks, but must also have a firm understanding in areas of mathematics and science, as well as a broad education in liberal studies to provide a basis for understanding the societal implications of the work being performed." I think it's a reasonable statement of what we should be about in UG education. The dichotomy between CS and SE, at the UG (as opposed to research) level is entirely artificial, in my view and experience. What do the rest of you think? I'll discuss it with you offline, Al, if you wish. Mike Feldman