ext_104655 ([identity profile] learnedax.livejournal.com) wrote in [personal profile] jducoeur 2003-06-10 09:23 pm (UTC)

The rule of thumb is that if you have to tell people it's a science, it isn't. Hence the distinction between "soft sciences" (Earth Science, Computer Science, Social Sciences) and "hard sciences" (Physics, Chemistry, Biology). Technically you and I both possess BAs in Computer Science, if that helps you enjoy the artistic side of your profession.

As a fundamental point, CS should not be considered a true science despite having scientific parts within it. As a whole it is a field devoted to developing new technologies, not to the study of extant phenomena. So what is it? Generally it is the combined outgrowth of two other fields: Mathematics and Electrical Engineering. The former begat Information Theory, and latter Electronics. This is precisely the reason that at Binghamton, where [livejournal.com profile] metahacker studied, they had two separate departments, one for each parent field.

I would agree with most parts of your breakdown to some degree, but I don't see them as separate fundamental aspects of the discipline. The line between craft and engineering can be blurry, but what helps keep them distinct is largely the shadows of art in craft, and the shadows of science in engineering. Programming is, in my opinion, strongly on the scientific side of that line. Its aesthetic charm derives not from emotional or intellectual expression, as in Art, but in raw perfection. This is the same perfection as a well-written proof or an ideal arch. It is simple, elegant, and beautiful, but not expressive. On the other hand, the science of debugging is very near a true science, in that one applies the scientific method to study a phenomenon in the hopes of understanding it better. It ultimately fails as a science only because the process is interactive, with the ulterior goal being to change the phenomenon. This is broadly the same process one must undertake in designing, prototyping, and fixing any large engineering project.

I would say that, with its basis in practical application of scientific and mathematical principles, Software Engineering is in fact aptly named.

Post a comment in response:

(will be screened)
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting