Assignments, COM1370 W98, Prof. Futrelle
Machine problems,
general guidelines
- You will receive the maximum credit if it is clear that you have read
the Toolbox references, online and on Reserve, and created interesting
and well-structured programs, well-commented. Some points to keep in mind:
- All work must be done in MetroWerks Code Warrior Pro on Macintoshes
(or in MCL).
- All assignments are due the beginning of class, else you lose
points. (See point 7 below.)
- Your comments should tell why something was done and what concept
is illustrated. Don't comment trivial and obvious code. Don't do all comments
line-by-line, that is, there should be some comments at the beginning of
the entire source file, some associated with an entire function or data
structure definition,and some at important lines, e.g., conditional blocks,
and occasionally, for individual lines.
- When you use a technique you read about or saw somewhere else, mention
the source of the idea in your comments. Your job is not just to make things
"look good", but to use the various ideas and algorithms you're
learning in the course.
- In laying out graphics, it is tempting to use lots of integers to specify
locations. This is a mistake. It makes your code very difficult to read
and understand and very hard to change (and it will really reduce your
grade). Instead, use parameter variables. For example, in designing a face
you might use the diameter of the eyes as a basic unit of measurement,
call it faceunit, and set it to say, 20 pixels, about 1/3 of an
inch. Then all other dimensions in the face would be multiples of this,
e.g., faceradius = eyespacing = 4 * faceunit, etc.
- If you work with someone else on your project, you must do your
own work on the final version and it should be different from
your partners'. If you do work closely with someone else then you must
send email to me explaining what part was yours and you must carbon
the mail to your partner(s), so everyone will agree on who did what.
- No excuses are accepted for, "printer down", "my
only floppy got messed up", "machine crashed", because you
should use the following strategy: From the beginning of a project
, make sure that your source file has comments at the beginning that says
what it is, what it's about, who you are, etc. Also, give your files sensible
names, such as "Smith1370PA3.cp". Print out a copy of whatever
you have early (days before it's due). Continue to update and print a copy
every so often. Then, the day it's due, even if all systems are down, you'll
have something to hand in. Also, use at least two floppies with copies
of your code on it. Always copy your code to the hard drive to work on
it, and back up often to the floppy as you work (how many minutes (hours?!)
of work do you want to have to do over again if the system crashes?).
- Hand in a Mac floppy and a hardcopy of your sources, and hardcopies
of any other required material. I'll give you envelopes in advance
to hold the disk and folded hardcopy. Put your name, and "COM1370
W98" on the outside, as well as what assignment it is (cross out the
old one to update). The disk, disk name, and all printed material needs
similar identifying information on it.
- You're always welcome to ask me to look at your program running before
it's finished, for comments, or hand in an early version of it to get feedback.
Overview of the projects
The Graphics Sampler: Assignments 1, 2, and 3.
- This is a non-interactive program that presents the screen divided
into a number of rectangles (at least 12) and puts different types of static
and moving graphics in each (or moving across more than one rectangle.
You'll understand what it's about as soon as you look at the examples,
done in the past by other students.
-
A 3-D spinning object.
- This will build on code I have written to tumble a 3-D object in space
(details later).
-
A sketching application.
- This will be a 2-D interactive sketching program with menu control
(details later)
-
Running graphics algorithms.
- Most of the algorithms in the text are so fundamental, that they are
built into the basic system, e.g., the Mac OS, X windows. But I will occasionally
ask you to experiment with ones from the book, after you're experienced
with displaying windows and drawing in them.
Details and due dates
Assignment 1:
- Writing about demos, due Tuesday 13 January: You are to run
all the compiled demos in the Samplers folder (make local copies first).
Write up some notes on the most interesting techniques you saw, how they
look and behave and why they're interesting. Write in full sentences. (This
doesn't mean be wordy.)
-
Quiz on Thursday, 15 January: Details on the Exams
page.
Assignment 2:
- Code commenting and design, due Thursday, 15 January: Part 1: You
are to study my source code for my sampler in the Samplers folder, comment
it carefully, and turn in hardcopy of your commented code. To do a proper
job, you'll have to study Macintosh Toolbox and QuickDraw references. Part
2: Write a brief description of your preliminary Sampler design ideas
and strategies.
Assignment 3:
- Write your own Graphics Sampler, due Thursday 22 January.
You are to create a program with at least 12 windows that subdivide
the screen, and in each one, your program is to draw some design or animation.
Break all your drawing into a function for each window which in turn calls
other functions, that is, make your code as modular as you can.
Return to COM1370 home page