Frequently Asked Questions from 559-2006 Students
1. Is this class really that much work?
I can't say since I haven't taken
From talking to
former students and faculty, I really don't think that 559 is that much harder
than the harder upper level CS classes like 552. Some students think its harder
because it requires both math and programming (most hard CS classes have lots of
one or the other, few have both).
See also ShouldYouBeHere.
One reason that
the class is more work for lots of students: they like it so much that they put
extra effort into it. You should know that this isn't required. You can get an A
without doing insane projects. Some students do insane projects (see RocketCoaster),
but this was really insane.
2. Do I have to program in C++?
C++ for 559 Page.
because we need to be able to provide support for the tools that students use
for their projects, and right now, we have only done that for C++.
3. But I want to work in Java, and JOGL is stable, and ...
Yes, Java has (seemingly) evolved
to the point where it would be possible to do all of the class projects. In the
future, we might allow
students to work in Java. Come back next year to find out.
But its not
that Java isn't suitable. Its just that we don't have the infrastructure in
place to support students doing graphics projects in it.
4. Do I have to use Visual Studio?
Technically, the requirement is
that your code compile and runs on the Storm computers. (since we need to be
able to look at what you've done)
So, if you can
make gcc work on the Storm computers, then you could try to use that. We won't
be able to help you with it. And I cannot promise that the sample code and
libraries we provide will work either.
I don't think
Visual Studio is that bad. In fact, if you use Workspace
Whiz, I actually think its a pretty nice programming environment.
5. Why do we use the Shirley book? I don't like it. It misses lots of topics.
To be honest, its the best of a
bad lot. While it leaves a bunch out, what it does cover, it does in a pretty
nice way. All of the other books I've seen, I like less. The original version
covered even less!
While my name
is on the cover, the amount I make on it is so small its not worth mentioning.
For an out of
date (2001) rant on the subject see http://www.cs.wisc.edu/graphics/Courses/559-f2001/book-rant.htm
6. Why do we use Targa images?
The Targa (TGA) image format is a
really simple one. We use it because we were able to provide a simple library
for reading and writing the format.
The LibTarga library
has the advantage that it is easy. Our experience is that every other image
library we've tried has been harder for 559 students.
not perfect - but it is good enough. Especially since, for the purposes of 559,
we define a "valid TGA image" to be the set of images that LibTarga can
provide support for any other image I/O library.
7. Do I have to use FlTk?
No. You can use any windowing
toolkit that allows you to compile and run your programs on the Storm computers.
We will only
provide support for FlTk.
If you choose another library, you're on your own.
8. Why did you pick FlTk?
chosen for 559 a ways back (1999). At the time, it was the only toolkit that met
our needs. However, I would probably make the same choice today.
Here are the
arguments for FlTk:
- Its free.
- It runs on Windows, and on most other systems.
- It is much simpler than any other toolkit we've seen.
- It has a remarkably clean design - it doesn't try to be too fancy.
- It doesn't force you to organize your program a certain way.
- It has a complete enough feature set.
- Experience (here and at many other Universities) shows it works well for
intro graphics classes.
- It integrates nicely with OpenGL.
- It was originally intended to be a way to quickly and easily write
FlTk's problems aren't too big a concern for 559:
- There are some platforms it doesn't run well on
- Its default widget set is really plain looking, and programs written in it
look kind of ugly.
- It uses its own widgets, so programs don't look like the native operating
- Its simple model doesn't help you organize big, complex user interfaces.
(although, in its defense, it doesn't prevent you from creating them either).
So, we strongly
recommend that you use FlTk for CS559.