Last Updated: 8-10-99

ME 320, Computer Graphics - Fall 1999


Taught by:
Robert J. Ribando
Department of Mechanical and Aerospace Engineering
School of Engineering and Applied Science
University of Virginia

Meets: MWF at 10:00 a.m. in MEC 215 (Computer Studio)
Schedule Number: 32976


Course Purpose:

This course is intended to provide both theory and practice in computer graphics and geometric modeling. The former will be largely from the text listed below and cover two and three dimensional transformations, visual realism (shading, coloring, hidden line removal, etc.), curves, surfaces and general engineering applications. The approximate distribution of textbook coverage is given at the bottom. We will also study data graphics, that is, the display of quantitative information using modern computer graphics. In the process of learning the concepts of computer graphics this semester, you will become a good VB-6 programmer!


Text:

The required text is Computer Graphics, C Version, 2/e , by Donald Hearn and M. Pauline Baker, 1997, Prentice Hall, ISBN 0-13-530924-7. This book does include code snippets in C, which probably is not the programming language that most of you will want to use. In recent years most students have chosen to work in Visual Basic. There are many good books on VB; I have also ordered a limited number of copies of Learning to Program with Visual Basic, by Patrick McKeown, Wiley, 1999, ISBN 0471-19814-5. All the examples discussed in this book are indeed business applications, but with it (as well as with several other VB books I have found) you get a copy of Visual Basic 6.0, Working Model Edition. This is a full version, but dies after a year. Visual Basic 6 (and Visual C++) will be available in the ITC classrooms (including ours), the public laboratories (e.g., Catlin Lab), the MANE Design Lab and the CS Labs, so there really is no need for you to buy it. I have found the book Mastering Visual Basic 6 by Evangelos Petroutsos, Sybex, 1998, (ISBN 0-7821-2272-8) a very helpful reference. It covers substantially more graphics than any other VB books, but its shear bulk means you wouldn't want to carry it to class with you.


Class Attendance and Decorum

Students are expected to attend all classes, and attendance will be taken. A point will be deducted from the final grade of any student for each unexcused absence in excess of three. In extreme cases of habitual absence or tardiness, the student will be dropped from the course. Between 10 and 10:50 the computers in our classroom are to be used only for course purposes - and then only when you are instructed to. This especially means no e-mailing, netsurfing, working on other courses, etc. The penalty for inappropriate use of the computers is the same as for habitual tardiness or absence.


Computer Assignments

We will be doing a mix of projects at a rate of about one every week and a half (faster than that at the beginning of the semester, slower at the end). The first two will involve use of the graphics capabilities within Excel. The remainder of the assignments will involve programming in a high level language.

You may do the programming assignments in whatever high level language you choose, but last year most students chose to work in Visual Basic. A few who had previously learned Java, perhaps through a summer job, did their assignments in that. We will spend some class time learning both VB and Visual Basic for Applications (VBA), a subset of VB that is available within the Excel spreadsheet . VB-6 and Excel are available on the server in the ITC classrooms and Catlin Lab, as well as in the MANE Design Lab and the CS Labs. If you do not already have one, you will definitely want to establish a home-directory account for yourself.

A listing of all code you write will normally be a part of each homework submission, but to save paper, please exclude any code I provide you. Homeworks and handouts not picked up during class will be found in the top section of the plastic file on the wall next to my office door (MEC 310).


Final Project

Each student will present and submit a final project. This project may involve the development of a program in VB or perhaps use of AutoCad or some other graphics package. This is an opportunity to use your own creativity to make something unique. It could involve the design of a piece of equipment or of a process. You might use computer graphics to make a technical presentation. Perhaps you could look back to some other course you have taken and find a way using computer graphics to make a point that wasn't so clear using a conventional chalk and blackboard approach. Maybe you could animate a time-dependent process. This project could be something that eventually will be part of your senior thesis and it should definitely be something you would be proud to show a potential employer. No project that is simply "artwork" will be accepted, although technically innovative artwork is acceptable. The project must have technical merit. To ensure that the project you wish to do is acceptable, I will show you some of the best projects from previous years, and you will submit a one-page description of your proposed project no later than Nov. 6. Toward the end of the semester there will be no regular homework assignments so that you can devote your entire attention to your final project.


Honor System

This is an elective course, and you are assumed to have signed up for it because you want to learn as much as you can about computer graphics. That being the case, I will assume that any work you turn in is an accurate indicator of your own skill and mastery of the subject. You are encouraged to work on your own to the greatest extent possible, although collaboration with other students may at times be educational and acceptable, (and in the case of a computer package nearly impossible to do without). Any significant assistance received from another student or the instructor should be acknowledged in writing on the project submitted. This is a matter of personal honesty as well as proper professional ethics.


Examinations

There will be two hour-long quizzes covering theory, but no final exam.


Grade

2 hour-long quizzes: 30%
Home works: 30%
Final project: 30%
Class participation: 10%

There are plenty of features in both Visual Basic and VBA that I am not an expert on and, in fact, many that I haven't even tried. That being the case, I strongly encourage any student to step up in class and give a demonstration! Such meritorious service will be acknowledged in the Class participation grade.


Office Hours

You are welcome to visit (310 MEC), e-mail (rjr@virginia.edu), fax (982-2037) or call (924-6289) anytime. My other course this semester is on TV at 3:30 on Mondays and Wednesday, so I will be less enthusiastic about seeing you on those afternoons.


Prerequisites

ENGR 160 (Engineering Concepts) and either CS 182 or CS 101 (or equivalent) are prerequisites to this course.


Communications

Any materials not provided in class will be posted to the class website. It is your responsibility to check that regularly.


Impairments

Any student who feels that he or she may need an accommodation because of an impairment should come see me.


Final Presentations

Presentations of the final project (see above) will be made during the time normally allotted to the final exam, which is Thursday, December 16, 1999 from 9:00 to 12:00.


Assignments, Materials, etc.

R. J. Ribando (home)


Weekly Schedule


   Below are reading assignments for the semester. Particularly towards the beginning of the course while we are learning some VBA and VB and their graphics features, what we do in class may not necessarily correspond closely to the outside reading. Also, this fall is our first time with this text (what we used in past years is out of print), so the times actually allotted to each topic may not match perfectly.

Week Date Class  Assignments  
Sept. 1  Ch. 1 - Introduction
Sept. 3 Ch. 1 
2 Sept. 6 Ch. 2 - Overview of Graphics Systems 
Sept. 8 Ch. 2 -   
Sept. 10 Ch. 3 - Output Primitives   
3 Sept. 13 Ch. 3 
Sept. 15 Ch. 4 - Attributes of Output Primitives. 
Sept. 17 Ch. 4 - . 
4 Sept. 20 Ch. 5 - Two-Dimensional Geometric Transformations
Sept. 22 Ch. 5 -
Sept. 24 Ch. 5 -
5 Sept. 27 Ch. 6 - Two-Dimensional Viewing
Sept. 29 Ch. 6
Oct. 1 Ch. 6
6 Oct. 4 Ch. 7 - Structure and Hierarchical Modeling
Oct. 6 Ch. 7
Oct. 8 Ch. 8 - Graphical User Interfaces and Interactive Input Data
7 Oct. 11 Ch. 8
Oct. 13 Ch. 9 - Three-Dimensional Concepts
Oct. 15 (Fall Break)
8 Oct. 18 Ch. 10 - Three-Dimensional Object Representations 
Oct. 20 Ch. 10
Oct. 22 Ch. 10
9 Oct. 25 Ch. 10 -  
Oct. 27 Ch. 11 - 3-D Geometric and Modeling Transformations
Oct. 29 Ch. 11
10 Nov. 1 Ch. 11  
Nov. 3 Ch. 11 -  
Nov. 5 Ch. 12 - Three Dimensional Viewing  
11 Nov. 8 Ch. 12
Nov. 10 Ch. 12 -
Nov. 12 Ch. 12 -
12 Nov. 15 Ch. 13 - Visible Surface Detection Methods  
Nov. 17 Ch. 13 -  
Nov. 19 Ch. 13 -  
13 Nov. 22 Ch. 14 - Illumination Models and Surface-Rendering Methods
Nov. 24 (Thanksgiving Break)
14 Nov. 29 Ch. 14
Dec. 1 Ch. 15 - Color Models and Color Applications
Dec. 3 Ch. 15
15 Dec. 6 Ch. 16 - Computer Animation
Dec. 8 Ch. 16 
Dec. 10 Ch. 16