I posted the following on the ProofObligation page:
[If you feel so strongly that computer scientists are all mathematicians, why not call it "computing science" and make it a branch of the Math department? Statistics is a branch of Math that contains mathematicians so why not "computing science" as well?
There are people who actually know what tools and techniques work in programming computers so why not have them teach these things to tomorrow's programmers? Where should research that makes better computer programming tools and techniques be carried out? What faculty do you suggest? Why should the future of computer languages (operating systems, etc) be held hostage to the profit/loss motive of private companies? Is there no public interest in better programming tools and better education for the people that are making our way of life so much better?
If the research that people like me need, can't be done by the CS departments, then in what department should it be done and what would you call it? Remember that hardware design and electronic devices using computers are created by Computer Engineers, so that name is already taken. --- DavidClarkd ]
I asked the question so I will try to answer it myself.
Whereas:
- Most if not all the technological progress in all fields over the last 30 years (education, science, materials, communications, transportation, etc) has been facilitated by the invention and application of computer hardware and the software that makes it work, and whereas
- Programmers (at University) are taught how to program, mostly, by people who have never been professional programmers or software designers, and whereas
- Public money is allocated to software research by providing funding for professorships in Computer Science faculties, and whereas
- Large amounts of money are spent on computers and other costly facilities to accommodate these professors.
Be it resolved that:
- A new faculty called "Software Engineering (SE)" be created and funded at the level of the current Computer Science faculty, and
- All teaching of programmers and software designers be the exclusive responsibility of this faculty, and
- The current professors in the Computer Science faculty be transferred to the Math faculty and renamed "Computing Science", and
- This new SE faculty will do research that makes/creates better techniques and tools to make better software of all kinds, and
- Teaches programmers and software designers how to create software that solves real world problems and
- Let's make actual experience along with classroom work, be part of the criteria of a SE title (like a PEng), and
- Let's let the focus be on software that works rather than Mathematical purity.
Additional Points:
- This last point would mean that existing SE departments would have to expand their scope enormously or be replaced by the complex mix of tools and techniques that is required to make real world programs.
- If you thought that maybe Colleges would be a better place for this faculty rather than a University, I would say that this form of SE requires extensive, full time research that isn't amenable to a College.
- These SE researchers should not have to share the accolades for the benefits of software when these SE professionals have done most of the heavy lifting.
- If you thought that this faculty should be under the "Engineering" faculty, I would argue that software design and programming are not structured like any of the "Engineering" groups (Civil, Electrical, Computer etc) and has qualities more like art, science, psychology and even mathematics, all mixed into one.
- Embedded programming, games, databases, scientific processing, computing algorithms etc could all be sub disciplines of this faculty.
- It should be acknowledged that SE borrows ideas from many fields (including Math) but has it's own unique set of characteristics. (It is not a subset of Math).
- SE should set "usefulness" as it's highest criteria for software techniques, algorithms and languages.
- Creating a list of "ideals", meaning, "all other things being equal, more of "x" is better or worse" should be formulated but different types of software will require a different emphasis on these "ideals".
- I wouldn't object to substituting the words "Computer Science" for my proposed "Software Engineering" title. This might get confusing for people that currently call themselves "Computer Scientists" who would have to change their designation to "Computing Scientist" with this proposal, in any case.
Please comment below.
Ask, and ye shall receive:
http://www.google.co.uk/search?q=department+of+software+engineering
http://www.google.co.uk/search?q=faculty+of+software+engineering
Apply now, and you can probably be doing a degree in one of them by the end of January.
[Are you joking? Did you actually read any of what I wrote above? --- DavidClarkd]
I'm not joking (well, not much) and I actually did read what you wrote above. It seems many of the links found by the Google searches are to university departments and faculties that are doing a substantial proportion, if not all, of exactly what you've described.