Arch 227B/Design
C142/Design 242:


![]() |
[Winter
2001] Mon and Wed 12:30
- 2:00pm CDA Lecture Room
[Instructor]: Kostas Terzidis 1124D Perloff Hall tel.
825-8004
[E-mail]: kostas@ucla.edu
[Class Notes]: http://www.cda.ucla.edu/caad
[Prerequisites]: Arch 227A or knowledge of Java language
T.A.

{SCHEDULE}
[Week1]:
Java basics review:
·
How do we compile, debug, archive, include libraries, setup.
[Week2]:
Projection systems:
·
What is projection, 3D space, perspective and how to setup
graphics and screen


[Week3]:
Object creation/internal representation:
·
How do we represent a point, segment, face, solid, hole, and
group as classes.
[Week4]:
Transformations:
·
What are matrices and how do we use them for translation,
rotation, scaling or reflection.
[Week5]:
User interface:
·
How to create graphics user interfaces (GUIs) using working
plane, snapping, zoom, and pan.
[Week6]:
File I/O:
·
How to stream data over operating systems or networks and
how to read and write DXF and VRML file formats.


[Week8]:
Topological editing/morphing:
·
How do we alter the geometry and topology of points, faces,
objects and groups.
[Week9]:
Texture mapping:
·
What is an image and how to map it to a polygon in 3D space.
[Week10]:
Simple 3D animation:
·
What is multitasking and how to use threads to create
real-time animation using parallel processing.
·
3D object internal representations
·
Geometric and topological editing operations
·
3D transformations and projections
·
Graphic User Interface under a browser
·
Basic rendering algorithms
·
Basic DXF and VRML file input/output
Java
has been chosen as the development language for its simplicity, portability,
and its new features such as networking and threading. The course material is presented in the form
of lectures and labs. The lectures
cover theory topics and their objective is to give the basic concepts and the
solution methods. The lecture topics
are presented to the student in the form of slide shows or hands-on
presentations. The labs are aimed to
help student solve the exercises. The
exercises are designed to do two things: make the student solve a problem
within the context of a larger problem (i.e. code within code) or to develop a
method of solving a problem completely as a new piece (i.e. addition to
existing code). There will be a midterm
and (maybe) short quiz questions intending to establish and re-iterate concepts
and methods taught in the lectures.
The course is part of a three-course
sequence. The first one (Fall)
introduced students to the basics of Java language and 2D
graphics.
The winter quarter course (227B/142/242) gets into 3D
graphics, rendering, and simple real-time
animation. Finally, the last part of
the sequence (227C/143/243) will get into the physical environment introducing basic
robotic manipulation and feedback
systems. Here is the story:
227A/241/141 2D
Graphics in Java
227B/242/142 3D Environments in Java
227C/243/143 Basic Robotics: things that think
//******************************************
COURSE REQUIREMENTS AND GRADING
Students are expected to attend the lectures and participate
in discussions. The grade for this
course will be based on four assignments, one midterm exam, short quizzes, and
class attendance/participation. The
breakdown is as follows:
Assignments() {
ModelCreation() = 10%
BasicTransformation() = 10%
UserInterface() = 20%
finalProject() = 40%
}
Exams(){
midterm[20 questions] = 20%
}
Some of the lecture classes will include short quizzes, in
the form of 5 questions requiring short answers or explanations of a couple
sentences or so. These quizzes will
cover conceptual and technical issues relating to the development of software
or theoretical topics explained during previous lectures.
The student is always expected to develop software
critically, pointing out the advantages and disadvantages of the tools used and
comment on their suitability to the task to be performed. Class discussions and presentations will
focus on these issues.
//*****************************************
REQUIRED MATERIAL AND READINGS
Each
student will be required to open a CDA account.
The
CDA account will give Internet access and a 40 MB storage space. Ask Paul Phillabaum to setup an account.
Purchase
a box of ten High Density 3.5-inch diskettes.
These are available at bookstores and computer stores around the
town. You should always have at least
two disks in the lab to make backups.
ALWAYS save often and back up your work.
To
complete the class exercises the following hardware/software/NetWare will be
used:
Hardware:
Pentium
500 (or more), 128 MB RAM, 10 GB Hard Disk, SVGA monitor
or
Mac
G4, 128 MB RAM, 10 GB Hard Disk, high
resolution monitor
Software:
Mac
OSX or Linux or Windows NT or 2000, TextPad (free at www.textpad.com), JDK 1.3,
OpenGL, and FormZ
Netware:
Ethernet
connection, Netscape/IE, FTP
Required textbooks for the course are:
·
Java2
How to Program by Deitel and
Deitel, Prentice Hall 1999
·
Computer
Graphics by Hearn and Baker,
Prentice Hall, 1997
The books should be available at the UCLA bookstore. A partial list of readings and resource
texts is included in the "Recommended Readings" section of this
syllabus. A series of Class Notes will
be available on the Internet. The
address is http://cad.aud.ucla.edu/ and
the username is arch226 and the
password is cda123.
//*****************************************
RECOMMENDED READINGS
The following is a list of books and articles that will be
discussed in class and will help:
·
Foley, Van Dam, Feiner, and Hughes, Computer Graphics: Principles and
Practice, Addison-Wesley, 1997
·
Kerlow, Computer Graphics, Van Nostrand
Reinhold, 1997
·
Kernighan and Pike, The Practice of Programming, Addison
Wesley, 1999
·
Flanagan, D., Java in a Nutshell, O'Reilly, 1999
·
Kostas Terzidis,
Computer Concepts for Designers and Architects (can be purchased at the Course Reader Material at
1141 Westwood Blvd for $18.25).
·
Kostas Terzidis, 2D
Graphics in Java (can be purchased
at the Course Reader Material at 1141 Westwood Blvd for $15.00).