|| CS5984 | Class Info | Syllabus | Calendar | Assignments ||
Dr. Manuel A. Pérez-Quiñones
office: McBryde 621
office hours: Wed 9:30-11:00, Fri 9:30-10:30, or by appointment
office hours: TTh 10-12, or by appointment
Two textbooks are required for the course.
Developing User Interfaces. Dan R. Olsen Jr., 1998. Morgan Kauffman. (http://www.mkp.com) (required)
Code Notes for Java. Edited by Gregory Brill, 2001. Random House.(required)
Other reference materials might be appropriate to use, depending on your background and knowledge on Java and Object-Oriented Programming.
Any Java reference book is recommended, although material is available on the web.
If you are new to object-oriented, then the following book is recommended. Java in Practice: Design Styles and Idioms for Effective Java. Nigel Warren & Philip Bishop, 1999. Addison-Wesley Longman (http://www.awl-he.com/computing, or http://www.awl.com/cseng)
The objective of this course is to expose students to the methodology, techniques, design, and testing of graphical user interfaces (GUI). The course on the construction of user interfaces, thus complementing other usability oriented course available in the department. Application frameworks will be discussed in detail. The students will learn to use existing classes, extend and specialize classes for GUI use, and to create their own components. Projects will include programming of direct manipulation interfaces, full use of undo, and use of data exchange techniques, such as the clipboard and drag and drop. Furthermore, in the second half of the semester the course will explore architectures for advanced user interfaces, such as voice interfaces, handheld computing, and others. Most of the programming will be done in Java.
Knowledge of Java or other Object-Oriented Language.
This page will be updated throughout the semester with information on deadlines, changes to the schedule, presentations, etc. The web page includes several dynamic features that should help you get the most out of this course. Some of these include: discussion board, grade lookup, semester calendar, and a very simple search engine over transparencies.
Attendance at class is necessary for successful completion of the course. Attendance is particularly important on specials days, such as homework-due days, exam days, etc. However absences will not count against your grade, but are discouraged unless special circumstances exist.
Programming Assignments due in class are due at the beginning of the class and will not accepted late. This includes handing in your work on your way out of class.NOTE that it is your responsibility to turn in the required work at the assigned due date, it is NOT the responsibility of the professor or the GTAs to pick it up or to remind you to turn it in.
There might be some participatory exercises done in class. If you are asked to participate in these, it is expected that you will do so.
Students are expected to read the assigned material prior to class, check the web page for the assigned readings and their dates. Some class time will be used for lectures, but attending lectures will not be sufficient for full understanding of the concepts from the readings.
Throughout the semester you will have several assignments of different kinds. Each might require different skills from you, and each will require different amount of effort. In general you can count on the following:
- Paper reviews - There will be several papers assigned throughout the semester, you are expected to read some of them and turn it a review before the day the class will discuss the paper.
- Tech Notes - there will be several individual assignments geared towards describing some new interface technology. These do not need to be limited to Java. The objective of these tech notes is:
- to give you practice preparing an objective evaluation of a new technology
- to give you practice preparing a brief demo on a new technology
- to give you practice reviewing each other's work
More details on these will be given later.
- Programming Projects - these are programming projects in groups of 2 that will take anywhere from one to three weeks to complete. There will be 4 or 5 of these in the semester (see below).
- Others - there might be other exercises that will earn you credits towards your final grade. These vary from semester to semester, so attend class everyday so you find out about these "freebies".
There will be several programming projects in the semester. These are to be done in groups of 2 using Java. These are projects based on the material discussed in class and give you an opportunity to explore an important area of user interface architecture. You will most likely have to consult a Java book, as some of the programming details of the assignment will not be discussed in class, only those related to the class material. Your grade for each of these will be based on the quality of your code and not necesarily on the execution results of your program. Although usability issues of your program are important, only a portion of your grade will be based on usability issues.IMPORTANT - You must turn in all programming projects in order to pass the course. If you do not turn one of them in, you will get an F in the course. This is to prevent students from being "satisfied" with a lower grade and just not doing one of the projects. You have to do them all and turn them in by December 11 (last day of classes at the beginning of class).
All the programming projects will be submitted electronically, using jar files. The GTA for the course will give more details as the due date approaches on how to submit the projects.
You will have a midterm and a final exam. Both of them are in class and you are allowed to use the class textbooks as well as the class readings. There is a good possibility that one or both might be a take-home exam.
No makeups are allowed in this course. Homeworks not turned in on time will not be accepted. Paper reviews missed get a zero. Projects can be turned in late up to three days with a small penalty. Exams cannot be missed.
Nevertheless, sometimes people get sick so I will allow extra time to complete projects if you have the proper medical evidence that shows you were not able to complete it in the time allowed. In special circumstances, other excuses will be accepted, but you would still need proper evidence of them.
Consider the following observations:
- I will give extensions only for the amount of time that you lost due to sickness. So, if you have a bad case of the flu and you were down for a day, you will get an extra day to complete your work. Note that you still need to give me proper medical evidence that you were not able to do your work for that day.
- A slip from the Health Center only shows that you went to see the doctor (excusing you of maybe 1 hour time).
- Do not leave the programming projects for the last minute, you are putting yourself at risk of last minute bad luck (Murphy's law).
- If you run into the unfortunate situation that requires an extension, know how much time you need. Don't come to me saying "I need an extension" because I have not seen your program, so I do not know how much longer to give you. And I will not extend deadlines for weeks at a time. Most likely I will give you one more day, of course assuming you have the proper evidence.
- Finally, in case of the unfortunate situation that you have a trip out of town to go see the President of the United States because you are being honored at the White House (or some other activity of that magnitude), I can give you a makeup exam, but it must be ahead of time. Note, however, that these special time exams are different than the exams that the rest of the class take, are usually more discussion oriented and problem solving oriented and have no easy problems like multiple choice, fill-in the blanks, etc. So, just call the President and tell him to give you the award in the Spring, you will be better off that way.
- Oh, by the way, your machine crashing, getting attacked by a virus, updating your OS and in the process losing some data, and other technology-based excuses are not considered valid. I consider these as the new millenium version of "the dog ate my homework", so plan for these unfortunate situations that happen all the time. Make backups frequently, and keep a copy of your backup at a separate location (like you significant-other's dorm, or filebox.vt.edu).
Your grade will be based on the scores you obtain on your work. There will be no curve applied so your scores, so be sure to study and work hard for every single assignment and test. Your work will be weighted as follows:
Tech notes and review of them
Programming projects (in groups of 2)
Final exam (cumulative), covers all the material in the course
Final grades will be set according to the usual 10-point scale using A, B, C, D and F. I reserve the right use the extended scale that VT has (A, A-, B+, etc.). I do not plan to use a curve, so do not count on getting 88 and waiting for the curve to pull you through. It won't. Study to get a 100. All the scores are rounded to one decimal place and the final score rounded to integers (i.e. 89.4 is a B and 89.5 is an A).
All work on individual assignments and exams is to be your own. You will be required to sign an honor code statement on all exams. Students are encouraged to consult with one another about project design issues, as the sharing of ideas here will lead to better systems. However, sharing of code is not tolerated and furthermore it is easy to detect. Please avoid the awkward situation of being caught sharing code with other students that are not in your team. Written reports are to be the work of group members. In general, plagiarism will not be tolerated.
What is plagiarism? Check the website, http://www.plagiarism.org/. I do not tolerate plagiarism, so avoid doing it and do not even try to justify it by giving excuses that begin as "I was not aware that ..."
If you have any special needs or circumstances (disability accommodations, religious holidays, etc.) please see the instructor during office hours.
|| CS5984 | Class Info | Syllabus | Calendar | Assignments ||