Computer Science 5116

Spring 2003

Graphical User Interface Toolkits
Course Syllabus

Basic Information

Class Meeting

Tuesday and Thursday 4:00 - 5:15 pm in CivE 212

Instructors

Loren G. Terveen                              terveen@cs.umn.edu

EE/CSci 5-191                                  (612) 625-1831

Office hours:                                      To be arranged 

 

Teaching Assistant

To be arranged

Course Description

This class covers all aspects of graphical user interface toolkits, including comparisons among toolkits, toolkit design issues, and GUI programming using toolkits.  The course does not address usability and design (which are covered in CSci 5115).

 

The class format is lecture, discussion, and programming projects.  The tentative plan is to have four programming projects, each of which will last approximately three  to four weeks, and will cover a different GUI development tool or environment.  Class participation is expected. Thoughtful questions are as important as answers.

 

All students must complete the implementation assignments.  This is a hands-on course that requires doing to learn the material.  Accordingly, no student who misses any programming assignment will receive a passing grade.  Auditors are not expected to complete assignments, but they will also not benefit much from the class.

Textbook and Readings

The book Developing User Interfaces by Dan Olsen is required for this course.  It is the principal textbook we will use for discussing the basic concepts behind UI toolkits.  In addition, you will need reference material for the toolkits used in the course.  The toolkits used in the most recent offering of the course, along with some references, are listed below.  However, different toolkits may be used this semester, so do not count on using the four listed below!

 

            HTML, CGI, Perl                    On-line references will be provided

 

            Visual Basic                          Visual Basic 6 in Plain English by Brian Overland

 

            Tcl/Tk                                      Tcl/Tk Programmer's Reference by Christopher Nelson

 

            Java, AWT, Swing                Java Gui Development by Vartan Piroumian

 

These are considered required books for the course, though students working in pairs may choose to share books.

Prerequisites and Necessary Background

Students should have completed CSci 5115 (or its predecessor, CSci 5110) before taking this course.  This prerequisite will not be enforced, but the course staff will not provide support in learning topics already covered in CSci 5115.

Course URL

All handouts and on-line materials will appear on the course web page at http://www.itlabs.umn.edu/classes/Spring-2003/csci5116 (this site is not yet available).  Please check the page regularly -- be sure to reload the page if your browser caches pages.  A bulletin board will also be set up on the class web page.

Workload and Grading Policy

Programming Assignments

I plan to assign four programming projects, each having equal weight, during the semester.  You will generally have at least three weeks to complete each assignment.  Each assignment includes grading criteria based on the functionality and features you should incorporate in your program.  While good design is encouraged, design is not a grading factor.  Assignments will be graded in-person whenever possible to allow explanation of the work.

Examination

I plan on a single in-class exam, near the end of the semester.  The exam will cover all material in readings, lectures, and class discussions through the week prior to the exam.  Questions may ask you to reflect on or apply your experience from the programming assignments.

Grading Policy

Grades are computed as follows: Projects will count for 80% of your grade; thus, if there are four  projects, each will count 20%, Exam (10%), Class participation (10%).  The course is not graded on a curve.  The nominal scale awards an A or A- for 90% and better, B+, B, or B- for 80% and better, etc.  That scale may be adjusted to lower numerical grades if warranted, but will not be raised.  Notwithstanding a student's total grade, any student who fails to submit one or more programming assignments will receive a grade of F or N.

Group Work Issues

Programming assignments may be completed alone or in pairs.  Only one copy of a pair assignment should be submitted; both students will receive the same grade.

Make-up Examinations

Students will only be permitted to make up exams that are missed due to illness, family illness or emergency, or other unforeseeable events.  In special cases, including planned travel and university-related events, students may arrange to take an early exam.

Incompletes

Incompletes are only awarded in very rare circumstances when an unforeseeable event causes a student who has completed all coursework to date to be unable to complete a small portion of work (typically the final assignment or final exam).  Incompletes will not be awarded for foreseeable events including a heavy course load and poorer-than-expected performance on assignments and exams.

Scholastic Conduct

See the University of Minnesota conduct code http://www1.umn.edu/regents/policies/academic/Conduct.html.  All work submitted for this course is expected to be your original work except when group work is explicitly permitted.  All group work should be identified as the product of the group, identifying the participants.  Work copied or derived from other sources should credit these sources appropriately.  Your assignments may be jointly submitted to another course with the approval of the other instructor (they will still be judged on CSci 5116 criteria).

Special Circumstances

Students with special needs or circumstances should contact the instructor as soon as possible to make any necessary arrangements.  As with incompletes, extensions are only granted for unforeseeable events, but arrangements may be made to obtain assignment handouts in advance if needed.  Other accommodations, including large-print exams and private exam rooms can be arranged in cooperation with disability services.

Course Computing, Web Site, and Mailing List

Most students are expected to work on the IT laboratory computers.  By enrolling in this course (or by being an IT student) you are charged the computing fee, and you are therefore entitled to an account.  You can register that account in person in the IT lab in EE/CSci 4-204 or in ME 308.

 


 Tentative Course Schedule the last time the course was offered.  Details certainly will differ for this offering.

Monday

Wednesday

 

1/19 Course Introduction

1/24 HTML and Markup

Reading Due: http://www.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimerAll.html

1/26 CGI and Perl

Reading Due: 

http://www.cgi101.com/class

(introduction, chapters 1-5)

1/31 Window Systems & Toolkit

Reading Due: Olsen, ch. 1 and 2

2/2 "Real web arch"

Reading Due: one or more presentations from:  http://www.commerceone.com/commercecafe/cafe_present.htm

2/7 HTML "Issues"

2/9 VB Introduction

Reading Due:  Overland, ch. 1-6

2/14HTML Debrief

HTML Assignment Due

2/16 Draw/Redraw

Reading Due: Olsen, ch. 3, 5.2.2, 12

2/21 Layout, Event Processing

Reading Due: Olsen, ch. 4, 7.3, and 7.4

2/23 VB Issues

2/28 Introduction to Tcl/Tk

Reading Due:  Scan Nelson, and bring to class

3/1 Introduction to Tcl/Tk (continued)

Bring Nelson to class

3/6 VB Debrief

VB Assignment Due

3/8 Clipboards, Embed, Undo, More

Reading Due: Olsen, ch. 13 and 14

3/13 Constraints

Reading Due: http://www.itlabs.umn.edu/classes/Spring-2000/csci5116/tclprop.pdf

3/15 TCL/TK issues

3/20 Text and Canvas Widgets

Reading Due: Olsen, ch. 11

3/22 TCL/TK Debrief

Tcl/Tk Assignment Due

3/27 Spring Break

3/29 Spring Break

4/3 Java:  Introduction and Applets

Reading Due:  Vartan, ch. 2 and 3

4/5 Java: Swing and AWT

Reading Due:  Vartan, ch. 4, 6, and 8

4/10 Java:  Layout and Events

Reading Due:  Vartan, ch. 9

4/12 MVC

Reading Due:  Vartan, ch. 10, Olsen ch. 5 and 6

4/17 Servlets

Reading Due:  http://www.novocode.com/doc/servlet-essentials (chapters 1-4).

4/19 Exam (covers through 4/12)

4/24 Java Issues

4/26 Internationalization and Resources

Reading Due:  Olsen, ch. 7.1 and 7.2

5/1 Java Debrief

Java Assignment Due

5/3 Toolkit Comparison & Course Wrap-up