Integrating Parallel Computing in Introductory Programming Classes: An Experience and Lessons Learned

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10659)

Abstract

Parallel and distributed computing (PDC) has become ubiquitous to the extent that even common users depend on parallel programming. This points to the need for every programmer to understand how parallelism and distributed programming affect problem solving, teaching only traditional sequential programming is no longer sufficient. To address the rapidly widening gap between emerging highly-parallel computer architectures and the sequential programming approach taught in traditional CS/CE courses, the Computer Science Department at Tennessee Technological University has integrated PDC into their introductory programming course sequence. This paper presents our implementation efforts, experience and lessons learned, as well as preliminary evaluation results.

Keywords

Parallel and distributed computing Introductory programming Undergraduate education 

References

  1. 1.
    Parallel computing in the computer science curriculum. http://csinparallel.org/index.html. Accessed 11 Jan 2017
  2. 2.
    ACM. Computer Science 2013: Curriculum Guidelines for Undergraduate Programs in Computer Science. http://www.acm.org/education/CS2013-final-report.pdf. Accessed 11 Jan 2017
  3. 3.
    Digest of Education Statistics (2015). https://nces.ed.gov/programs/digest/d15/tables/dt15_317.10.asp?current=yes. Accessed 16 Jan 2017
  4. 4.
    Prasad, S.K., Gupta, A., Rosenberg, A., Sussman, A., Weems, C.: CDER Center – NSF/IEEE-TCPP Curriculum InitiativeGoogle Scholar
  5. 5.
    Ko, Y., Burgstaller, B., Scholz, B.: Parallel from the beginning: the case for multicore programming in the computer science undergraduate curriculum. In: Proceeding of the 44th ACM Technical Symposium on Computer Science Education. ACM (2013)Google Scholar
  6. 6.
    Adams, J.C.: Injecting parallel computing into CS2. In: Proceedings of the 45th ACM technical symposium on Computer science education. ACM (2014)Google Scholar
  7. 7.
    Geist, R., Levine, J.A., Westall, J.: A problem-based learning approach to GPU computing. In: Proceedings of the Workshop on Education for High-Performance Computing. ACM (2015)Google Scholar
  8. 8.
    Lupo, C., Wood, Z.J., Victorino, C.: Cross teaching parallelism and ray tracing: a project-based approach to teaching applied parallel computing. In: Proceedings of the 43rd ACM Technical Symposium on Computer Science Education. ACM (2012)Google Scholar
  9. 9.
    Burtscher, M., et al.: A module-based approach to adopting the 2013 ACM curricular recommendations on parallel computing. In: Proceedings of the 46th ACM Technical Symposium on Computer Science Education. ACM (2015)Google Scholar
  10. 10.
    Graham, J.R.: Integrating parallel programming techniques into traditional computer science curricula. ACM SIGCSE Bull. 39(4), 75–78 (2007)CrossRefGoogle Scholar
  11. 11.
    Neelima, B., Li, J.: Introducing high performance computing concepts into engineering undergraduate curriculum: a success story. In: Proceedings of the Workshop on Education for High-Performance Computing. ACM (2015)Google Scholar
  12. 12.
    Brown, R., Shoop, E.: CSinParallel and synergy for rapid incremental addition of PDC into CS curricula. In: 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops and Ph.D. Forum (IPDPSW). IEEE (2012)Google Scholar
  13. 13.
    Brown, R., Shoop, E.: Modules in community: injecting more parallelism into computer science curricula. In: Proceedings of the 42nd ACM Technical Symposium on Computer Science Education. ACM (2011)Google Scholar
  14. 14.
    Adams, J., Brown, R., Shoop, E.: Patterns and exemplars: compelling strategies for teaching parallel and distributed computing to CS undergraduates. In: 2013 IEEE 27th International Parallel and Distributed Processing Symposium Workshops and Ph.D. Forum (IPDPSW). IEEE (2013)Google Scholar
  15. 15.
    Foley, S.S., Hursey, J.: OnRamp to parallel and distributed computing. In: Proceedings of the Workshop on Education for High-Performance Computing. ACM (2015)Google Scholar
  16. 16.
    Prasad, S.K., et al.: Topics in Parallel and Distributed Computing: Introducing Concurrency in Undergraduate Courses. Morgan Kaufmann, Burlington (2015)Google Scholar
  17. 17.
    Harvey, B., et al.: Snap!(build your own blocks). In: Proceedings of the 45th ACM Technical Symposium on Computer Science Education. ACM (2014)Google Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Department of Computer ScienceTennessee Tech UniversityCookevilleUSA

Personalised recommendations