Integrating visualization to make programming concepts concrete
Soleda T. Leung · 2006
Early programming experiences often set the threshold for making or breaking future software development professionals. Current software development requires programmers' thorough understanding of modern programming concepts that are multi-tiered and that require a high level of abstractions. While these concepts may have taken years to evolve we require our undergraduate students to grasp them within the first two years of their studies. Fortunately modern software development platforms, such as Dot Net, offer easy to use IDE, readily available libraries, easy connectivity to databases as well as access to multimedia capabilities. Programming instructors can easily incorporate these tools to making intricate and abstract programming concepts appear natural and simple for our students to grasp.The author has experimented with using simple GDI+ provided by Dot Net to illustrate programming abstraction with concrete representations. Common to these programs are graphical demonstrations of intricate programming concepts and/or algorithms, such as sort routines, classes verses objects, inheritance, interface, recursion, threading and multi-threading, events and delegates, etc. Most can be converted or extended to a one- to two-week lab/homework assignment. When students visualize in "actions" what they have programmed, they are more readily inclined to associate concepts with application. "A picture is worth a thousand words", definitely applies here; especially when the "picture" they have created appears in "motion" and is fascinating to view.