Logo PTI Logo FedCSIS

Proceedings of the 17th Conference on Computer Science and Intelligence Systems

Annals of Computer Science and Information Systems, Volume 30

Modern C++ in the era of new technologies and challenges—why and how to teach modern C++?

DOI: http://dx.doi.org/10.15439/2022F308

Citation: Proceedings of the 17th Conference on Computer Science and Intelligence Systems, M. Ganzha, L. Maciaszek, M. Paprzycki, D. Ślęzak (eds). ACSIS, Vol. 30, pages 3540 ()

Full text

Abstract. Computers are one of the most important inventions of the century, and computer languages enable human-computer communication. Undoubtedly, C++ is one of the most important and influential in this group. Nevertheless, new technologies and related industry challenges place high demands on C++ and foster the development of new computer languages that meet new needs. For this reason, and thanks to the dynamically operating ISO standardization group, C++ is constantly updated while maintaining its backward compatibility. However, all this complicates and hinders not only the teaching of beginners but also the use by professionals. In this article, we briefly discuss the goals as well as proposed methodologies and techniques for teaching contemporary C++ in the age of new technologies and challenges.

References

  1. Boehm, B: Spiral Development: Experience, Principles, and Refinements. Special Report. Software Engineering Institute, 2000.
  2. CppCon 2017: Bjarne Stroustrup “Learning and Teaching Modern C++” – YouTube https://www.youtube.com/watch?v=fX2W3nNjJIo
  3. CppCon 2015: Kate Gregory “Stop Teaching C" – YouTube https://www.youtube.com/watch?v=YnWhqhNdYyk
  4. CppCon 2018: Christopher Di Bella “How to Teach C++ and Influence a Generation”—YouTube https://www.youtube.com/watch?v=3AkPd9Nt2Aw
  5. C++ Wikipedia: https://en.wikipedia.org/wiki/C%2B%2B
  6. Cyganek B.: Introduction to Programming with C++ for Engineers. Wiley-IEEE Press, 2021.
  7. Gurcan, F., Kose, C.: Analysis of software engineering industry needs and trends: implications for education. International Journal of Engineering Education, Vol. 33, pp. 1361-1368, 2017.
  8. https://home.agh.edu.pl/~cyganek/BookCpp.htm
  9. https://github.com/BogCyg/BookCpp
  10. https://cppreference.com
  11. https://thenewstack.io/google-launches-carbon-an-experimental-replacement-for-c/
  12. https://9to5google.com/2022/07/19/carbon-programming-language-google-cpp/
  13. https://stackoverflow.org
  14. https://en.wikipedia.org/wiki/Pareto_principle
  15. https://en.wikipedia.org/wiki/Spiral_model
  16. https://www.tiobe.com/tiobe-index/
  17. https://pypl.github.io/PYPL.html
  18. https://www.devjobsscanner.com/blog/top-8-most-demanded-languages-in-2022/
  19. History of C++ https://en.cppreference.com/w/cpp/language/history
  20. Josuttis N.: C++17 - The Complete Guide: First Edition, 2019.
  21. JTC1/SC22/WG21 - The C++ Standards Committee – ISOCPP, 2022. https://www.open-std.org/jtc1/sc22/wg21/
  22. Lawlis P.K., Adams K.A.: Computing Curricula vs. Industry Needs: A Mismatch. Proc. 9th Annual ASEET Symposium, pp. 5-19, 1995.
  23. Meyers S.: Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14, 2014.
  24. Moreno A.M., Sanchez-Segura M-I, Medina-Dominguez F., Carvajal L.: Balancing software engineering education and industrial needs, Journal of Systems and Software, Volume 85, Issue 7, pp 1607-1620, 2012.
  25. Oguz, D., Oguz, K.: Perspectives on the Gap Between the Software Industry and the Software Engineering Education. IEEE Access, Vol. 7, pp. 117527-117543, 2019.
  26. Paprzycki M., Zalewski J.: CS II: An Applied Software Engineering Project. The Journal of Computing in Small Colleges, Vol. 12, No., pp. 47-52, 2, 1996.
  27. Stroustrup B.: The C++ Programming Language, Addison-Wesley, 2013.
  28. Stroustrup B.: Programming: Principles and Practice Using C++, 2nd Ed., Addison-Wesley, 2014.
  29. Stroustrup B.: A Tour of C++, Addison-Wesley, 2018.
  30. Stroustrup B., Sutter H.: C++ Core Guidelines, 2022. https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
  31. SG20 (ISO C++ Study Group on Education): Guidelines for Teaching C++, 2022. https://cplusplus.github.io/SG20/latest/
  32. Waks S., Frank M.: Engineering Curriculum versus Industry Needs – A Case Study. IEEE Tr. on Education, Vol. 43, No. 3, pp. 349-352, 2000.