![]() |
Dr.
Ching-Kuang Shene is on a mission to make the increasingly complex world of
Computer Science accessible to undergraduates. He is applying his expertise in
Computer Graphics to the Visualizing Everything in Computer Science project, which has produced visualization
tools used in classrooms worldwide. Having developed tools for several
sub-disciplines of Computer Science, and being funded by over $900,000 over 8
years, he is well on his way to achieving the project's goal to use visualization
to “overcome the shortcoming of the learning-by-doing approach.”
|
||
DesignMentor
allows a user to manipulate curves (Bézier, B-spline and NURBS.) Here,
the important properties of the strong convex hull, moving triad, curvature
sphere, and de Boor's algorithm for curve tracing of a NURBS curve of degree
4 are clearly displayed. |
||
|
|
|
DesignMentor
also allows a user to design various commonly used surfaces. The above left
shows the profile and trajectory curves of a skinned surface design, the
middle one has the generated wireframe and control points, and the right one
shows the rendered result which is a NURBS surface. |
The
|
|
ThreadMentor
allows a user to see the status of each thread in a multithreaded program. |
|
|
|
ThreadMentor
is also able to show all
synchronization events in a chronological order and their inter-relation with
"links." Here the threads are using a common synchronization
mechanism called a “semaphore.” Tags SS, SW and SE indicate
semaphore signal, semaphore wait and semaphore release |
|
|
|
ConcurrentMentor
serves the same purpose as ThreadMentor; but, it is designed for distributed
computing. The above window shows the communication among four processes
reaching agreement on a value when one process may be faulty (the Byzantine
Generals Problem.) The tags show message sending (CS) and receiving (CR)
activities (as well as vector times.) |
Students are enthusiastic.
"The
function names were simple and easily remembered, unlike cryptic names found in
other libraries," observes one student. "[With the
visualization system, I am] able to see what was going on,"
says another. A third comments that "the visualization is cool." Instructors
are just as enthusiastic. "Concurrent programming is notoriously difficult.
Dr. Shene's visualization tools help me to engage students that are otherwise
hard to reach." The tools are even gaining attention
within the Open Source movement. "I am reading about this visualization environment
that helps newbies write multithreaded programs and thinking GNU Common C++
needs an interface like that," says a visitor to the
GNU Enterprise Public IRC, a public forum for developers in the GNU Enterprise
project that is constructing a framework for development and deployment of
data-aware applications. Another visitor responds, "I wish OS class
was as good as the course that uses ThreadMentor."
There have been over 2000
downloads of the