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

EcoSim: a language and experience teaching parallel programming in elementary school

Published:29 February 2012Publication History

ABSTRACT

Traditional introductory programming classes teach sequential programming using a single-threaded programming model. It is typical to wait until a student has developed proficiency in sequential programming before teaching parallel programming. As computer hardware becomes increasingly parallel, there is a greater need for software engineers who are proficient in designing parallel programs, and not just by "parallelizing" sequential designs. Teaching parallelism first is an important step towards educating tomorrow's programmers.

We present an overview of a five-day introductory parallel programming course. We taught the course to nine and ten year-olds with no prior programming experience. Our course utilized a fundamentally parallel language we designed for the course, one with a near-natural language syntax that exposed the parallel processors throughout the code. This language, coupled with an interactive online programming environment, allowed us to teach a wide range of parallel programming concepts in a very limited timeframe.

We also present examples of student-written code that demonstrates their understanding of some basic parallel programming concepts, and we describe the overall course goal and specific lesson plans geared towards teaching students how to "think parallel."

References

  1. Arduino. Available: http://arduino.cc.Google ScholarGoogle Scholar
  2. Picocricket. Available: http://picocricket.com.Google ScholarGoogle Scholar
  3. General Information Manual, IBM Commercial Translator. IBM Corporation, New York, 1959.Google ScholarGoogle Scholar
  4. The go programming language. http://golang.org, accessed on August 6, 2011.Google ScholarGoogle Scholar
  5. Archives for programming languages. http://gpgpu.org/tag/programming-languages, accessed on July 31, 2011.Google ScholarGoogle Scholar
  6. Apple, Inc. Applescript overview. http://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptX/AppleScriptX.pdf, accessed on August 9, 2011.Google ScholarGoogle Scholar
  7. K. Asanovic, R. Bodik, J. Demmel, T. Keaveny, K. Keutzer, J. Kubiatowicz, N. Morgan, D. Patterson, K. Sen, J. Wawrzynek, D. Wessel, and K. Yelick. A view of the parallel computing landscape. Communcations of the ACM, 52:56--67, October 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. P. Charles, C. Grotho , V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: an object-oriented approach to non-uniform cluster computing. SIGPLAN Not., 40:519--538, October 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. R. Cook, C. M. Pancake, and R. Walpole. Are expectations for parallelism too high?: a survey of potential parallel users. In Proceedings of the 1994 ACM/IEEE conference on Supercomputing, pages 126--133. ACM, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. Cooper, W. Dann, and R. Pausch. Alice: a 3-d tool for introductory programming concepts. J. Comput. Small Coll., 15:107--116, April 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Henrickson. A direct interaction tool for object-oriented programming education. Master's thesis, University of Southen Denmark, Maersk Mc-Kinney Moller Inst. for Production Technology, 2004.Google ScholarGoogle Scholar
  12. R. Hockney and C. Jesshope. Parallel computers 2: Architecture, programming, and algorithms, volume 2. Taylor & Francis, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. Johnson, D. Kotz, and F. Makedon. Teaching parallel computing to freshman. In Conference on Parallel Computing for Undergraduates, pages 1--7, 1994.Google ScholarGoogle Scholar
  14. D. Klein. The introduction, increase, and crash of reindeer on St. Matthew Island. The Journal of Wildlife Management, pages 350--367, 1968.Google ScholarGoogle Scholar
  15. W. A. LLC. WolframjAlpha: Computational knowledge engine. http://www.wolframalpha.com, accessed on August 9, 2011.Google ScholarGoogle Scholar
  16. J. Maloney, M. Resnick, N. Rusk, B. Silverman, and E. Eastmond. The scratch programming language and environment. ACM Transactions on Computing Education, November 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. McMillen. St. matthew island. http://www.recombinantrecords.net/2011/02/09/st-matthew-island, accessed on August 6, 2011.Google ScholarGoogle Scholar
  18. C. Nevison. Parallel computing in the undergraduate curriculum. Computer, 28(12):51--56, December 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Papert. Mindstorms: children, computers, and powerful ideas. Basic Books, Inc., New York, NY, USA, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. K. T. Steele. Kodu language and grammar specification. http://research.microsoft.com/en-us/projects/kodu/kodugrammar.pdf, August 2010.Google ScholarGoogle Scholar
  21. S. T. Taft. Designing parasail, a new programming language. http://parasail-programming-language.blogspot.com, accessed on Auguet 9, 2011.Google ScholarGoogle Scholar
  22. S. Torbert, U. Vishkin, R. Tzur, and D. J. Ellison. Is teaching parallel algorithmic thinking to high school students possible?: one teacher's experience. In Proceedings of the 41st ACM technical symposium on computer science education, SIGCSE '10, pages 290--294. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J. Tourino, M. Martin, J. Tarrio, and M. Arenaz. A grid portal for an undergraduate parallel programming course. Education, IEEE Transactions on, 48(3):391--399, aug. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. EcoSim: a language and experience teaching parallel programming in elementary school

          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 '12: Proceedings of the 43rd ACM technical symposium on Computer Science Education
            February 2012
            734 pages
            ISBN:9781450310987
            DOI:10.1145/2157136

            Copyright © 2012 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: 29 February 2012

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            SIGCSE '12 Paper Acceptance Rate100of289submissions,35%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