Data Structures and Algorithms
with Object-Oriented Design Patterns in Java
Bruno R. Preiss
B.A.Sc., M.A.Sc., Ph.D., P.Eng.
Associate professor
Department of Electrical and Computer Engineering
University of Waterloo, Waterloo, Canada
David Vernon is the Coordinator of the European Network for the Advancement of Artificial Cognitive Systems and he is a Visiting professor of Cognitive Systems at the University of Genoa. He is also a member of the management team of the RobotCub integrated working on the development of open-source cognitive humanoid robot.
Over the past 27 years, he has held positions at Westinghouse Electric, Trinity College Dublin, the European Commission, the National University of Ireland Maynooth, Science Foundation Ireland, and Etisalat University College.
He has authored two and edited three books on computer vision and has published over eighty papers in the fields of Computer Vision, Robotics, and Cognitive Systems. His research interests include Fourier-based computer vision and enactive approaches to cognition.
He is currently a professor at Etisalat University College in Sharjah-United Arab Emirates, focusing on Masters programs by research in Computing fields.".[1]
Implementation of GPU (Graphics Processing Unit) that rendered triangle based models. Our goal was to generate complex models with a movable camera. We wanted to be able to render complex images that consisted of hundreds to thousands of triangles. We wanted to apply interpolated shading on the objects, so that they appeared more
smooth and realisitc, and to have a camera that orbitted around the object, which allowed us to
look arond the object with a stationary light source. We chose to do this in hardware, because our initial implementation using running software on the NIOS II processor was too slow. Implementing parallelism in hardware is also easier to do than in software, which allows for more efficiency. We used professor Land s floating point hardware, which allowed us to do calculations efficiency, which is essential to graphics.
In Helsinki during a visiting lecture, an internationally well-known professor in communica-
tionssaid,‘Inthecommunicationssocietywehavemanagedtoconvertourproposalsandideas
to real products, not like in the control engineering society. They have very nice papers and
strong mathematics but most of the real systems still use the old PID controllers!’. As our
background is mainly in control as well as communications engineering, we know that this
thought is not very accurate. We agree that most of the practical controllers are analog and
digital PID controllers, simply because they are very reliable and able to achieve the required
control goals successfully. Most of the controllers can be explained in terms of PID. The
reasons behind this impressive performance of PID will be explained in Chapter 2.
As a student I did my best to avoid text books – a strange statement for a professor to make and one that
I should clarify before you put this book down; I did my best to avoid text books that did not help me.
The first edition of the book was one of the elements of my habilitation (a quali-
fication above a Ph.D., which is a necessary step for obtaining the title of a
professor in Poland and other European countries), and as a result it was subse-
quently very carefully reviewed by four reviewers. The habilitation was a success.
Using the insightful comments from my reviewers, I have improved the current
version and eliminated some typographic errors that were initially overlooked.