Introduction to computer science (3rd ed.)
Introduction to computer science (3rd ed.)
Alice: easy to learn interactive 3D graphics
ACM SIGGRAPH Computer Graphics
RSIM: Rice simulator for ILP multiprocessors
ACM SIGARCH Computer Architecture News
VCOCO: a visualisation tool for teaching compilers
ITiCSE '98 Proceedings of the 6th annual conference on the teaching of computing and the 3rd annual conference on Integrating technology into computer science education: Changing the delivery of computer science education
Advanced compiler design and implementation
Advanced compiler design and implementation
CSIM: a C-based process-oriented simulation language
WSC '86 Proceedings of the 18th conference on Winter simulation
Assembly language through the Java virtual machine
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Cool: a portable project for teaching compiler construction
ACM SIGPLAN Notices
The knob & switch computer: A computer architecture simulator for introductory computer science
Journal on Educational Resources in Computing (JERIC)
Automatically characterizing large scale program behavior
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Jeroo: a tool for introducing object-oriented programming
SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
Visualizing the Execution of Java Programs
Revised Lectures on Software Visualization, International Seminar
Proceedings of the 2003 ACM symposium on Software visualization
Exploring the role of visualization and engagement in computer science education
Working group reports from ITiCSE on Innovation and technology in computer science education
Proceedings of a symposium on Compiler optimization
Introduction to Computing Systems: From Bits & Gates to C & Beyond
Introduction to Computing Systems: From Bits & Gates to C & Beyond
MarieSim: The MARIE computer simulator
Journal on Educational Resources in Computing (JERIC)
SPIMbot: an engaging, problem-based approach to teaching assembly language programming
Proceedings of the 36th SIGCSE technical symposium on Computer science education
Pin: building customized program analysis tools with dynamic instrumentation
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
GSPIM: graphical visualization tool for MIPS assembly programming and simulation
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Tools for teaching introductory programming: what works?
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Avrora: scalable sensor network simulation with precise timing
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
Using a machine language simulator to teach CS1 concepts
ITiCSE-WGR '06 Working group reports on ITiCSE on Innovation and technology in computer science education
An integrated learning support environment for computer architecture
WCAE-3 '97 Proceedings of the 1997 workshop on Computer architecture education
The SimCore/Alpha Functional Simulator
WCAE '04 Proceedings of the 2004 workshop on Computer architecture education: held in conjunction with the 31st International Symposium on Computer Architecture
Supporting the rapid development of pedagogically effective algorithm visualizations
Journal of Computing Sciences in Colleges - Papers of the Fourteenth Annual CCSC Midwestern Conference and Papers of the Sixteenth Annual CCSC Rocky Mountain Conference
Bantam: a customizable, java-based, classroom compiler
Proceedings of the 39th SIGCSE technical symposium on Computer science education
'scratch' your way to introductory cs
Proceedings of the 39th SIGCSE technical symposium on Computer science education
HDPV: interactive, faithful, in-vivo runtime state visualization for C/C++ and Java
Proceedings of the 4th ACM symposium on Software visualization
Editorial: Program and Algorithm Visualization in Education
ACM Transactions on Computing Education (TOCE) - Special Issue on the 5th Program Visualization Workshop (PVW’08)
A Survey of Successful Evaluations of Program Visualization and Algorithm Animation Systems
ACM Transactions on Computing Education (TOCE) - Special Issue on the 5th Program Visualization Workshop (PVW’08)
ACM SIGARCH Computer Architecture News
Computer Organization and Architecture: Designing for Performance
Computer Organization and Architecture: Designing for Performance
MieruCompiler: integrated visualization tool with "horizontal slicing" for educational compilers
Proceedings of the 41st ACM technical symposium on Computer science education
A More Precise Abstract Domain for Multi-level Caches for Tighter WCET Analysis
RTSS '10 Proceedings of the 2010 31st IEEE Real-Time Systems Symposium
Phase-based tuning for better utilization of performance-asymmetric multicore processors
CGO '11 Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization
The case for assembly language programming
IEEE Transactions on Education
IEEE Transactions on Education
Hi-index | 0.00 |
Students in all areas of computing require knowledge of the computing device including software implementation at the machine level. Several courses in computer science curricula address these low-level details such as computer architecture and assembly languages. For such courses, there are advantages to studying real architectures instead of simplified examples. However, real architectures and instruction sets introduce complexity that makes them difficult to grasp in a single semester course. Visualization techniques can help ease this burden, unfortunately existing tools are often difficult to use and consequently difficult to adopt in a course where time is already limited. To solve this problem, we present Frances. Frances graphically illustrates key differences between familiar high-level languages and unfamiliar low-level languages and also illustrates how familiar high-level programs behave on real architectures. Key to this tool is that we use a simple Web interface that requires no setup, easing course adoption hurdles. We also include several features that further enhance its usefulness in a classroom setting. These features include graphical relationships between high-level code and machine code, clearly illustrated step-by-step machine state transitions, color coding to make instruction behavior clear, and illustration of pointers. We have used Frances in courses and performed experimental evaluation. Our experiences with Frances in the classroom demonstrate its usability. Most notably, in our experimental setting, students with no computer architecture course experience were able to complete lessons using Frances with no guidance.