Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Virtual machines: abstraction and implementation

Published: 06 July 2009 Publication History

Abstract

Various forms of virtualization play key roles in the construction and usage of diverse system artifacts ranging from modern compilers to hardware migration to mobile computing. Virtualization is also a powerful concept on cognitive grounds, requiring considerable abstraction skills and modeling abilities. We present a methodology, a software tool, and a set of instructional resources designed to expose students to virtual machines, focusing on both abstraction and implementation issues. An early version of our methodology appeared in a book form [4] in which we describe how to build a complete computer system - hardware and software - in one semester. Recently we've re-written our VM emulation software and consolidated all our VM materials into a web site that supports a stand-alone module on virtual machines [5]. This module can be plugged into many system-oriented CS courses. All the resources that we present are freely available in open source and are presently used successfully in several universities.

References

[1]
Computing Curricula 2001: Final Report, IEEE Computer Society/ACM. (2001). www.sigcse.org/cc2001, Page 27.
[2]
Hazzan, O. and Tomayko, J. (2005). Reflection and Abstraction Processes in the Learning of the Human Aspects of Software Engineering, IEEE Computer 38(6), pp. 39--45.
[3]
Kramer, J. (2007). Is abstraction the key to computing?, Communications of the ACM, Vol. 50, No. 4, pp. 37--42.
[4]
Nisan, N., Schocken, S. (2005). The Elements of Computing Systems. Cambridge, MA: MIT Press. Companion web site: www.idc.ac.il/tecs
[5]
Nisan, N., Schocken, S. (2009). Virtual Machine Software and Projects (2009), http://www.idc.ac.il/vm
[6]
Schocken, S., Nisan, N. Armoni, M. (2009): A Synthesis Course in Hardware Architecture, Compilers, and Software Engineering, SIGCSE 2009.
[7]
Stolin, Y. and Hazzan, O. (2007). Students' understanding of Computer Science soft ideas: The case of programming paradigm, inroads the SIGCSE Bulletin 39(2), pp. 65--69.
[8]
The Role of Abstraction in Software Engineering, Workshop Proceeding in ICSE 2008, Leipzig, Germany, May 2008, http://edu.technion.ac.il/Courses/cs_methods/AbstractionWorkshop/ROA2008/ICSE2008_CfP_ROA_Workshop.htm
[9]
Wing, J. M. (2006). Computational Thinking, CACM 49(3), pp. 33--35.

Cited By

View all
  • (2010)A compiler‐based toolkit to teach and learn finite automataComputer Applications in Engineering Education10.1002/cae.2049221:3(467-474)Online publication date: 13-Oct-2010
  • (2017)Multiple Levels of Abstraction in Algorithmic Problem SolvingProceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education10.1145/3017680.3017801(237-242)Online publication date: 8-Mar-2017

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGCSE Bulletin
ACM SIGCSE Bulletin  Volume 41, Issue 3
ITiCSE '09
September 2009
403 pages
ISSN:0097-8418
DOI:10.1145/1595496
Issue’s Table of Contents
  • cover image ACM Conferences
    ITiCSE '09: Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
    July 2009
    428 pages
    ISBN:9781605583815
    DOI:10.1145/1562877
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 July 2009
Published in SIGCSE Volume 41, Issue 3

Check for updates

Author Tags

  1. abstraction.
  2. compilation
  3. programming paradigms
  4. software engineering
  5. virtual machines

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2010)A compiler‐based toolkit to teach and learn finite automataComputer Applications in Engineering Education10.1002/cae.2049221:3(467-474)Online publication date: 13-Oct-2010
  • (2017)Multiple Levels of Abstraction in Algorithmic Problem SolvingProceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education10.1145/3017680.3017801(237-242)Online publication date: 8-Mar-2017

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media