Computer Science

So yeah, I got busy as all hell last semester and really didn't have time to maintain a blog. Sorry!

Anyway, I wanted to talk about the curriculum here at Case Western a little bit. In particular, I'm becoming more and more disappointed with the computer science program here as time goes on. Many of the students here fail to realize that there is a difference between computer science and software engineering. Software engineering is about building solutions to problems that may arise in industry. A software engineer really is not concerned with how the tools they use are implemented or what is really going on under the hood; rather, they are interested in how the tools used to develop a user application.

In contrast, a computer scientist really is not concerned with the development of a single application. The closest computer science should come to application development is in the design of flexible libraries (which in turn are used by software engineers). A they should focus on the mathematical theory of computation and not "quickly patching an application so it can get out of the door by the deadline." Thus, a computer scientist does not care about creating a solution; he or she only cares about creating the optimal solution to a problem, or at least a novel solution that is an improvement over the current methods. Furthermore, a real computer scientist should understand what a computer is really capable of doing. Any good computer scientist understands that the order in which operations are performed has a huge impact on the accuracy (numerical stability, conditioning, etc). Once again, it is not just a question of whether or not the job "gets done;" it is a matter of whether or not the result is as accurate as it can be.

Many of the faculty here at Case realize that this difference exists between computer science and software engineering. Many of them try to teach computer science, but it is difficult to teach it to a classroom of people who are expecting to be taught software engineering. I've had a number of classes (databases, operating systems, etc) where the instructor began the semester trying to teach computer science. However, once the entire class (with the exception of a few math majors) failed the first exam, the curriculum noticeably changed to a "here's how to get the job done" mentality. Thanks, but I already know how to get the job done. I came here to learn how to push a computer to its limit and, theoretically, how to push it beyond the limit.

Trackbacks

Trackback URL for this entry is: http://blog.case.edu/bml8/mt-tb.cgi/12843

Comments

Post a comment