| Teaching Solid Modelling | 
2.  Teaching haphazardly extended geometric modelling
Adrian Bowyer
Introduction
I propose to take a narrow view of teaching: teaching happens in universities. I would like to take a narrow view of solid modelling, too. But I will accommodate the fact that lots of useful CAE software does not, in fact, represent solids unambiguously or completely; I shall really be writing about the teaching of haphazardly-extended geometric modelling. Hence the title.
Why teach geometric modelling?
This question has an obvious precursor: Is geometric modelling important? I think that the answer to this question must be: Only just. It is only in the last few years that geometric modelling has come to have any real industrial impact at all, and its use is still restricted to a minority of manufacturing companies. Such impact as it has had is a result of the power of ubiquitous IBM-compatible PCs growing to the point where geometric modelling is just about tractable on them.
Given the newness of this impact, it is sobering to think that geometric modelling research has been going on for about thirty years and was from its very beginnings predicated upon the down-to-earth need to solve real design and manufacturing engineering problems. This perhaps contains a lesson for the advocates of 'near to market' research.
However, despite its currently low level of industrial take-up, the use of geometric modelling is clearly going to grow. Is this a reason for teaching it?
Here a common didactic split becomes apparentfor example there are two ways to teach people about cars: you can teach them thermodynamic cycles and the nature of sheet-metal forming, or you can teach them to drive. Similarly there is an obvious utility in teaching people how to use geometric modellers, given their anticipated industrial growth. Is it also worth teaching people how they work and how they are put together? This brings us to....
Who should be taught geometric modelling?
There are three sets of people who need to know how geometric modellers work:
Do new modellers need to be created? Clearly yes, because all the current ones contain bugs which, in almost all other areas of software engineering, would be unacceptable. This is not to say that poor programming standards have been used when geometric modellers have been written; it just reflects the fact that the problem is a hard one-much harder than, say, writing a compiler. So I can quote the cliché: more research is needed, and someone's got to do it.
Clearly modellers need to be maintained, too. Both this and the previous requirement are arguments for teaching geometric modelling to at least some software engineers.
What about teaching users how modellers work?
It is regrettable that the trend in education is away from critical understanding and enquiry, and towards vocational utility. This tends to mean that even engineers treat some of the systems that they specify and use as sealed boxes that perform an externally known function. When the boxes cease to perform and start to emit smoke, those engineers then have to call in the meta-engineers, and so on. This may be a good job-creation strategy, but the resulting lack of deep understanding leads to all sorts of difficulties, inefficiencies, and lost opportunities.
In fact, all engineering is understandable by a single well-educated and intelligent individual, and a very small part of that understanding should be how one of the minor engineering tools-geometric modelling-works.
So, to summarize, we should be teaching two sorts of geometric modelling course:
This division of people corresponds with no grouping of students into courses of study known to me. However, in the UK at least, there will be rapid modularization of courses over the next few years which should make the geometric modelling teaching implied above accessible to all who need it. Other countries, notably the USA, have preceded the UK as far as degree course modularization is concerned.
The only remaining administrative problem concerns the accreditation of courses by professional institutions. These institutions must allow students some ad lib selection of courses outside their immediate field of study, particularly in their final years, without this affecting the accreditation of the students' resulting degrees. This would obviously be a good thing in general, and in particular it would facilitate the teaching of geometric modelling in the pattern I have just described.
How should geometric modelling be taught?
The arguments above specify two courses: an introductory one, and an
advanced one.  In order to give a basis for discussion, I have decided
to end this document with the syllabusses for two geometric modelling
options offered to students of the Bath University Master of Engineering course
in Mechanical, Aeronautical, and Manufacturing Engineering.  These contain some
overlapping matter, because they will be taught to different but overlapping
groups of students.  These syllabusses are not intended to be definitive,
neither do they quite fall into the introductory and advanced pattern implied
by what I said above, but I think that they do contain a pretty complete
summary of what should be in both my proposed courses.
 ADVANCED COMPUTER AIDED DESIGN
 Module Aims:
 To provide understanding of the ways in which computer-aided design
(CAD) systems operate and how they can be applied in the various stages of the
overall design process.
 After taking this course the student should be able to:
 Appreciate the different types of CAD modelling system and the
application of these to the overall design process.
 Topics:
 Computer aids for design and their relation to design needs.
 Method of assessment:
 Examination/Coursework
 3 hours per week November 1995
 GEOMETRIC MODELLING
 Module aims:
 To introduce the ideas used in fully three-dimensional CAD/CAM
systems and to give the students hands-on experience in writing software for
such systems.
 After taking this module the student should be able to:
 Understand the fundamental concepts of Geometric Modelling and the
algorithms and data structures used in it.
 Topics:
 Wire-frame and other precursors to geometric models.
 Methods of Assessment:
 Examination & Coursework
  3.0 Hours per week November 1995
Module Number 34/27 Year 3/4
Understand how geometric entities are defined and manipulated.
Understand the various ways for interacting with CAD systems.
Analyse the general CAD requirements of a company.
Suggest suitable types of system.
Appreciate how CAD techniques can be applied to different application areas.
System configurations.
Basic two- and three-dimensional draughting entities, input techniques,
manipulation, storage within system.
Transformation, views, model spaces.
Free-form curves: uses, mathematical formulation, Bézier and B-spline
forms, properties.
Free-form surfaces.
Types of geometric modeller.
Company evaluation, installation, operation.
Graphics interface languages, user interface, parametrics.
Application of CAD techiques in automotive, aerospace and other industries.
Data exchange.
Module Value 1.5
Module Number 34/46 Year 4
Understand the implications for efficiency and the domain of those
algorithms.
Write simple programs for such things as ray tracing to produce
three-dimensional graphics.
Boundary-representation models.
Set-theoretic (or CSG) models.
Parametric curves and bi-parametric patches.
The Bernstein basis.
Bézier curves, B-Splines, and NURBS.
Implicit solids and surfaces.
Non-manifold geometric models.
Feature recognition.
Machining geometric models.
Rapid prototyping and geometric modelling.
The medial-axis transform and FE mesh generation.
Blends and fillets.
Minkowski sums.
Kernel modellers, APIs, and GUIs.
Rendering geometric models.
Numerical accuracy problems in geometric models.
Integral properties of geometric models.
Volume visualization.
Procedural shape definition.
Module Value 1.5
More details of this course can be found at: http://www.bath.ac.uk/~ensab/G_mod/FYGM