{"title":"Teaching C++ as a First Programming Language","authors":"Ivaylo Donchev","doi":"10.54664/lpya6043","DOIUrl":null,"url":null,"abstract":"Nowadays, most C++ introductory courses begin by studying the procedural constructs of C language, following the imperative-first strategy described in CC2001 [7]. While this has been a successful approach in the near past, our experience shows that it does not lead to the development of skills to create a good C++ code. That’s why in recent years we’ve been teaching C++ to beginners in a totally different way – with avoidance of C-style strings and raw arrays; delayed introduction to pointers (just after references); polymorphism with references instead of pointers; smart pointers instead of raw pointers; early use of standard library features, and writing modern C++ from day one.","PeriodicalId":238000,"journal":{"name":"Mathematics, Computer Science and Education","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-12-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Mathematics, Computer Science and Education","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.54664/lpya6043","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Nowadays, most C++ introductory courses begin by studying the procedural constructs of C language, following the imperative-first strategy described in CC2001 [7]. While this has been a successful approach in the near past, our experience shows that it does not lead to the development of skills to create a good C++ code. That’s why in recent years we’ve been teaching C++ to beginners in a totally different way – with avoidance of C-style strings and raw arrays; delayed introduction to pointers (just after references); polymorphism with references instead of pointers; smart pointers instead of raw pointers; early use of standard library features, and writing modern C++ from day one.