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: (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 |