Areas of interest: computer science education, service learning, software engineering, human-computer interaction, simulation |
MARS: THE MIPS ASSEMBLER AND RUNTIME SIMULATOR
with Dr. Ken Vollmar of Missouri State University
MARS is a GUI-based interactive development environment (IDE) to support programming in MIPS assembly language. MIPS is a RISC-based computer architecture most popularly taught in the textbook Computer Organization and Design by Patterson and Hennessy. Ken teaches the computer organization course at MSU and was looking for a viable alternative to the SPIM simulator that most instructors use. Simulators are important for MIPS instruction because few computer science or engineering departments possess a computer based on the MIPS architecture.
Development of MARS began in earnest in 2003 with a command-based assembler and simulator and continued into 2004 with the GUI framework built on top to make it much more pleasant to use. One outstanding feature is support for runtime simulation, with a number of features to support breakpoints, stepped execution, interactive viewing and direct modification of memory and register values, and more. Another outstanding feature is the ability to add plug-in "tools", pop-up modules which can interact with elements of a running MIPS program to visualize and perhaps control its behavior.
We presented a poster on MARS at the 2005 SIGCSE Technical Symposium in St. Louis, and a paper at the 2006 SIGCSE symposium in Houston. We also subsequently presented it at several CCSC (Consortium for Computing Sciences in Colleges) conferences. MARS has been well-received and is now used by instructors and students world-wide! We are both teaching professors so we work on MARS mostly during the summer, but are able to produce two releases each year.
MARS is available as an executable JAR file that requires no installation. Download it from http://www.cs.missouristate.edu/MARS/
Related publications:
This paper, presented at CCSC Midwest Region conference in 2003, addresses the state of service-learning in computer science education. It introduces service-learning and information resources for service-learning. IT also surveys published accounts of service-learning applied in the computer science curriculum at various colleges and universities. I have been involved in service-learning since 1998. Student service-learning experiences have for the most part consisted of team development of specialized software for non-profit organizations. At Southwest Missouri State University, the software was developed as the Software Engineering course project with one additional credit for a service learning course. At Otterbein College, the software is developed as the students' capstone Programming Practicum project.
This paper was presented at the 2000 SIGCSE Technical Symposium in Austin. It introduces service learning but focuses on a framework through which interested institutions can develop and sustain a service learning component in their computer science curriculum. It addresses issues such as institutional and departmental support, establishing service learning courses, considerations in the development of service learning projects and selecting community partners, and assessment.
with: Tuyet-Lan Tran, Josef S. Sherif, Susan S. Lee, Jet Propulsion Laboratory, Pasadena, CA.
NASA/ASEE Summer Faculty Fellowship, 1996.
NASA is committed to the timely development and delivery of operational systems within budget constraints. These goals can be achieved only by applying a model for software development risk management. Such a model must consider the dimensions of risk, risk activities, risk factors, and risk metrics. This project considers metrics for managing risk in the development of object-oriented software at JPL.
with: Tuyet-Lan Tran, Josef S. Sherif, Susan S. Lee, Jet Propulsion Laboratory, Pasadena, CA.
NASA/ASEE Summer Faculty Fellowship, 1995.
As object-oriented software development methods come into more
widespread use, basic questions of software quality assurance must be revisited.
We will highlight efforts now underway at NASA's Jet Propulsion Laboratory
to both assess the quality of software systems developed using object-oriented
technology and develop guidelines for future development of such systems.
The current focus is on design and code reusability, and system size estimation.
A number of metrics are proposed, and two JPL software systems measured
and analyzed. The preliminary results reported here should be particularly
useful to software development and quality assurance personnel working
in a C++ implementation environment.
My graduate school research followed two paths, one in the design of object-oriented simulations languages. Quite a progressive thing for 1988! The other was software structures to support adaptive user interface systems. The latter became the basis for my 1991 Ph.D. dissertation. Five years later, such adaptive systems became all the rage on the Web but by that time I was a teaching professor with few resources to devote to a renewed pursuit. Hard to believe, but my original adaptive user interface was implemented using text-mode graphics on a DOS platform in C++! This was just before Windows 3.1 made that a viable platform.
Related Publication
Baldwin, D., Sanderson, P., McCartney, R., Ludi, S., Ramachandran, N. T.,
and Taylor, C. 2011. SIGCSE special project showcase. In Proceedings of the
42nd ACM Technical Symposium on Computer Science Education (Dallas, TX, USA,
March 09 - 12, 2011). SIGCSE '11. ACM, New York, NY, 5-6.
Sanderson, P. and Vollmar, K.
2007. A nifty tool for studying program and system behaviors: nifty tools. J.
Comput. Sci. Coll. 23, 1 (Oct. 2007), 111-112.
Sanderson, P. and
Vollmar, K. 2007. An assembly language I.D.E. to engage students of all levels:
tutorial presentation. J. Comput. Sci. Coll. 22, 4 (Apr. 2007), 122-122.
Vollmar, K. and Sanderson, P. 2006. MARS: an education-oriented MIPS
assembly language simulator. In Proceedings of the 37th SIGCSE Technical
Symposium on Computer Science Education (Houston, Texas, USA, March 03 - 05,
2006). SIGCSE '06. ACM, New York, NY, 239-243.
Sanderson, P. 2003. Where's
(the) computer science in service-learning?. J. Comput. Sci. Coll. 19, 1
(Oct. 2003), 83-89.
Sanderson, P. 2001. No-nonsense guide to CSAB/CSAC
accreditation. In Proceedings of the Seventh Annual Consortium For Computing
in Small Colleges Central Plains Conference on the Journal of Computing in Small
Colleges (Branson, Missouri, United States). J. G. Meinke, Ed. Consortium
for Computing Sciences in Colleges, 271-278.
Sanderson, P. and Vollmar,
K. 2000. A primer for applying service learning to computer science. In
Proceedings of the Thirty-First SIGCSE Technical Symposium on Computer
Science Education (Austin, Texas, United States, March 07 - 12, 2000). S.
Haller, Ed. SIGCSE '00. ACM, New York, NY, 222-226.
Sherif, J. S. and Sanderson, P.
1998. Metrics for object-oriented software projects. J. Syst. Softw. 44,
2 (Dec. 1998), 147-154.
Sanderson, D. P. 1992 Structured Design of an Adaptive Human-Computer
Interface. Doctoral Thesis. UMI Order Number: UMI Order No. GAX92-18890.,
University of Pittsburgh.
Treu, S., Sanderson, D. P., Rozin, R., and
Sharma, R. 1991. High-level, three-pronged design methodology for N-CHIME
interface system software. Inf. Softw. Technol. 33, 5 (Jun. 1991),
306-320.
Sanderson,
D. P., Sharma, R., Rozin, R., and Treu, S. 1991. The hierarchical simulation
language HSL: a versatile tool for process-oriented simulation. ACM Trans.
Model. Comput. Simul. 1, 2 (Apr. 1991), 113-153.
Sanderson, D. P. and Rose, L.
L. 1988. Object-oriented modeling using C++. In Proceedings of the 21st
Annual Symposium on Simulation (Tampa, Florida, United States). M. A.
Abrams, Ed. IEEE Computer Society Press, Los Alamitos, CA, 143-156.
Peter Sanderson ( PSanderson@otterbein.edu )