10 research outputs found

    Frances: A Tool for Understanding Computer Architecture and Assembly Language

    Get PDF
    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

    Frances: A tool for understanding code generation

    Get PDF
    Compiler and programming language implementation courses are integral parts of many computer science curricula. However, the range of topics necessary to teach in such a course are difficult for students to understand and time consuming to cover. In particular, code generation is a confusing topic for students unfamiliar with low level target languages. We present Frances, a tool for helping students understand code generation and low level languages. The key idea is to graphically illustrate the relationships between high level language constructs and low level (assembly) language code. By illustrating these relationships, we take advantage of the students existing understanding of some high level language. We have used Frances in a compiler design course and received highly positive feedback. Students conveyed to us that Frances significantly helped them to understand the concepts necessary to implement code generation in a compiler project

    Frances

    No full text

    Using high-performance computing artifacts as a learning intervention : a systematic literature review

    No full text
    High-Performance Computing (HPC) artifacts provide opportunities for students to improve their understanding of parallel computing, which is important for students who study computer science. In line with that, many computing departments are integrating HPC systems into their curricula. However, there is a need to investigate HPC artifacts that have been used as learning interventions. This study has employed a systematic literature review to investigate published papers on HPC education from 1988 to 2018. The findings of our investigation of a stratified sample of 211 papers reveal the state of the practice of application of HPC artifacts in computing education in terms of the contexts, themes, nature and topics of the publications. The study revealed that a majority of publications reported the usage of Beowulf and other clusters as the pedagogical tools. Furthermore, the study discovered gaps in research on the application of HPC artifacts in ability and aptitude, teaching and learning, teaching and learning techniques, curriculum, parallel programming, and parallel processing. This study contributes to our understanding of what HPC artifacts are used in computer science education
    corecore