\documentstyle{article}
\begin{document}
\title{Benefits and advantages of an integrated
Mathematics and Computer Science degree.}
\date{December 1993}
\author{T.C. Hurley\\ Department of Mathematics, \\ University College,
Galway.}
\maketitle
\subsection*{Introduction}
Computer Science grew out of Mathematics - it is surely enough to
mention Babbage, Boole,
Hilbert, Von Neumann, Turing. On the other hand it is clear
that Mathematics grew out of Computation.
The two areas are intimately related. Strenuous efforts have been made ever
since computers were invented to separate Mathematics and Computer
Science. Modern techniques in both areas serve only as a reminder of
how much each can be dependent on the other.
\subsection*{Difficulties}
In schools, Mathematics is thought of as a ``closed '' subject whereas
Computer Science is thought of as a ``technical'' subject. Thus many creative
individuals are turned off Mathematics and Computer Science at an early stage.
A pure Computer Science degree is now considered in some quarters to be a
{\em purely technical} training and not a proper education for a
Scientist or an Engineer. One major employer is quoted
as saying ``I only hire Mathematicians and
Engineers -- Computer Science graduates do not know how to {\em solve
problems}''.
Engineering and Physical Science degree programmes insist on
a reasonable Mathematical background. This is not true for Computer
Science programmes and the graduate here needs this type of
background even more than an Engineer -- consider, as an example, the
situation where many Computer Science graduates are thrown into
work which involves {\em Field Theory}.
``Programming'' has been replaced by ``Software Engineering'' with some
emphasis on the `engineering' aspect. Software engineers need a broad
Mathematical Education. Computer Science graduates have no Mathematical
equipment in which to analyze what they are trying to do.
Hoare, a well-known Computer Scientist, in his inaugural address made the
following assertions:
\begin{itemize}
\item Computer programs are Mathematical expressions;
\item A programming language is a Mathematical theory;
\item Programming is a Mathematical activity.
\end{itemize}
Computer Science is dominated by the ``life-cycle'' which obscures the
Mathematical dependency. It should be generating new formalism, modeling
with formalism, constructing proofs and algorithms. It is stated that
software engineers do not construct theories but apply {\em methods},
thus arguing that it is a {\em closed} problem and that computer systems
now carry out mechanical methods. However the
methods come out of a theoretical understanding. Everything in software
engineering is
seen in terms of the final product and the theoretical context is overlooked.
There are great difficulties in attracting students to Mathematics
degrees, especially from those who come into Arts
or Science degree programmes with no specific subject in mind
(``undenominated'' programmes). We have to compete
with other subjects which are {\em perceived} to be more vocational,
are also perceived as {\em easier options }
and haven't the high fallout rate that honours Mathematics has.
Students of Mathematics lack {\em motivation},
have {\em inadequate preparation} and this contributes
to their subsequent subject choices.
On the other hand it it recognized that Mathematicians, when they do solve
problems, are unable to {\em communicate} their solution to others.
An integrated Mathematics and Computer Science degree will go some way to
rectifying many of these problems.
\subsection*{Common interests?}
What areas ought Mathematicians be interested in? In the software
development process, {\em validation} and {\em verification} are now
extremely important. ``Get the {\em right system} and get the {\em system
right}.'' The ideas of {\em modeling} and {\em proof} are emphasized
again and again.
To quote a person working in the industry: ``In the software
engineering process, the use of Mathematical
ideas requires more resources at the initial stages but the {\bf total}
resources are less and an {\em enhanced} product ensues.''
To be more specific, the following Mathematical ideas should play an important
part in the education of a software engineer:
\begin{itemize}
\item Formal methods
\item Modern logics
\item Parallel processing
\item Modeling, forecasting
\item Complexity
\item Computability
\item Encryption and coding
\item Statistics and probability ({\em Networking} is a probabilistic
entity).
\item Neural networks
\end{itemize}
\subsection*{Benefits and advantages}
It is nice to make a list so here goes! (Thanks to many articles and
talks from which these have been taken.)
{\bf Benefits of an integrated degree} (not necessarily in order):
\begin{itemize}
\item Volatile and exciting area.
\item Focused programme.
\item It still embodies {\em essence} of Mathematics when carefully
thought out.
\item Facilitates development of PSQs (personal skills and qualities)
through group and individual projects.
\item Vocational.
\item Accessibility to potentially good students.
\item Prepares potential school teachers in both Computer Science
and in Mathematics.
\item It is a laboratory based programme and can lead to better funding.
\item Modern applicable area.
\item Employment prospects for students are greatly increased.
\item Accessibility to funding agencies and politicians.
\item It leads to active applications and involvement by the student who
is encouraged to build his/her own system with great satisfaction.
\item The emphasis is on {\em abstraction} and {\em proof}.
\item It is not the {\em `` death of proof''} but a deeper understanding
of what ``proof'' is will ensue from experiment.
\item Students can see harder continuous Mathematics in a new light.
\item There is less emphasis on graduates as technicians and more
emphasis on Science.
\item The image of Mathematics and of Computer Science is enormously improved.
\end{itemize}
\subsection*{Employers' perspective}Where is Mathematics needed in
industry? Do employers
recognize that Mathematics is needed? Again we might ask:``Do employers and
colleagues within industry support Mathematical activity?''. These are
difficult questions and the answers are of course dependent on the
industry in question.
The level of Mathematical
activity in different industries varies enormously. If we look at the
worldwide context then we see that the industries
using Computer Science may be roughly bracketed as follows:
\begin{enumerate}
\item Engineering houses, Computer Manufacturers, Research Laboratories,
Scientific users (such as the
Meteorological Office).
\item Software Houses.
\item Commercial users. These could be subclassified as:
\begin{enumerate}
\item Utilities.
\item Manufacturers .
\item Finance institutions.
\item Retail outlets.
\end{enumerate}
\end{enumerate}
These are listed in order of acceptability of the Mathematical tradition.
The ones within 3.~in fact
have traditionally employed many non-graduates in their computing areas.
Those concerned with rigorous development also include the military
and data-security teams within commerce and finance.
These classifications are on an International basis and Ireland
has its own particular problems as a small open economy, with
manufacturing but little research and development. Our employers
also have the narrow view that graduates should be trained for a {\em specific
job} but overlook how things are changing rapidly and that a well-trained mind
with the ability to think and solve problems as and when they arise is
what is needed.
\subsection*{Where do the graduates go?}
There are now figures available from different countries as to where
Mathematics graduates get employment. The figures for Ireland
cannot compare as we have so few honours Mathematics graduates in
comparison to other countries - e.g. the UK has the order of 4000
Mathematics graduates each year, which, pro rata, would amount to about 350
graduates for Ireland. We are nowhere near this number. % and in 1991, 71
%(honours) Mathematics graduates were listed in HEA figures.
The British Sunday Times on 8/8/91 reports ``Britain
faces an acute shortage of Mathematicians''. If this is so, where does
this leave us? Many of our good Mathematics students go into
Engineering and the school culture is such that those good at Mathematics are
encouraged to apply there. Would those good at English be encouraged
to do a degree in, say, Accountancy?
Mathematics is not looked on as a career in itself
and nowadays additionally some of the
best Mathematicians are attracted into Business and Commerce. If they
are good at Mathematics and must pursue a career in business, why
isn't it pointed out that a degree in Mathematics and Economics is a much
better preparation?
\footnote{See the article by Joel Franklin on ``{\em Mathematical
Methods of Economics}'' in American
Math. Monthly, 90(4)(1983), 229-244. Among other things in this article
it is pointed out that seven of the previous twelve Nobel prizes in
Economics ``involved work that is heavily Mathematical''.}
In the UK, 26\% of Mathematics graduates\footnote{Interestingly,
the career booklet for Mathematical graduates
contains Computer Science as a subsection.} go into the
Computer Industry and 52\% into Finance. Of
the Mathematics graduates in Ireland that did {\em not} go on to further
study, 82\% (1991 figures) went into financial work and computing.\footnote{
Statistics on
graduate careers only give destination for the year after first
graduation.} Graduates with an {\em integrated}
degree would be much better prepared for careers in these areas.
\subsection*{Information Technology} One of the buzz-words at the moment
is Information Technology (IT). I, and I'm sure many others, are confused
at what exactly IT is. It can mean different things to different persons,
depending on whether you are a Scientist, Engineer,
Business person, Sociologist, Industrialist, Philosopher or Psychologist.
The EU (previously called the EEC and then the EC) has
classified IT under five headings. I am grateful to Pat Fitzpatrick for
this information.
\begin{enumerate}
\item Software Engineering or Knowledge-based Information systems.
\item AI (Artificial Intelligence).
\item VLSI (Very Large Scale Integration).
\item Communications.
\item Human Interface.
\end{enumerate}
Of these only one, the Human Interface does not require a substantial
Mathematical background -- perhaps. Where does Mathematics come into these
areas? Pat Fitzpatrick again has some of the answers.
{\em Algorithm design} is fundamental for
VLSI, {\em logic design, LISP} for AI and {\em Coding theory,
cryptography, digital signalling} are all areas of importance
in Communications. The importance of Mathematical ideas to Software
Engineering has already been dealt with. Even within the Human Interface,
the ideas behind {\em security} and {\em authentication} are now
increasingly important.
\subsection*{Computer Algebra \footnote{Computer Algebra is also often
referred to as {\em Symbolic Manipulation}} systems}
It is my opinion that it is inconceivable that a graduate in Mathematics,
and I would argue now a graduate in Computer Science,
would nowadays not have had experience of Computer Algebra systems. It is
like saying that a Chemistry graduate never did any laboratory work! A
graduate in many years time will continue to use Mathematics if he/she
realizes that some of the hard calculations and theoretical background,
which she/he has probably forgotten, can be done by machine.
Computer Algebra systems are likely to become as useful to Scientists and
Engineers as word-processors and data-bases have become to all.
Cohen remarks: ``A
mediocre Mathematician with a computer might be able to simulate the
creative powers of a top notch Mathematician with pen and paper''. How
much more could a top-notch Mathematician produce?
Packages like MAPLE, MATHEMATICA, REDUCE, CAYLEY
(to be replaced by MAGMA soon), GAP, AXIOM should be,
in fact {\bf must be}, integrated within our courses. From our
experience it is much easier to integrate these within an integrated
Mathematics and Computing degree, where an element of laboratory and
experimental work already exists.
Generally speaking a package like MAPLE, REDUCE or MATHEMATICA would go
well with Analysis-type courses or Applied/Mathematical Physics courses,
and one of CAYLEY (soon to be MAGMA), GAP or maybe
AXIOM\footnote{AXIOM is a package which has great potential, especially when you need
to build your own abstract system,
but is not available for many machines yet, is expensive and difficult to
use.} should be integrated within abstract Algebra courses such as Group
Theory, Field Theory, Coding Theory or even Homological Algebra.
Also MATRIX, for Linear Algebra and Linear Programming, is an
excellent CAL (Computer assisted learning) package which goes down well
with students. In addition, MACTUTOR, for MACs, is an excellent all-purpose CAL
package.
Use of Computer Algebra does however tend to increase the workload on
the instructor and
many Mathematics Departments and Colleges are as yet unwilling to
recognise this fact and indeed do not recognise the importance of considering
Mathematics as a laboratory-based subject.
Leibnitz stated: ``.... it is unworthy of excellent men to lose many
hours like slaves in the labour of calculation, which could safely be
relegated to someone else if the machine were used.''
\subsection*{Syllabus}
There are various suggestions as to what should be included in a
syllabus for a joint degree. Not all areas can be covered and choices
must be made. What is important is that a good {\em Scientific} training
in {\em both} Mathematics and Computer Science should be an essential part
of any programme. Some might argue
that a language and/or business skills and/or placement should be part of
the programme but incorporating two major subjects does not leave much
time for anything else, even within a four-year course. Projects in all
years will develop PSQs.
There can be {\bf core} courses and options to suit individual tastes.
It is important to note however that this an {\em integrated} programme
and that although some of the Mathematics and Computer Science courses
are independent, the programme should be drawn up by reference to
common areas of interest and dependency. It is not a
matter of simply combining the subjects as in a traditional
two-subject degrees.
To spell out a full syllabus would be pointless here but some
suggestions on related areas that could be included are given below --
fundamental courses are in {\em addition} to these.
Within Mathematics, the importance of {\em Discrete Mathematics} to
Computer Science is fundamental and has now been
recognized as such but this is only part of the picture. Discrete
Mathematics should include algorithms, recursive function theory, Boolean
algebra, logic and circuit design. Analysis courses are also an important
element and must be compulsory in the early years. A good idea which works
well at UCG is to have courses on Metric Spaces {\em and} Fractal
Geometry. Other ideas to think about: Have a course in Number Theory {\em
and} Cryptography; include Coding Theory with Field Theory, and semigroups and
machines with a Group Theory course. Category
theory:``Categories themselves are the models of an essentially algebraic
theory and nearly all derived concepts are finitary and algorithmic in
nature'' (John Gray in {\em Computational Category Theory}). This is all
good Mathematics.
Numerical Analysis cuts across both areas and could be included either
within the Mathematics core or within the Computer Science core areas.
In Computer Science, courses on Programming, Operating Systems,
Networking and Communications, Data Bases, Architecture, Modeling,
Algorithms, Computability, Complexity, Graphics, Parallel Processing,
Artificial Intelligence and logical aspects of Computing,
would appear to be fundamental. Consideration should also be given to
courses on Automated Reasoning and Neural Networks which would
fit in well with the
Mathematics. In general, the Computer Science element in a
joint programme should be directed more to {\em software} considerations .
Everyone has their own favourite language but at the risk of upsetting
some persons I would suggest that C and C++ are the most useful
({\em and} Mathematical oriented) languages now used in Science and
Industry. This also fits in
well with Operating Systems as many of these were originally written in
C.
\subsection*{Conclusion}
The programme suggested is what is
needed and will
train {\em both} Mathematicians and Computer Scientists for worthwhile
careers. It will also satisfy the needs of Industry and the Commercial
world.
Both subjects have much to learn from one another. The debate will continue!
\end{document}