MTU Computer Science Spotlight

 

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 Mentor series software developed by this project includes DesignMentor, ThreadMentor, ConcurrentMentor, and GraphicsMentor. DesignMentor, developed along with Dr. John Lowther, helps students see beyond the complex mathematics used to describe curves and surfaces, by allowing them to step through important geometric algorithms and to easily manipulate curves and surfaces. ThreadMentor and ConcurrentMentor help students through the difficult task of learning to write concurrent programs by providing a simple and intuitive programming interface, and by providing visualization of common synchronization techniques. Both ThreadMentor and ConcurrentMentor were developed with Dr. Steve Carr and Dr. Jean Mayo. GraphicsMentor, developed with Dr. John Lowther, is designed to help students comprehend the complex relationship among illumination modes, lighting, color, modeling, animation, and camera characteristics in a lower level computer graphics course. Using GraphicsMentor, students can visualize the effect of changing rendering parameters and then recognize the correct results through experimentation.

 

 

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 Mentor series software locally. It is mirrored at other servers worldwide. Dr. Shene and his colleagues have published over 25 papers on this work. Schools using Mentor series software include MIT, Ohio State, University of Alaska, University of Alberta (Canada), Columbia University, University of Manchester (UK), University of Melbourne (Australia), University of Paris-South (France), Technische Fachhochschule Berlin (Germany), University of Magdeburg (Germany), University of Patras (Greek) and Verona University (Italy).