如何教C++速成课程?

pal*_*m3D 11 c++

几个星期后,我们将直接从大学开始为Java程序员教授C++速成课程.他们对C或C++的经验很少或根本没有.

本课程以前的版本只有1或2个半天课程,涵盖的主题包括:

  • 新的语言特征,例如
    • 标题与实现
    • 指针和参考
    • 内存管理
    • 运算符重载
    • 模板
  • 标准库,例如
    • C库头
    • 基本的iostreams
    • 基本STL
  • 使用库(标题,链接)
  • 他们将使用Linux,所以
    • 基本的Linux控制台命令
    • gcc以及如何解释其错误消息
    • Makefile和autotools
  • 基本调试器命令
  • 他们询问的任何话题

在课程中,每个人使用新引入的功能单独编写,编译,运行和调试简单程序.这是最好的学习方式吗?

您认为哪些主题最重要?
应添加或删除哪些主题?
哪些主题在短时间内无法充分涵盖?

Kon*_*lph 22

我只能再次指向Stroustrup并宣讲:不要教C子集!这很重要,但不适合初学者!C++足够复杂,标准库类,特别是STL,比C++的C子集更加重要,并且(至少表面上)更容易理解.

顺便说一句,指针和堆内存分配也是如此.当然,只有在教过STL容器之后,它们才是重要的.

新生必须掌握的另一个重要概念是不同编译单元的概念,一个定义规则(因为如果您不知道它将无法解密错误消息)和标题.这实际上是一个很大的障碍,必须在早期被破坏.

除语言功能外,最重要的是如何理解C++编译器以及如何获得帮助.在我的经验中获得帮助(即知道如何搜索正确的信息)是必须要学习的关于C++的最重要的事情.

我过去对这种教学方式有很好的经验.

/编辑:如果您碰巧认识任何德语,请查看http://madrat.net/coding/cpp/skript,这是我的一门课程中使用的非常简短的介绍的一部分.


Rob*_*ick 6

如果他们来自Java世界,他们习惯于垃圾收集.因此,我可能会花一点时间谈论智能(引用计数)指针,以及它们与垃圾收集的比较.