html>CS252 - Course Description

CS252 - Introduction to User Interface Design
Course Description
Winter 2000


Prerequisite: CS 161 or CS 295
plus experience in developing structured programs
Class Meetings: 8:00-8:50 A.M. MWF
Final Exam: Fri., March 17, 9:30 A.M.
Web address: http://www.cs.orst.edu/~pancake/cs252
Class questions and discussions: class-cs252@engr.orst.edu
(automatically creates a Web archive of messages)
Required Textbooks: An Introduction to Usability, by Patrick W. Jordan (Taylor & Francis, 1998)
  Essentials of Visual Basc 6.0 Programming, by David I. Schneider (Prentice-Hall, 1999)
Professor: Dr. Cherri M. Pancake
Dr. Pancake's Office Hours (Dear 219A): M 4:30-5:30
W 9:30-10:30
F 10:30-11:30
or by appointment (call 737-2109 or send email to pancake@cs.orst.edu)
Teaching Assistant: Shalini Ramachandran
TA Office Hours
(Dear 119 lab):
M 11:30-12:30 and 3:30-4:30
H 12:30-2:30
or by appointment (send email to ramachsh@cs.orst.edu)
CS Computer Labs: Dearborn 119 (open 8:00AM - midnight daily; but building usually locked on Sundays)
Hovland (open 24 hours per day)

Course Objectives:
In this course, you are expected to gain an understanding of the basic principles of human-computer interaction and how they affect the usability of software interfaces. To pass the course, you must demonstrate that you can apply guidelines based on those principles in the design of user interfaces, can adhere to the standard coding practices employed in software companies, and can evaluate the resulting interfaces with methods from usability engineering.

This is a project-based course. You are expected to come to class prepared, having completed the necessary reading from the textbooks and online documents. You will also participate in the evaluation and constructive criticism of your own and your classmates' work.

Grading:
Letter grades will be assigned on a 10-percentage-point scale (90-100%, A; 80-90%, B; etc.). Three types of grades will be used to evaluate your performance in this course: Quizzes, Homework, and Programming Assignments, 40%; Midterm Exam, 25%; Final Exam, 35%. Any student whose total exam score is below 60% will receive an F, even if the overall total exceeds 60%.

All homework questions (but not programming assignments) will be graded in "binary" fashion; you will receive full credit if you turn in answers of reasonable complexity and no credit otherwise (see the question 2 below). Programming assignments will be graded not just on the basis of whether they solve the problem or not, but also for readability and conformance to standard coding practices (see questions 8-12).

Note that no makeup exams will be given. It is also your responsibility to keep on file all returned homework and exams in the event that there is any question about your grade.

Academic Honesty
Assignments: In general, the assignments are not team projects, so each student must write his or her own solution. (Any team assignments will specifically identify who your teammates are to be and how much you should collaborate.)

So, how can you tell where to draw the line? A good rule of thumb is the "visual aids rule". It is ok to talk to each other, offer advice, suggest techniques, and so on, as long as no visual aids (such as printouts, gathering around a screen to look at code, handwritten notes, written code or algorithms, etc.) are involved. This means you may not exchange or share written or drawn information with classmates, nor should you make written notes as you discuss things with your classmates. Please refer to the CS Department policy on academic dishonesty (http://www.cs.orst.edu/acad/policies/dishonesty.html) or discuss it with Dr. Pancake.

Frequently-asked Questions:
Q1. How important is class attendance?
A. Roll will not be taken. But since the lectures will present examples from actual usability tests, many of the materials simply aren't covered in the course textbooks. You are responsible for all lecture topics on the tests, whether you attend class or not.
Q2. What is "binary" homework grading?
A. Homework will be based on the review questions supplied on these Web pages. If you turn in a solution that answers each of the assigned questions, with appropriate complexity, you will receive full credit - whether or not you got the answer right. You will be responsible for checking the correctness of your solutions. Answer keys will be posted on the Web pages.
Q3. Am I also responsible for the "review questions" that aren't assigned as homework?
A. Although the Schneider book includes lots of self-study questions and exercises, the Jordan text does not. The review questions were written to help you know if you learned the important concepts from each of Jordan's chapters. All review questions are considered fair game for tests. You can be certain that at least a few of them will appear, word for word, on each exam - so it's a good idea to go ahead and answer the questions as you complete each reading assignment.

Answer keys will not be posted, except for the questions used as binary homework assignments. To check your other answers, you will need to see Dr. Pancake before/after class or during office hours.

Q4. What's this about "quizzes"?
A. Hopefully nothing. You are expected to keep up with reading, and to complete the review questions, exercises, and and practice problems from the texts (although you don't turn all of these in). They will help make sure you get the materials you need to from the readings so that you can do well on exams. To make sure you are keeping up with readings, we will discuss 1 or 2 questions in class every once in a while. If nobody can discuss them in class, we will have to switch to regular graded quizzes over the questions.
Q5. Can we work together on assignments?
A. No. The only exceptions are assignments that specially direct you to turn in a team solution (toward the end of the course). Plagiarism is interpreted very strictly in this course. Your homework answers and your source code must be your own, developed strictly by you. They must differ obviously from those submitted by your classmates. If another student takes a copy of your solutions and turns them in without your knowledge, you are considered guilty, too (for keeping your answers private) Be careful to guard both printed and on-line versions of your work.
Q6. Will I learn a programming language?
A. This is not a programming course, and lectures will not be spent on programming techniques. Students are assumed to already be experienced in developing structured programs (see prerequisites). You will be responsible for learning the rudiments of Visual Basic 6.0 on your own, using the excellent self-teaching textbook and example programs provided.
Q7. Why Visual Basic, rather than Java?
A. TCL/Tk, the X Window System, Java, and Visual Basic were all considered as possible platforms for this course. The first two require expertise that isn't acquired by most students until at least CS311. For Java, the problem is that the introductory course taken by all CS students does not cover the features that are essential for developing interfaces (the event model and the implementation of listeners); these features are also too complex for students at the 200 level to learn on their own.

In CS252, we need to focus attention on designing usable interfaces, not on programming techniques. With Visual Basic, it's actually possible to build a wide range of interfaces with just a small amount of new programming knowledge. Class assignments can concentrate on how to use interface components, rather than how they are implemented "under the covers." (Of course, you will have to learn Visual Basic, but most of what you need is very similar to things you already know from your programming courses.)

Q8. How much programming will there be?
A. Short problems plus 3 or 4 project-type assignments. All assignments must be submitted on time (complete or not). Partially completed assignments may receive some partial credit, but late assignments receive no credit.
Q9. How picky are you in grading programs?
A. On the job, you will be expected to conform to programming policies and guidelines. This course operates the same way. Your programming grades will reflect your ability to write well-structured, readable, and "standard" Visual Basic code. Use the same "good programming style" that is described and used in the Schneider text. For example, follow the conventions for naming objects and variables, declare all variables explicitly, etc. You will want to pay special attention to the "Comments" section at the end of each numbered section, since most of the guidelines are discussed there.
Q10. What if my program doesn't quite work?
A. We are in the College of Engineering. A bridge is not a bridge if it doesn't make it to the opposite shore, and a program is not a program if it doesn't compile and run. If the program you submit for grading doesn't run, you'll get a zero. Therefore, develop assignments incrementally so that you always have something that you can turn in -- and that works, even if it's not the complete assignment.
Q101. When and how are assignments due?
A. All homework assignments are due by 11:59PM on the date (each Monday) listed in the syllabus. You must submit all work electronically using the Web facility provided by the College of Engineering, which will put a time-stamp on the submission. If the assignment is even a few seconds late, it will not be accepted -- so be sure to leave extra time for the actual submission process (particularly if you plan to submit via modem). But note that you can turn in a version of the assignment earlier, then submit a more refined version later. This is the way to make sure that you always have some working version ready on time.
Q12. What about late assignments?
A. Late submissions will be rejected by the server. You should develop programming assignments incrementally so that you always have a working solution that can be turned in, even if it's not complete. Note that homework assignments must be complete in order for you to get the "binary" credit.
Q13. Where do I go with questions?
A. The TA handles all questions and help concerning the programming assignments. Dr. Pancake handles questions about non-programming assignments and the the lecture materials. If you have a question about a grade, see the next question.
Q14. What if I think my work has been graded incorrectly or unfairly?
A. For projects and homework, first discuss the matter with the TA, and if after doing so you still feel the matter is unresolved, then discuss it with Dr. Pancake. For tests, discuss the matter with Dr. Pancake. In all cases, you must raise the issue within one week of having the work returned to you.