CSC 404/504: Program Monitoring and Visualization

Professor: Clinton Jeffery
Office: JEB 230, 885-4789 E-mail: jeffery@cs.uidaho.edu
Meets: TR 4:30-5:45PM, JEB 328
Web: http://www2.cs.uidaho.edu/~jeffery/courses/monvis/
Texts: "Program Monitoring and Visualization", by Jeffery
references and technical reports from Unicon.org
selected research papers

Course Description

This course presents program monitoring and visualization, the field of monitoring and graphically depicting the dynamic behavior program executions. The course will present topics in software instrumentation, static and dynamic analysis, graphic design, visualization, and algorithm animation. The current state of the art in the literature will be examined. Students will develop 2D and 3D program visualization tools in an experimental environment.

Course Organization

This course will have several small units with short assignments designed to teach specific topics, followed by a semester project in which you will build a usable, and hopefully useful, program visualization tool. Assignment turnins will be accompanied by short presentations of your work in class. The semester project will be worked on individually or in pairs.

Schedule

Week 1: Introduction
Week 2: Static and Dynamic Analysis
Week 3: Manual Instrumentation
Week 4: Trace Files and Post-Mortem Analysis
Week 5: Profiling
Week 6: Run-time Monitoring
Week 7: ALAMO monitor architecture
Week 8: Automatic debugging
Week 9: Event patterns and grammars
Week 10: 2D visualization techniques
Week 11: 3D visualization techniques
Week 12: Visualizing program location and control flow
Week 13: Visualizing data structure activity
Week 14: Visualizing memory allocation and garbage collection
Week 15: Visualizing string scanning and pattern matching
Week 16: Final Project demonstrations

Grading

Each unit will comprise approximately 20% of your grade. For each unit, 70% of your grade will be based on your implementation, 20% on your documentation, and 10% on your in-class presentation and discussion.

Policy Statements

Project phases will not be accepted late; turn in what you have on the due date, even if it is incomplete. Attendance of class periods is required. You may discuss assignments and code examples with classmates. If you work together on an assignment, turn in a signle copy with both names on it; more will be expected of teams than of individuals: more and better code, more documentation, more depth to your work.