skip to main content
10.1145/2676723.2677210acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
research-article

Creating a Computer Simulator as a CS1 Student Project

Published:24 February 2015Publication History

ABSTRACT

This paper presents experiences with creating a computer simulator as a student project in a CS1 course. Each student writes the simulator using C++ during the last ten weeks of the course. The project consists of a simulated memory, and simple CPU simulator including a machine language. Additionally, students implement an assembly language and a simple high-level language with associated compiler. The course has no programming prerequisite and can be taken to fulfill a general education requirement or as the first course for students majoring in computer science or information systems. Integrating such a project in an entry level course has a number of benefits as well as challenges. The project acts as a vehicle that engages students in a breadth of computer science topics, leading into discussions of theoretical considerations, languages, and computing devices. The project components provide an active learning environment. Students are introduced to numbering systems, number conversions, and numeric representations. The computer architecture components include introductions to main memory, CPU, and memory access techniques. The transition from and motivations for, the utilization of machine languages, assembly languages and high-level languages are demonstrated with the implementation of the project. Beginning students are given opportunity to practice programming and problem solving on a project of significant complexity. The biggest challenge is organization. Management of such a project requires a well-defined plan.

References

  1. Peter Denning, Douglas E. Comer, David Gries, Michael C. Mulder, Allen B. Tucker, A. Joe Turner, and Paul R. Young. 1988. Computing as a discipline: preliminary report of the ACM task force on the core of computer science. SIGCSE Bull. 20, 1, 41--41, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. IEEE & ACM Joint Task Force on Computing Curricula, Computing Curricula 2001 Computer Science, December 15, 2001, http://acm.org/education/curric_vols/cc2001.pdf, retrieved June 4, 2014.Google ScholarGoogle Scholar
  3. IEEE Computer Society and Association for Computing Machinery Joint Task Force on Computing Curricula "Computer Science Curricula 2013 " http://www.acm.org/education/CS2013-final-report.pdf retrieved May 26, 2014.Google ScholarGoogle Scholar
  4. John Phillips. 2007. Simulation of a simple CPU design and its use as an instructional tool in a computer organization course. J. Comput. Sci. Coll. 22, 6 (June 2007), 140--146. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Kian L. Pokorny, Introduction to computing: a fresh breadth of disciplines. J. Comput. Small Coll. 24, 5, 166--172, 2009. classes. J. Comput. Sci. Coll. 29, 2 (December 2013), 60--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Kris D. Powers. 2004. Teaching computer architecture in introductory computing: why? And how?. In Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30(ACE '04), Raymond Lister and Alison Young (Eds.), Vol. 30. Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 255--260. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Stanley, Prigmore, Mikolyski, Embrey, Fife, (2007 June) "Pedagogic Value in Understanding Computer Architecture of Implementing the Marie Computer from Null and Lobur in the Logic Emulation Software, Multimedia Logic", Proceedings of the Workshop on Computer Architecture Education, 34th International Symposium on Computer Architecture, p 66--71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Timothy D. Stanley, Dennis Fairclough, Roger deBry, and Reza Kamali-Sarvestani. 2013. Using a simple emulated computer to facilitate understanding in introductory computer programming and computer organization/architecture classes. J. Comput. Sci. Coll. 29, 2 (December 2013), 60--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Jeffrey A. Stone. 2006. Using a machine language simulator to teach CS1 concepts. SIGCSE Bull. 38, 4 (June 2006), 43--45. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Creating a Computer Simulator as a CS1 Student Project

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      SIGCSE '15: Proceedings of the 46th ACM Technical Symposium on Computer Science Education
      February 2015
      766 pages
      ISBN:9781450329668
      DOI:10.1145/2676723

      Copyright © 2015 ACM

      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: 24 February 2015

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      SIGCSE '15 Paper Acceptance Rate105of289submissions,36%Overall Acceptance Rate1,595of4,542submissions,35%

      Upcoming Conference

      SIGCSE Virtual 2024
      SIGCSE Virtual 2024: ACM Virtual Global Computing Education Conference
      November 30 - December 1, 2024
      Virtual Event , USA

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader