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."
- Arduino. Available: http://arduino.cc.Google Scholar
- Picocricket. Available: http://picocricket.com.Google Scholar
- General Information Manual, IBM Commercial Translator. IBM Corporation, New York, 1959.Google Scholar
- The go programming language. http://golang.org, accessed on August 6, 2011.Google Scholar
- Archives for programming languages. http://gpgpu.org/tag/programming-languages, accessed on July 31, 2011.Google Scholar
- Apple, Inc. Applescript overview. http://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptX/AppleScriptX.pdf, accessed on August 9, 2011.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- R. Hockney and C. Jesshope. Parallel computers 2: Architecture, programming, and algorithms, volume 2. Taylor & Francis, 1988. Google ScholarDigital Library
- D. Johnson, D. Kotz, and F. Makedon. Teaching parallel computing to freshman. In Conference on Parallel Computing for Undergraduates, pages 1--7, 1994.Google Scholar
- D. Klein. The introduction, increase, and crash of reindeer on St. Matthew Island. The Journal of Wildlife Management, pages 350--367, 1968.Google Scholar
- W. A. LLC. WolframjAlpha: Computational knowledge engine. http://www.wolframalpha.com, accessed on August 9, 2011.Google Scholar
- 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 ScholarDigital Library
- S. McMillen. St. matthew island. http://www.recombinantrecords.net/2011/02/09/st-matthew-island, accessed on August 6, 2011.Google Scholar
- C. Nevison. Parallel computing in the undergraduate curriculum. Computer, 28(12):51--56, December 1995. Google ScholarDigital Library
- S. Papert. Mindstorms: children, computers, and powerful ideas. Basic Books, Inc., New York, NY, USA, 1980. Google ScholarDigital Library
- K. T. Steele. Kodu language and grammar specification. http://research.microsoft.com/en-us/projects/kodu/kodugrammar.pdf, August 2010.Google Scholar
- S. T. Taft. Designing parasail, a new programming language. http://parasail-programming-language.blogspot.com, accessed on Auguet 9, 2011.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- EcoSim: a language and experience teaching parallel programming in elementary school
Recommendations
Bridging ICT and CS: educational standards for computer science in lower secondary education
ITiCSE '09Recently, the importance of computer science education in secondary schools has been coming more and more into focus. Students' interests and motivation to pursue a career in CS related fields are highly influenced by school. Also beliefs in the nature ...
Bridging ICT and CS: educational standards for computer science in lower secondary education
ITiCSE '09: Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science educationRecently, the importance of computer science education in secondary schools has been coming more and more into focus. Students' interests and motivation to pursue a career in CS related fields are highly influenced by school. Also beliefs in the nature ...
Developing resources to support a national computer science curriculum for K-12
SIGCSE '07: Proceedings of the 38th SIGCSE technical symposium on Computer science educationThis session will continue efforts by the ACM and Computer Science Teachers Association (CSTA) to create a comprehensive body of resources to support the implementation of a national K-12 computer science curriculum. The ACM K-12 Computer Science ...
Comments