Frequently Asked Questions from 559-2006 Students

(Answers by Professor Mike Gleicher)


1.  Is this class really that much work?

I can't say since I haven't taken it :-)

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++?


2.1  Why?

See The C++ for 559 Page.

But really 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

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.

LibTarga is 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 read.

We cannot 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?

FlTk was 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:

  1. Its free.
  2. It runs on Windows, and on most other systems.
  3. It is much simpler than any other toolkit we've seen.
  4. It has a remarkably clean design - it doesn't try to be too fancy.
  5. It doesn't force you to organize your program a certain way.
  6. It has a complete enough feature set.
  7. Experience (here and at many other Universities) shows it works well for intro graphics classes.
  8. It integrates nicely with OpenGL.
  9. It was originally intended to be a way to quickly and easily write graphics programs.

FlTk's problems aren't too big a concern for 559:

  1. There are some platforms it doesn't run well on
  2. Its default widget set is really plain looking, and programs written in it look kind of ugly.
  3. It uses its own widgets, so programs don't look like the native operating system.
  4. 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.