作为第一编程语言的c++教学

Ivaylo Donchev
{"title":"作为第一编程语言的c++教学","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":"{\"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}","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

摘要

如今,大多数c++入门课程都是从学习C语言的过程结构开始的,遵循CC2001[7]中描述的命令式优先策略。虽然在不久的过去,这是一种成功的方法,但我们的经验表明,它不会导致开发出创建优秀c++代码的技能。这就是为什么近年来我们一直以一种完全不同的方式向初学者教授c++的原因——避免使用C风格的字符串和原始数组;指针的延迟引入(就在引用之后);用引用代替指针的多态性;智能指针代替原始指针;早期使用标准库特性,并从第一天开始编写现代c++。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Teaching C++ as a First Programming Language
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.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Didactic Notes on Using Unnamed Clases, Non-Static Main Methods and Records in Introductory Object-Oriented Programming Courses with Java 21 IdentityServer Integration with ASP.NET Core Didactic Approaches for Developing C++ Programming Skills Preparation for Submission, Defence and Evaluation of Projects in Computer Moddeling and Information Technology Between Grades 5 and 7 STEAM for Developing Digital Competence
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1