[comp.software-eng] CS Education/Maintenance/Programmer Licensing

PAAAAAR@CALSTATE.BITNET (11/14/89)

I taught "Theory" in a University in England from 1971 through to 1978
but I've been fighting for practical training for Computer Professionals
for my whole career (say since 1970 ...) with mixed success.
Here are some grossly over-general conclusions.

(1) You can not teach "real" engineering in an undergraduate class.
Real projects take too long. They involve team work and creativity.
Real problems are not be defined in advance, and then graded and forgotten.

(2) The most realistic training is real work.

In the UK some universities require one or more "industrial
periods" in which student is employed by a company for 12 months to 6 months.

The grading was simple - without completing these periods satisfactorily
the student could not graduate.

In the US an equivalent is an "intern" or "co-op" program. Different
Schools have different rules. In one scheme an intern registers in a class
to work under the direct supervision of a "real" employer (company,
charity, department). Grading is Credit/No Credit. Whether or not
the intern is paid for work that receives credit or not causes controversy.

(3) Students with co-op/sandwich/intern work as part of the curriculum are
more employable than those who have not been in class.
They typically graduate to earn more money outside of academe than inside.
A company can hire graduates that it has helped train before they graduated.
Ask your local colleges if they they have a co-op/internship/sandwich program
.

(4) Some academic bureaucrats are not permitting the development
of new CS degrees and are require CSAB Accreditation.
Some schools consider themselves to be setting the
standard and above accreditation. Whatever - Standard CS programs include
a year or two of physics and calculus and NO practical experience. They fit
into scientific  environments quite well. Accredditted
CS programs have to hire graduates of these programs. They (in
general) will tend, therefore, to be inexperienced.

(5) The technology of undergraduate teaching is not realistic. Most
undergraduate programs do not have enough of the equipment found
after graduation. An exception is where a company has "adopted"
a department - typically with alumni donating equipment and recruiting
graduates from it.

(6) There exist several techniques/methodologies that are used in practice
but are not understood well enough in academe to be taught. As a result
the CS teachers do not teach them to students; who graduate to teach CS.

(7) Science should not be confused with Engineering.
A scientist has made a breakthrough if an experiment does something
unexpected (Kuhn/Popper), but an engineer is in hot water if a product
does something unexpectedly bad!  The USA Science degree is aimed
at producing scientists (surprise:-).

***** We need to separate SOFTWARE ENGINEERING from COMPUTER SCIENCE.

-------------------------------------------------------------------------
Richard J. Botting,  Department of computer science,
California State University, San Bernardino,
5500 State University Parkway, San Bernardino CA 92407
PAAAAAR@CCS.CSUSCC.CALSTATE
paaaaar@calstate.bitnet
PAAAAAR%CALSTATE.BITNET@CUNYVM.CUNY.EDU

---------------------------------------------------------------------------
Disclaimer: This is not the opinions of CSU or my CS Dept
---------------------------------------------------------------------------