Asee peer logo

Using Graph Theory Visualization to Motivate Software Engineering Concepts

Download Paper |

Conference

2011 ASEE Annual Conference & Exposition

Location

Vancouver, BC

Publication Date

June 26, 2011

Start Date

June 26, 2011

End Date

June 29, 2011

ISSN

2153-5965

Conference Session

SE Tools and Techniques

Tagged Division

Software Engineering Constituent Committee

Page Count

16

Page Numbers

22.1621.1 - 22.1621.16

DOI

10.18260/1-2--18923

Permanent URL

https://strategy.asee.org/18923

Download Count

454

Request a correction

Paper Authors

biography

Shane Markstrum Bucknell University

visit author page

Shane Markstrum is an Assistant Professor of Computer Science at Bucknell University. His primary research focus is on the intersection of programming languages and software engineering language tools. His recent work in this area includes the JavaCOP pluggable type framework for Java, and refactoring support in Eclipse for the X10 language. At Bucknell, he has taught the Introduction to Computer Science courses, as well as courses on the theory of computation and theory of programming languages. Prior to arriving at Bucknell, Prof. Markstrum received his Ph.D. in Computer Science from UCLA.

visit author page

author page

Gary M. Haggard Bucknell University

Download Paper |

Abstract

Using Graph Theory Visualization to Motivate Software Engineering Concepts Gary Haggard Shane Markstrum Bucknell University Bucknell University Abstract The step from programming simple, well-defined problems to solv- ing open-ended problems is important for students to take several times in their education. The Graphs, Algorithms, and Software Engineering course provides an open-ended, event-driven software development project suited for small groups that fits well as a second or third year elective and allows experience with project design prior to a culminating undergradu- ate experience. The primary project of the course is a GUI-based visual- ization tool written in Java for describing concepts of graph theory such as connectedness, traversal orderings, spanning trees, and Euler circuits. By varying the number and type of graph theory topics implemented by the GUI, the project can adapted to suit the expected background the students in the elective. While this course is described as using Java, the approach can be used with any language with good support of data ab- straction and a significant library that allows for easy GUI development. The course is built to reinforce good software development practices through the academic term. As there are many possible design decisions to make at each stage of the project, students learn the value of developing clear software specifications for group cohesion. The requirement to share parts of the code among groups further motivates the use of a number of design patterns such as singleton, template, and abstract factory. Further, it promotes the benefits of a well-defined class or module interface and document generation tools such as Javadoc. Students learn about code reuse by using appropriate library-implemented data structures. Students must also design and administer a user study to a targeted group of users, such as students in an introductory level computer science course, for feedback on their developed prototype. By conducting a user study, they learn how early feedback is incorporated back into the software develop- ment lifecycle. Significant attention is paid to the design and implementation process. Group dynamics are very important so that the early foundational work of each group can be leveraged to make the project bigger than they expect. Once the class decides on specifications for the overall design of the project a great deal of interaction between and among groups shows students how to leverage both their own and others’ specific knowledge in solving problems. The class reexamines design issues at the end of the project. 1Students become so familiar with design decisions that were made andenforced throughout the project that a very sophisticated conversationtakes place with students explaining what they liked about the designand changes they would like to see. These discussions are used to exploredifferent design options each time the course is offered. 2

Markstrum, S., & Haggard, G. M. (2011, June), Using Graph Theory Visualization to Motivate Software Engineering Concepts Paper presented at 2011 ASEE Annual Conference & Exposition, Vancouver, BC. 10.18260/1-2--18923

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2011 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015