| Course Description | 
  
    | Contact information | James Tam Email: tamj@cpsc.ucalgary.ca
 Where: ICT707
 | 
  
    | Office hours | 
      Monday & Wednesday  (12:00 - 12:50)By appointment, arranged via email or telephone By drop-in for short queries if you really need some fast action (but no guarantees on
        this one)! | 
  
    | Calendar description | Fundamental theory and practice of the design, implementation, and evaluation of
      human-computer interfaces. Topics include: principles of design; methods for evaluating
    interfaces with or without user involvement; techniques for prototyping and implementing
    graphical user interfaces. | 
  
    | Prerequisite | Computer
    Science 333 (Foundations of Software Engineering). | 
  
    | Purpose | Human computer interaction stresses the importance of good interfaces and
    the relationship of interface design to effective human interaction with computers. On
    completion of the course, you will have theoretical knowledge and practical experiences in
    the fundamental aspects of designing, implementing and evaluating interfaces. 
      You will know what is meant good design, and you will have experiences designing systems
        that are usable by people. You will know contemporary techniques for implementing interfaces, and you will have
        experienced building applications through prototyping tools, window-based systems, and
        toolkits. You will know and have practiced a variety of simple methods for evaluating the quality
        of an interface.  | 
  
    | Structure | The course will unfold by examining design, implementation, and
    evaluation. Theoretical class lectures will be augmented by case studies of interface
    successes and failures; you will be expected to provide examples of problems you have had
    with computers and contribute to class discussion. You will also apply the theoretical
    knowledge learned to series of assignments that brings you through selected portions of a
    design, implementation, and evaluation cycle. The course will also introduce you to novel
    interfaces that go beyond what we normally see in today's graphical user interfaces. | 
  
    | The student | If you are enrolled in this course, you are probably an undergraduate
    student in Computer Science at the University of Calgary. You are probably in the third or
    last year of your degree program and should already have basic computer science skills
    (programming, data structures, software engineering). You will be especially well prepared
    if you have taken an introductory psychology course as one of your options. | 
  
    | Course texts | 
        Interaction 
      Design: Beyond Human-Computer Interaction by Sharp, Preece and Rogers.         
      
                Readings in 
      Human Computer Interaction (2nd Edition) by Baecker,  Grudin,  
      Buxton and  GreenbergRequiredLecture notes. I will make copies of the lecture notes and handouts available as both paper booklets you
        can buy at cost in the Student Union Copy Center and through the web.Optional 
      While you do not need these books to pass the course, reading the 
      relevant chapters will give you greater knowledge and depth of the 
      material discussed in class. Chapters and excerpts relevant to the class 
      are noted along with the topic descriptions in each topic page. In 
      general, the books contains a huge amount of material related to HCI, much which goes far beyond
        this course. It contains over 70 important papers written by HCI researchers, structured
        into 14 chapters. Each chapter introduces and briefly surveys its particular topic, and
        includes many references to other literature as well as appropriate technical videos.  You may also need an on-line tutorial or book to help you learn the
        programming language to be used for your assignments. Because there
        are now so many good books available, no specific book will be
        recommended here. | 
  
    | Assessment | You must achieve a passing grade in both the exam component and the assignment
    component to pass the course! 
      Exams (50%)
          Mid-term: 20% Registrar's final: 30% Assignments (50%)
          Assignment 1: 13%Assignment 2: 12%Assignment 3: 25% Exams will be a mix of short and long answers, and multiple choice questions. Questions
    will test your knowledge about facts you have learned in the course, your interface design
    abilities, and your ability to link and apply the concepts presented in the course.  The exams will also test your ability to
    communicate your knowledge to me: brain-dumps and knowing an odd phrase or 
    two won't count much with me. If you don't clearly communicate your answer, you don't get any marks.  In the assignments, you will apply the knowledge you were taught in class.  
      Some assignments are pen and paper exercises. Reports that are poorly written or
        presented will be heavily penalized or rejected, no matter how good the content! Other assignments have a programming component. They will require you to learn
        particular interface implementation tools outside of class. All programs must be
        demonstrated to myself or the TA. Non-working programs get an F. We are not
        prepared to go through your code to try and figure out how your system should have looked.
        However, code should be well structured and well documented. You will lose marks if it is
        isn't.Assignments will be handed out in class and further elaborated upon in the labs. Assignment
        deadlines are strictly enforced. Late assignments will be heavily penalized or not
        accepted. No extensions will be given without medical documentation. Do not fall into the trap of spending weeks programming an assignment , but studying for
        only hours on an exam worth 25% of your grade!  | 
  
    | Tutorials (Labs) | Labs will be used to guide you through your assignments. You will: 
      Receive assignment details and expectations; Learn specific skills necessary to successfully complete your assignment;e.g. evaluation methodology, details of programming window systems and interface toolkits;
Participated in class discussions of intermediate results of your assignments; Receive feedback on project milestones by the teaching assistant and the class.  |