Modern C++ in the era of new technologies and challenges—why and how to teach modern C++?
Bogusław Cyganek
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 35–40 (2022)
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
- Boehm, B: Spiral Development: Experience, Principles, and Refinements. Special Report. Software Engineering Institute, 2000.
- CppCon 2017: Bjarne Stroustrup “Learning and Teaching Modern C++” – YouTube https://www.youtube.com/watch?v=fX2W3nNjJIo
- CppCon 2015: Kate Gregory “Stop Teaching C" – YouTube https://www.youtube.com/watch?v=YnWhqhNdYyk
- CppCon 2018: Christopher Di Bella “How to Teach C++ and Influence a Generation”—YouTube https://www.youtube.com/watch?v=3AkPd9Nt2Aw
- C++ Wikipedia: https://en.wikipedia.org/wiki/C%2B%2B
- Cyganek B.: Introduction to Programming with C++ for Engineers. Wiley-IEEE Press, 2021.
- 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.
- https://home.agh.edu.pl/~cyganek/BookCpp.htm
- https://github.com/BogCyg/BookCpp
- https://cppreference.com
- https://thenewstack.io/google-launches-carbon-an-experimental-replacement-for-c/
- https://9to5google.com/2022/07/19/carbon-programming-language-google-cpp/
- https://stackoverflow.org
- https://en.wikipedia.org/wiki/Pareto_principle
- https://en.wikipedia.org/wiki/Spiral_model
- https://www.tiobe.com/tiobe-index/
- https://pypl.github.io/PYPL.html
- https://www.devjobsscanner.com/blog/top-8-most-demanded-languages-in-2022/
- History of C++ https://en.cppreference.com/w/cpp/language/history
- Josuttis N.: C++17 - The Complete Guide: First Edition, 2019.
- JTC1/SC22/WG21 - The C++ Standards Committee – ISOCPP, 2022. https://www.open-std.org/jtc1/sc22/wg21/
- Lawlis P.K., Adams K.A.: Computing Curricula vs. Industry Needs: A Mismatch. Proc. 9th Annual ASEET Symposium, pp. 5-19, 1995.
- Meyers S.: Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14, 2014.
- 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.
- 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.
- 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.
- Stroustrup B.: The C++ Programming Language, Addison-Wesley, 2013.
- Stroustrup B.: Programming: Principles and Practice Using C++, 2nd Ed., Addison-Wesley, 2014.
- Stroustrup B.: A Tour of C++, Addison-Wesley, 2018.
- Stroustrup B., Sutter H.: C++ Core Guidelines, 2022. https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
- SG20 (ISO C++ Study Group on Education): Guidelines for Teaching C++, 2022. https://cplusplus.github.io/SG20/latest/
- Waks S., Frank M.: Engineering Curriculum versus Industry Needs – A Case Study. IEEE Tr. on Education, Vol. 43, No. 3, pp. 349-352, 2000.