| CS 477: Advanced User Interfaces |
|
|
Class Description
|
|
Course Syllabus CS 477/577 – Advanced User Interfaces Time and location: TTH 12:45-2:00 (3 credit hours), Engineering (Bldg 69), Rm. 120 Course Website: http://www.cefns.nau.edu/~edo/Classes/CS477_WWW/ Course PreRequisite:
CS 249 (Data Structures)
Course Description: Exploration of design and construction of modern graphical user interfaces, including event models, client-server interaction, and interface design and usability evaluation. Course Objectives: Upon successful completion of this course, you should have an understanding of the principles of requirements acquisition, design and construction of modern graphical user interfaces, and user-centered design and usability analysis. You should also have gained understanding of and experience with event-based programming and client-server UIMS paradigms. This experience should prepare you to take a leading role on software projects centered around the design, implementation, and user testing of advanced graphical interfaces. Instructor: Dr. Eck Doerry, Assoc.
Professor
Although you should try hard to make it to scheduled office hours, I am also available at other times by appointment. To schedule, see me before or after class or send email. Aside from scheduling meetings, email is appropriate for short questions; longer discussions should be handled in person. If my office door is open or cracked outside of office hours, feel free to knock - I may be available (no guarantees). I enjoy talking to and helping students, so if you are having problems please find some way to let me know as soon as you can. Course Stucture and Evaluation Methods Programs: A number of programming projects will be assigned to provide hands-on GUI design and evaluation experience. Students should expect to learn details of GUI programming on their own, i.e., little if any lecture will be spent "teaching programming" (that ended with CS136!). Although there are certainly an infinite number of languages and systems for GUI programming, we need to settle on one that (a) is widely available, free, and has high likelihood of being maximally useful to you in the real world, and (b) is maximally portable seeing as we all use different platforms. Thus, all programming for this course is to be done in Java using the SWING package. Unless explicitly stated otherwise in the problem write-up, programming assignments must be done individually. This means absolutely no sharing of code (program printouts or handwritten code) or electronic files between students. The only exception is when shared code is of a utility nature (e.g., a pretty-printer function) peripheral to the core assignment. In this case, the shared code must be clearly attributed to the author. The safest route is to check with me before incorporating foreign code in your work. Overview of programs:
Class participation (and quizzes): This class is not some sort of docu-drama that you sit and take in passively. I do not view teaching as a uni-directional process by which I somehow fill the golden elixir of knowledge into the empty gourds of students. Interaction -- both with the instructor and with other students -- is crucial for understanding and integrating the ideas presented in lecture. To emphasize this, a significant number of points are set aside to reward students who take an active role in the class. I may also utilize some of the participation points to credit the occassional pop-quiz. Exams: There will be two exams during the semester. Whereas, programs allow you to develop and practice your programming skills and gain hands-on experience, exams allow you to explore the extent to which you understand the theory and principles that underlying these problems. This does not imply, however, that exams will not require you to read/write some code. Exam 1: Feb. 24(tentatively) Grading: The scoring distribution in this class is as follows: Programs & Assigments = 45% Policy on Team Programming Projects: The later programming projects during the term will be executed as programming teams. It is important for all team members to contribute reliably and definitively to the productivity of the team in order for the team to succeed. To help evaluate this participation, we will be using a peer evaluation approach to gain insight into team dynamics, and to fairly distribute project points based on effort invested. In general, the peer eval system will be used to calculate an "effort factor" for each team member, which will serve to modify the scores for all team deliverables. In this way, high-performing team members will be rewarded, slackers will be penalized. On a perfectly functioning team, all members share the same score. Policy on Graduate Student grading: Since
this is a combined undergraduate/graduate class, I will grade graduate
students differently in several ways. Graduate students will often have
different problems to do. As an example, programming projects will consist
of a core set of problems to solve or functionalities to implement; graduate
students will be required to implement, in addition, certain more advanced
extensions or enhancements. Graduate students will also be held to higher
expectations of quality on other assignments. For example, I expect graduate
technical writing to be of higher quality, with hypotheses and arguments
supported with references to appropriate literature. Finally, graduate students will be assigned an overall survey paper on a topic in User Interfaces of their choice (must be approved by me), which will be due at the end of Reading Week.
Simply completing what is required is enough to earn a "C". To get an "A" or a "B" you must show exceptional (i.e. above average or outstanding, respectively) initiative and creativity. Course Policies
Additional clarification on cheating: Sometimes students are not clear on what is or is not cheating in regards to programming: the programs you turn in for grading should have been written and typed in by you without referencing another’s work (you may refer to books, of course --- but you may not copy large sections of code from any book, the internet, or any other medium). It is often helpful to work with others to clarify the problem to be solved and discuss possible solutions; this is acceptable and even encouraged. But you should never at any time give another student a copy of your code or accept code from another student, either physically or electronically. Some examples of cheating include but are not limited to:
University Policies You should familiarize yourself with the following university policies, which are available at the Engineering Sciences Front Desk:
Vital Skills and other Hints for success in CS477/577
|
|||||||
| (c)NAU |