CSC 420/520: Graphical User Interfaces


Instructor:Lin Qiu
Time:Spring 2006, Tuesday and Thursday, 11:10-12:30 pm
Location:107 Snygg Hall
Office hour: Tuesday & Thursday 1:20 - 2:20pm, or by appointment

Announcements

  • I am currently looking for students to work with me. See here for details.
  • 5/8/2006: Final presentation schedule out.
  • 4/16/2006: Final project midpoint demo schedule out.
  • 3/28/2006: Assignment 3 grades out.
  • 3/21/2006: The Critic is now accessible off-campus.
  • 3/19/2006: Final project proposal presentation schedule out.
  • 3/6/2006: Assignment 3 due date extended to 3/23. Use the Critic to check your Coding style.
  • 3/2/2006: Final project proposal meeting schedule out.
  • 2/27/2006: Assignment 2 grades out.
  • 2/22/2006: Assignment 1 grades out.
  • 1/26/2006: Final project out. Here are some examples from previous classes.
  • Prerequisites

    CSC241. Working knowledge of Java and Swing. Capable of solving programming problems by reading APIs.

    Objectives and philosophy

    This course introduces the basic mechanisms and implementation techniques for graphical user interfaces. Topics include event models, model-view-controller architecture, user interaction, and the use of toolkits. In addition, the basic principles of user interface design and 2D computer graphics will be covered. As a result of this course, students will be able to:
  • Understand and apply the essential models, designs, and architectures of graphical user interfaces.
  • Understand, use, and extend interface toolkit systems.
  • Effectively develop the interface portions of applications.
  • This is a learn-by-doing kind of class. Students will be taught general concepts and then introduced to the ways these concepts are implemented. It will be up to the student to find out the details necessary to complete the programming assignments. Java will be used as the main programming languange in this class.

    Textbook and other readings

    Online resources

    Java
  • download Java 1.5 and its documentation.
  • Java 1.5 API (with frames)
  • GUI
  • Overview of the Java UI
  • Swing tutorial
  • Swing Widgets
  • Java 2D tutorial
  • Free Java IDE
  • Gel
  • JCreator
  • Eclipse
  • HCI
  • Gatech
  • Grading

    Your final grade will be computed using the following contributions:
  • 30% Three assignments
  • 30% Final exam
  • 40% Final project
  • Policies

    Late Policy

    For each calendar day after the due date for an assignment, 10% is lost. After 1 day, the maximum score is 90%, after 2 days, 80%, etc, for a maximum of 10 days.

    Academic Honesty

    All assignments/exams must be done on your own. If you are found to cheat by inappropriately sharing your solution with other students, copying others' work, requesting answering services to answer your questions, etc. you will get an immediate F for the course, and your case will be sent to the university’s Office of Judicial Programs.

    Approximate Course Content:

  • Basic 2D Computer Graphics
  • Event Handling
  • Interaction
  • Widget Toolkits
  • Design Patterns for Standard Interactions
  • Design Issues
  • Schedule

    (tentative and subject to change)
    Week Date Topic Reading Homework/Project
    1 1/26 Syllabus, Introduction
    lecture notes
      Final project out(1/26)
    2 1/31
    2/2
    Basic 2D Graphics
    example code
    lecture notes
  • Olsen Ch. 3
  • Java 2D tutorial
  • Painting in AWT and Swing
  • Animation in Java applets
  • Assignment 1 out (2/2)
    3 2/7
    2/9
    Event Handling,
    example code
    scrollbar example
  • Olsen Ch. 4
  • Java and Event Handling
  • Event Handling In Java,
  • Writing Event Listeners
  •  
    4 2/14
    2/16
    Model, View, Controller
    MVC and Swing
    example code
    temperature example
  • Olsen Ch. 5
  • Introducing Swing Architecture,
  • A Swing Architecture Overview
  • MVC meets Swing
  • Assignment 1 due (2/14)
    Assignment 2 out (2/16)
    5 2/21
    2/23
    Widget Toolkits
    Interfaces from Widgets
  • Olsen Ch. 6, 7
  • Swing Widgets
  • Using Layout Managers
  • Assignment 2 due (2/23)
    Assignment 3 out (2/23)
    6 2/28
    3/2
    Functional Design
  • Olsen Ch. 1, 2
  • Final project proposal due (2/28)
    7 3/7
    3/9
    Individual group meetings    
    8 3/14
    3/16
    No class (Spring Recess)    
    9 3/21
    3/23
    Final project proposal presentation.  
    Assignment 3 due (3/23)
    10 3/28
    3/30
    user-centered design vs. activity-centered design
    Fitts' Law
    Examples of applying Fitts' Law  
    11 4/4
    4/6
    undo/redo, example code
    groupware, macros
  • Olsen Ch. 14
  • undo/redo with Swing
  •  
    12 4/11
    4/13 (No class: Good Friday)
    Interaction Design Patterns
    Clipboard example code
  • Olsen Ch. 13
  • Cut, copy, and paste in Java
  •  
    13 4/18
    4/20
    Midpoint final project demo    
    14 4/25
    4/27
    interaction models book excerpt: models of interaction from Human-Computer Interaction paper1, paper2  
    15 5/2
    5/4
    interaction models
    Final review
       
    16 5/9
    5/11
    Final project presentation
       
    17 5/16 10:30am - 12:30pm final exam    

    NOTE: This syllabus is tentative and subject to change when necessary. All changes will be announced in class and on this website.
    Lin Qiu