I am one of those people who hold academia in high regard, at least with respect to all subjects other than computer technology. I believe that what are being churned out are ill-equipped graduates who do not know the fundamentals of their chosen field. This criticism is levied toward computer software oriented subjects; I am not qualified to address computer hardware oriented subjects.
At the time I was attending
Siena College
the college
only offered four Bachelor of Science degrees: biology,
chemistry, mathematics, and physics. Perhaps to some that
was extremely limiting. I felt that way until I asked my
undergraduate mentor why we were not offering a degree in
nuclear engineering. His response was simply "We offer a
basic, in depth, science curricula. If you want more
specialized material, wait until graduate school." Of
course, he was right. I found that my studies in physics
allowed me to program the solution to almost any problem.
And, when I was unable to understand the underlying
mathematics, or chemistry, or biology, there were
resources that I could tap.
My personal experience has convinced me that the current offerings of most US undergraduate programs miss the point. If a student requires an advanced education in computer science, let that training wait until graduate school. Otherwise, have the student obtain a basic education in accounting, biology, chemistry, economics, English, finance, fine arts, history, mathematics, philosophy, physics, psychology, or sociology. For then, the student is educated in a field upon which computer programming can be applied. I have never heard the requirement, in the production environment, to solve a problem in computer science. Rather throughout my career, I have encountered the need to program solutions to problems in accounting, biology, chemistry, economics, English, finance, fine arts, history, mathematics, philosophy, physics, psychology, and/or sociology.
I am not saying that the study of computer science is not important. I am only saying that it is premature to teach it at the undergraduate level.
I am reminded of a young man who worked as an intern at the same laboratory where I was a contractor. My client asked me to provide him with a project to be accomplished during the summer. I asked the intern if he wanted a trivial problem that would have no real lasting value or a highly complex problem that had been troubling me for some time. He chose the later and performed brilliantly. I do not use "brilliantly" very often, but to this young man it certainly applied.
During the summer, he came to me to ask my opinion. He had been accepted to well known and highly regarded university and wanted to know what he should choose as a major. He had indicated that he wanted to major in computer science. Because he was so bright, I suggested that he major in physics or math. If he wanted to take some computer science courses, he should take them as electives. At the end of the summer, he left for school.
The following summer, he returned on another internship. Again, he wanted a difficult challenge. This time the problem was acoustical, combining both mathematics and physics. Again, he performed brilliantly. About half way through the summer, he came to me and asked why I hadn't talked about his university choices. I told him that his decisions were his own and although I was interested, I figured that he would tell me when he was ready. He told me that he had followed my advice. He was taking a double major, physics and mathematics, and taking a minor in computer science. What floored me more was that he was returning as a junior, skipping his sophomore year. He went on to a successful career.
What has happened to today's students? I think they are
looking for the easy way to big dollars. I'm sorry but
that does not exist, nor has it ever existed. What is
worse is that many of our colleges and universities in
the US have become businesses, responding to the whims
and desires of potential students. They are now more
interested in money and are less interested in education.
I communicated with an influential professor (who will
remain unnamed) who claimed that mathematics need not be
taught in a computer science curriculum. Considering the
views of
E. W. Dijkstra
this professor has totally missed the
point of a science education. Without mathematics, how
can anyone determine order statistics? How can anyone
program anything other than the more trivial problems
facing the real world?
What is the result of the money oriented colleges and universities? A group of poorly educated graduates who cannot program without a large investment teaching them accounting, biology, chemistry, economics, English, finance, fine arts, history, mathematics, philosophy, physics, psychology, and sociology.
I define the "production environment" to be that environment in which programs are developed as deliverable products under constraints of both time and money. It is my objective to distinguish organized programming of this type from systems, research, hobbyist, or other types of programming.