Lectures/Notes
|
Note: all assignments and projects are due at the begining of class (9:30 am) on a Tuesday. Note: programming warmups and written assignments are graded "check/nocheck." However, it is in your best interest to do the work since the material will appear again in projects or on exams. Written Assignment 1Written assignment 1 - Mathematics Warmup - due 9/13/2005 The questions are here. Please hand in a page (or however many you need) with your answers in class. The purpose of this assignment is to give you an idea of the kinds of mathematical reasoning you will be doing this semester. If you're completely stuck on some of the concepts, you might want to refresh your memory from your linear algebra course (or re-learn it). Programming Assignment 1Programming Assignment 1 - C++ Warmup - due 9/20/2005 The purpose of this assignment is to make sure that you can use the tools that you need to do future assignments and to follow class rules. Basically, we want to make sure you can figure out how to compile a program and hand it in now - rather having you realize right before a project that you can't get these basic things done. You must hand in a program that does the following:
It doesn't matter so much what your program does - we are more interested in making sure you can write and hand in some program. Of course, if you make a program that does something interesting, that will be more fun for us. We will provide you with an example solution to look at. In fact, it is totally acceptable to simply copy this program (providing you follow the rules and give proper attribution. Handing the assignment in:The procedure for handing in this assignment will be the same for all programming assignments and projects, so its best to figure them out now. We will create directories on Tuesday, September 13th (probably in the afternoon) based on the course registration list provided to us by the CSL (who gets the information from the registrar). Check the p:/course/cs559-gleicher/handin/yourid/a1 directory. If you don't see a directory for yourself, send email to the TA. Note: there may be a delay between your request and when she can make the directory for you, so please ask before Friday 9/16. The rules for turning in programs are on the policies page. Some things to keep in mind for this assignment:
How your program will be evaluated:This assignment is different from most others since what we care about is that you figure enough out about how to program with C++, Windows and fltk that you'll be ready to do a real programming assignment when we give it to you next week. Therefore, we will look at your program, make sure its correctly documented (so make sure the readme file explain what the program does), and probably look at your code to give you an idea if your coding meets our level of expectation. We probably won't check to see if your program actually works. We will care if you follow directions. So I highly recommend you turn in the right files before the due date. The idea is that if you blow off this assignment now, you'll have problems later (like next week) when we ask you to actually write real programs. So, if you were lazy, you could copy one of the example programs, add comments giving proper attribution (remember the rules!), add a readme file, and get full credit for the assignment. However, you may regret it (as soon as next week) when you're trying to figure out the basics of writing a program in C++ on Windows with fltk, AND the graphics stuff you need to do. On the other hand, if you're inspired and right some really cool program (be sure to describe it in your readme file), we may try it out to see how great it is. Programming Assignment 2Programming Assignment 2: Imaging Warmup - Due 9/27/2005 9:30am In later programs and projects you will be processing images. For this programming practice assignment, we want to make sure that you can read an write image files. For this class, we will use the Targa or TGA file format. We have a special library, call LibTarga that was written specially for CS599. It is designed to be simple to use, but it does not handle all features of the Targa file format. For the purposes of this class, we will only use the things that LibTarga can do - our definition of the Targa format is the set of files that LibTarga can read and write. The LibTarga web page is here. However, the documentation of how to build LibTarga on CSL computers has changed. You should look at the tutorial for this class. For this assignment, your program can be very simple. It must:
This is a good time to practice making your programs robust. For example, make sure that your program gives an error message if there's a problem like a bad input file. It should not crash - even with bad inputs. It doesn't matter what your program does to the images. At this point, we just want to make sure that you can read and write images. You'll get to write lots of code to actually do things to the images later. At least one of the tutorials is a solution to this assignment. Its OK to simply turn one of those in (provided that you follow the rules). Grading is similar to the first programming assignment. If you can't read and write images, or you can't turn in an assignment correctly, you will have trouble later. Of course, you are welcome to have your program do something cool to the image. If so, be sure to tell us so we can check it out.
Programming Assignment 3Programming Assignment 3 - Interacting with Images - Due October 11th. Note: This assignment is due as part of Project 1. We will grade is along with Project 1. A good solution for Project 1 will also satisfy the requirements for this assignment. You must write a program that:
Your program should ask the user for targa file (for example, try using the FlTk file dialog box). How the image changes is up to you - changing the color of the pixel under the cursor is one simple thing. Don't worry if the program "feels" slow - chances are, you'll be redrawing the whole image after each pixel change. Writing your program so it allows for fast painting is trickier - and is not something that you need to learn for class. How this will be graded: As part of your project 1 grading you will give a demonstration of your project. During this time, we will check to make sure that you've written a program that fullfills the requirements for this project. You will build and run your program for us. Your "answer" for assignment 3 might actually be a demonstration of your project 1 program, or you can compile and build something different. Written Assignment 2:Is available here. Written Assignment 3:Is available here. Programming Assignment 4:
|