CS 341
User Interfaces |
This course teaches the principles of constructing user interfaces. In this course you will learn how to actually implement user interfaces.
This course is programming intensive. The prerequisite is CS211 and CS221 is recommended.
Instructor
Elodie FourquetOffice | Clapp 226 | ||||||||
Phone | 538-2241 | ||||||||
efourque mtholyoke.edu | |||||||||
Office Hours |
|
Meeting times
Lectures | Mon. & Wed. | 11:00 - 12:15 | Kendale 303 |
Fourth hour | Fri. | 11:00 - 11:50 | Clapp 202 |
Websites
Course Webpage | http://www.mtholyoke.edu/~efourque/cs341 |
Moodle | https://moodle.mtholyoke.edu/ |
Course Objectives
This course provides an introduction to contemporary user interfaces, including the basics of human-computer interaction, the user interface design/evaluation process, and the architectures within which user interfaces are developed. Students implement and evaluate portions of typical user interfaces in a series of programming assignments.
In this course students will learn the principles of constructing user interfaces, based on issues of design and usability and based on the mathematics of 2D graphics.
Textbooks
There is no required textbook.
Course notes will be posted on Moodle
- An Introduction to User Interfaces for Computer Science Students W. Cowan & E. Fourquet.
There are X Window System manuals in Kendale 307.
Books on reserve in MHC library
- Designing the user interface : strategies for effective human-computer-interaction (3rd ed.) by Ben Shneiderman.
- Building Interactive Systems: Principles for Human-Computer Interaction by Dan Olsen.
Ordered: to come...
Course Content
- Overview, scenario-based design
- XWindows: Xlib drawing and events
- Graphics output: devices and abstractions
- Interactive components and widgets
- Model-view-controller
- Users
- Look-and-feel, visual and graphic design
- Input devices, formalizing user interfaces with state machines: production systems
- Layout and layout managers
- Direct Manipulation
- 2D graphics: transformation matrices, drawing and picking
- Java2D
- History
Grading
Final course grades will be calculated using the following percentages.
- Events and Drawing (X Windows)
- Model-View-Controller (Java)
- Direct Manipulation (Java)
Policies
Attendance- You are expected to attend class and fourth hour.
Attendance at fourth hour is mandatory. - Make-up midterms will be given by prior arrangement only. I need to know at least a day ahead of time if you can't make it to the midterm, and does not guarantee that an extension will be granted. Otherwise, a zero will be given.
- Being absent is not an excuse for not submitting your work on time.
Assignment submission
Assignments must be handed in on the day they are due. You will lose 10% of the assignment's value for each day that it is late. The first late day is the 24 hours starting when the assignment is due, the second day the next 24 hours, and so on.
In addition you will usually give a short demonstration of your programming assignment during the fourth hour. You should rehearse the demonstration as the presentation will influence your grade. You will receive immediate feedback on your work. Your assignment work will receive a 10% penalty if you do not present it before the end of the specified fourth hour.
Your work on the first part of an assignment must be the work of the individual student unless otherwise noted. After the initial milestone groups (student pairs) are specified by the instructor so as to complete the work. You are then expected to closely collaborate with your teammate, especially practice pair-programming.
Participation
Your participation grade will be based on participation in class, in the lab and on Moodle. By doing the course notes readings you are expected to be able to participate in lecture discussions by volunteering answers and asking questions. By doing the class activities you are expected to contribute with comments, questions and/or solutions.
We are going to be using Moodle's forum for our class discussions outside of class. Rather than emailing questions to me, you are encouraged to post the questions on Moodle's forum. On Moodle, you should feel free to ask questions and to respond to your classmates questions (and to share links to documentation and tutorials when appropriate). Replying and giving hints on Moodle's forum to a student who asked for help is useful to the rest of the class. I encourage collaboration through Moodle and doing so will positively affect your participation grade.
Announcements related to issues that arise between class meetings will be made on the News forum on Moodle. In particular, clarifications of programming assignments, changes to due dates, etc. will be posted on Moodle. You are responsible for checking Moodle and the course website on a regular basis.
Collaboration
Submission of work that is not your own is considered a violation of the Honor Code. The penalty for such a violation is a zero on the assignment. In accordance with the student handbook, all such violations will be reported to the Dean of Students.
Using the Web and Other References
The Web is a marvelous source of information. However, it is not supposed to do your homework for you. First, many online posters don't know what they're talking about, so be careful what you use. Second, in hunting for an example of how to do something, you may on some occasions find a complete or close to complete solution of an assigned problem. Copying code and handing it in is plagiarism.
Assignments are your individual or team work, while you are allowed to use code examples provided in class or in the course notes
- you should NOT be doing general Internet searches for specific solutions and
- you should NOT read, copy, or modify another student solution for your submission.
If you use more than a single line of code that you did not write on your own, attribute it to the source: all of the resources you used to help you with an assignment must be cited. The best practice is to specify all the help you received in your readme: who or which resource (specific pages) helped you and for which part of the problem.
Failing to appropriately cite all the resources used to complete an assignment is a violation of the Honor Code.
The library provides an online tutorial on the proper use of sources as well. If you have any doubt, please ask.
Caveat
Everything on this syllabus is subject to change. Changes will be announced in class and updated in this online syllabus.