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.|
||Class questions and discussions:
(automatically creates a Web archive of messages)
||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)
||Dr. Cherri M. Pancake
||Dr. Pancake's Office Hours (Dear 219A):
or by appointment (call 737-2109 or send email to firstname.lastname@example.org)
||TA Office Hours|
(Dear 119 lab):
|M 11:30-12:30 and 3:30-4:30|
or by appointment (send email to email@example.com)
|CS Computer Labs:
||Dearborn 119 (open 8:00AM - midnight daily; but building usually locked
Hovland (open 24 hours per day)
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.
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.
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.
|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
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.