Survey Says…

by Mike Gleicher on September 11, 2014

If you’re curious about the results of the survey (from Assignment 0), I have generated a report. (it’s not pretty, but the information is there). I have removed questions with any kind of individual identifying information.

GraphicsIntakeSurvey

Room 1240 issues (sound and sight

by Mike Gleicher on September 6, 2014

We are fortunate this semester to be able to use room 1240 Computer Sciences for our class. This room was designated as a seminar room and is not normally available for class use. It’s great to be in a room with comfortable chairs, a good projector, attractive décor, …

However, the room is a bit big for our class, and its “wide” shape makes it a little difficult for classroom lectures.

Sound: it can be difficult (for me) to speak loudly enough to fill the room, especially especially to reach the corners. For various reasons, I’d really prefer to avoid using amplification if possible.

So…

  1. If you can’t hear something, let me know. I’d rather repeat myself than fear someone missing something. If this happens too much, we’ll need to do something about it.
  2. Please do not sit in the back corners (the last 2-3 rows on the side). The room should only be about 1/2 full, so there should be room closer up for everyone.

Sight: A whiteboard is better than a blackboard, but still not perfect. If I write something too small or too dim, please let me know. I can read my writing Smile. Sometimes this might be I need to use a better marker, sometimes I’ll need to write bigger. I won’t know unless someone tells me.

Remember: if you can see/hear, chances are there is someone else who cannot either. I can usually see and hear myself since I am up front. So please speak up.

The Week in 559: Week 02 September 8-12

by Mike Gleicher on September 5, 2014

Hopefully, the enrollment and administrative issues are behind us, and we can now focus on graphics!

In lectures, we’ll talk about coordinate systems and transformations in 2D (and if there’s time, we’ll start with 3D).

For this week’s readings, there are a few (short) book chapters on coordinate systems, some linear algebra, and transformations. The chapters are pretty short. You will also want to do some reading about SVG – start with my tutorials, and then look on the web. People are putting suggestions into the Piazza posting.

This week, there are two assignments due (0 and 1). Assignment zero is just to make sure the course infrastructure works, and that everyone is able to get to Moodle and Piazza. Assignment one is just there to make sure you’ve looked at SVG a little bit. For next week, we’ll have an assignment that uses it to more closely give you practice with some of the course material.

Next week, we’ll move onto 3D, examining the transformations that are useful in applying to 3D points and primitives. We’ll also have an assignment that will allow you to experiment with transformation concepts using SVG.

This talk has been cancelled.

For those of you with interests in graphics related things, I will try to give you announcements about seminars on campus on graphics-related kinds of things.

This week on Tuesday, September 9th, there will be a talk “Application of Computational Methods to the Surgical Care of Facial Malformations” in Computer Sciences (at 3:30pm right in the very same room in which we have class)

This has nothing to do with class, but if you’re interested in hearing about research in the field, you might find it worthwhile.

Waiting List and Enrollment

by Mike Gleicher on September 4, 2014

I think that we took care of arranging so that everyone who asked to be in the class can be in the class. If your name was on this list, we authorized you to enroll.

Before we start…

by Mike Gleicher on September 1, 2014

The first lecture for CS559 for the Fall of 2014 is Tuesday, September 2nd, 11am, in room 1240 Computer Sciences.

Some things you might want to know before the first day (if you are deciding to take this class or not)

  1. If you are thinking about taking this class, come to the first lecture on Tuesday, September 2nd.
  2. If you aren’t enrolled yet, come to the first day anyway. I expect that most people on the waiting list  will be able to enroll. But I need to take stock of the situation. Usually, a lot of people drop after the 1st or 2nd day.
  3. If you have not taken a linear algebra class, that’s OK. It is no longer a pre-requisite for the class.
  4. There is no book to buy. I’ll discuss that in class.

If you want to read through things on the web page, especially all the news and BasicInfo, that would probably be a good idea. But since a lot of it was put together at the last minute, I am not expecting that people will read it before class.

The Week in 559: Week 01 September 2-September 5

by Mike Gleicher on August 30, 2014

Welcome to CS559 for the fall of 2014!

Each week, I will make a posting to the web site about what will happen in class during the week. It’ll have a link to the readings, tell you what assignments are due, and tell you what to expect in the lectures. You can find all that information around the website, but the “Week in 559” will get it to you in one place.

For the first week in class…

This week we’ll get started by spending some time talking about class policies, organization, and give an overview of the topics that we’ll cover over the semester. Then we’ll start by considering the question “where do we draw” when we make a picture: we’ll consider what a coordinate system is, and start to get to the linear algebra we’ll use to manipulate coordinate systems. We’ll also talk about some practical aspects of vector graphics that you’ll need for the assignment due next week.

There are no assignments due this week (since it’s the first week of class) – but be ready, there will be an assignment due every Wednesday for the rest of the semester!

The readings for this week are listed in the Week 1 Readings posting. There are some tutorials and a (short) book chapter.

Next week, we’ll continue to think about coordinate systems and linear algebra and consider transformation in 2D. There will be two “getting started” assignments due on Wednesday, September 10th.

Where are the readings for this class?

by Mike Gleicher on August 30, 2014

There is no book for this class. Instead all of the readings will be provided online.

Some of the readings will be chapters taken from books. Academic fair use says that we can use a few chapters from a book for class purposes. Therefore, I can only give the scans from the books to people in this class. So you will notice that they are on web pages that you need to authenticate. The files will be made available in the protected course reader.

There is a page discussing the various books we will draw from in this class.

A lot of other readings will come from websites, including tutorial pages that I will create specifically for this class.

C++ and 559 for Fall 2014

by Mike Gleicher on August 30, 2014

The common question for this class is “what language is the class taught in.” I know they mean what programming language, but the literal answer is still instructive:

The class is taught in English. Not that there’s any connection between graphics and English – it’s just convenient for this class. We could use French, but my French skills aren’t very good, so the lectures would be indecipherable. We could try Esperanto, but I doubt many more people have experience with that, and it would be even harder to find a good text book. And sorry, I don’t speak Mandarin.

So, we’ll teach the class in English. Yes, this means that some students have an advantage over others because they have more experience with it. If you’re not a native English speaker, this class will be good practice for you.  Lots of non-native English speakers have done really well in the class.

So… this class isn’t “taught in” a programming language. It’s taught “in” English and mathematics. However, graphics is not a spectator sport – you will learn best by doing it. And that means writing some programs. Which means we need to use some programming language. I am working on making the class programming language agnostic, but that didn’t quite happen yet.

But to the real question…

In this class there will be two “mini programming projects.” (see the discussion of class activities). The reason they will be “mini” is that we will give you a lot of framework code, so that you can focus on the interesting parts of the project. This framework code will be written in C++. (it is possible, but unlikely, that we will also create a version in another language). You will have the option of not using the framework code, writing your own framework (possibly in another language). But this is ill-advised, since you will spend a lot of time re-creating the un-fun parts and missing out on the practice of figuring out.

The framework code doesn’t use any of the newer/fancier features in C++. (In fact, I kindof advise against trying to use those things unless you really know what you’re doing) So, if you’re a C programmer, you’re probably OK, there will only be a little bit of stuff to pick up. The hard parts (like having to manage your own memory) are the same.

The mini-projects won’t happen until later in the class. However, you might want to be prepared for them. Make sure you have access to the compiler/development environment on your machine of choice (if you’re working in the windows labs, you’re OK). If you don’t have C++ experience, try to write some simple programs and read up on the language. Even though you are not required to do the programming assignments in C++, you might want to do it that way for practice.

We will provide you with some suggestions and resources. I have started a Piazza discussion topic (pinned at the top – I am not sure how to make a permalink to a piazza topic) for this. If you have suggestions, please contribute!

Things we will do in this class

by Mike Gleicher on August 30, 2014

Lectures: I am trying to get beyond the 75 minute monologue style, but there will probably be a lot of that. I believe that lectures are more useful when they are more interactive, and have the students do things beyond just listening, but I am still trying to figure out how to achieve that.

Readings: Each week (maybe organized by lecture, but maybe by week) you will be given a list of things to read to learn about the concepts we’re talking about in class and using in the projects/assignments. There is no textbook: all readings will be provided on the web. Some will be “tutorials” that I write, some will be portions of books, some will be other articles.

Assignments: Most weeks, we’ll have small “written” assignments (although these are usually done online, and always turned in online). Some of the “bigger” assignments will involve you making pictures using tools, or writing small pieces of programs that get used inside of online tools. Sometimes, these assignments will be there to give you practice with the concepts in class, other times they will be there to make sure you’re ready to do things in the future.

Programming Assignments: Some assignments we will ask you to write a small program to create the answer for the assignment. For these assignments, it might even be possible to do things by hand – but you probably will want to write a program. For these assignments, you may use any language you want – what we care about is that you complete the assignment, and turn in a valid answer. However, you might want to do more. And you might want to use this as a practice for the tools in the programming projects. We expect that all programming assignments will involve reading and writing text files (that describe geometry or images).

Programming Mini-Projects: We will have 2, approximately 3 week, programming projects. For these, you will be given some framework code (a program missing features). You have the option of re-implementing everything from scratch, but this is generally a bad idea. The projects will have some well defined objectives, but also have an open-ended aspect so you can go above and beyond. The framework code will be in C++, use OpenGL, and have been developed under Windows using Visual Studio. There is no requirement that you use these tools – you could re-write the framework in some other language on some other machine. But this would just be extra work for you. Also, your program must run under Windows

Exams: We will have a midterm and a final.