227A Syllabus
This course introduces to the student basic concepts of programming for 2D graphics. The objective is to teach to student with little or no prior experience in programming the basics theories and techniques for developing simple graphics applets/applications. During the course students will asked to solve simple programming exercises that eventually will be tied up into a graphics system that they can use as a background for developing thesis or studio tools. Specifically, in a one quarter period student will learn how to write code in Java for
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 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) will introduce students to the basics of Java language and 2D graphics. The winter quarter course (227B/142/242) will get into 3D environments, 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 three assignments, one exam, a final project, short quizzes, and class attendance/participation. The breakdown is as follows:
Basic transformations 10%
User Interface 10%
Simple I/O manipulation 10%
Midterm exam (20 questions) 10%
Final Project 50%
Quizzes (3-4 questions) 10%
Some of the lecture classes will include short quizzes, in the form of 3 or 4 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 your T.A. to setup an account.
Purchase a few zip diskettes for backups. These are available at bookstores and computer stores around the town. You should always make backups.
To complete the class exercises the following hardware/software/netware will be used:
Hardware:
Pentium II (or more), 32+ MB RAM, 2+ GB Hard Disk, SVGA monitor
or
Mac G4 32+ MB RAM, 2+ GB Hard Disk, high resolution monitor
Software:
Windows NT or 98, Jbuilder or Symantec Visual Café.
Netware:
Ethernet connection, Netscape, FTP
Required textbooks for the course is (only):
The book should be available at the LuValle UCLAstore.
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://www.aud.ucla.edu/caad, the username is arch226 and the password is cda123.
RECOMMENDED READINGS
The following is a list of books that will help to take a look: