16.01.2013 Views

Downloading

Downloading

Downloading

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

VIII Preface<br />

Pedagogical Structure<br />

As authors, we assume that you, our readers, might be scientists and engineers<br />

who have learnt “a bit of Java” and who wish to teach yourself enough<br />

to program Java (or C# TM or other, similar languages) for your own work.<br />

You might be students who are converting to information technology from<br />

a science or engineering background or you might be information technology<br />

students who wish to learn about e-Science applications. You might even be<br />

computer science professionals who wish to learn more about e-Science from<br />

a requirements perspective. We think that this book is ideally configured for<br />

self-study. If you follow the text in, roughly, sequential order and you attempt<br />

to code each revision of the software before looking at our “answers”, then<br />

you will pick up some good programming skills and you will really understand<br />

the patterns that we have used.<br />

Substantial parts of the material in this book have been used to teach<br />

courses in e-Science since 2001. It is positioned as a second programming<br />

course for graduate, conversion students which is roughly equivalent to a second<br />

year course for information technology majors. But, in fact, the material<br />

can be used quite flexibly depending on the interests, and programming background,<br />

of students. The overall structure of a course would comprise two<br />

parts:<br />

• Part I:<br />

Students learn relevant parts of the Java TM API and build up a GUI interface<br />

to a server which contains waveform data. Chapters 1-6 of the book<br />

provide a number of (hopefully) entertaining examples and exercises which<br />

all work towards constructing this initial code, which we call PreEScope.<br />

We aim to provide enough background to enable students to build the<br />

software on their own. It is best if several of the steps in this part of the<br />

software process are completed by students in laboratory sessions. Additional,<br />

small laboratory exercises are suggested in order to inspire students<br />

to experiment creatively with new parts of the Java API. Several classes<br />

need to be provided as “black boxes” to connect and send information to<br />

the MDSplus database. Some of the graphics classes, particularly to draw<br />

and annotate the graph axes, would be best provided to students rather<br />

than being written from scratch. In the past, the step roughly equivalent<br />

to that from PreEScope3 to PreEScope4, has been set as a programming<br />

assignment.<br />

• Part II:<br />

After a theoretical introduction to software engineering and design patterns,<br />

students then proceed to refactor their code from the first part of<br />

the course. The refactoring steps are described in Chapters 8-19 of this<br />

book. There is much more material here than can be fitted into a single<br />

semester course together with Part I, so a judicious selection is needed.<br />

It is very important that students understand the initial refactoring into

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!