@@ -11,7 +11,7 @@ _Specifies the different levels of teaching._
1111------------------------------------------------------------------------
1212Level Objective
1313----------------- ------------------------------------------------------
14- Foundational: Declaration of constructors
14+ Foundational: Basic usage of constructors
1515
1616Main: Initialization and overloading
1717
@@ -36,7 +36,7 @@ _Very brief introduction to the topic._
3636
3737A student:
3838
39- 1 . should know the notion of classes and structs
39+ 1 . should know the notion of classes and structs %todo link to classes
4040
4141#### Student outcomes
4242
@@ -54,49 +54,56 @@ A student should be able to:
5454#### Points to cover
5555
5656* Overloading of constructors and default arguments
57- * Copy constrcutor and destructor
57+ * Copy constructor and destructor
5858* Constructors can be used to initialize class members
59- *
6059
6160#### Caveats
6261
6362_ This section mentions subtle points to understand, like anything resulting in
6463implementation-defined, unspecified, or undefined behavior._
6564
66- * programming user interfaces in C++ and in general require plenty of boiler plate code
67- * API calls are specific to one library and might not be transferable to other libraries
68- * Some libraries are written in C
65+ * None
6966
70- ### Main: Command of supporting mechanisms and tools
67+ ### Main:
7168
7269#### Background/Required Knowledge
7370
7471* All of the above.
72+ * Class inheritance %todo check for link
73+ * Dynamic memory
74+ * Difference between shared and unique pointers
7575
7676#### Student outcomes
7777
7878A student should be able to:
7979
80- 1 . add more advanced elements, like tables or images
81- 2 . handle multiple windows
82- 3 . show error and warning popups
83- 4 . use different forms of IO, like keyboard, mouse, or touch pad
84- 5 . explain basic of fonts and accessibility
80+ 1 . Explain the differences between the big five, namely, copy constructor, move constrcutor, copy/assign, move/assign, destructor, and constructor.
81+ 2 . Construct a initializer list and explain conditions when it is necessary
82+ 3 . Delegate to the constructor of the base class
83+ 4 . Demonstrate and explain safe memory handling using shared or unique pointers
84+ 5 . Define what RAII is and the role of the constructor
8585
8686#### Caveats
8787
88- * programming user interfaces is rather complex and might not applicable for most students
88+ * Order of construction should match the initalizer list order
8989
9090#### Points to cover
9191
92- * More advanced API calls and design patterns
92+ * Not calling virtual functions from the base class
93+ * Do not initialze data outside of the constructor (two face initialization)
94+ * Difference between assignment and deep copy
9395
94- ### Advanced: Technicalities and tools
96+ ### Advanced:
9597
9698_ These are important topics that are not expected to be covered but provide
9799guidance where one can continue to investigate this topic in more depth._
98100
99- * Internationalization
100- * Font designers
101- * Hardware acceleration
102- * Custom widget generation
101+ * Error handling within constructors
102+ * Non-static data initialziers
103+ * Constructors with member references
104+ * Purposes for protected constructors
105+ * What does delete vs private means
106+ * What does it mean to have an explicit constructor
107+ * Impact on const expr on constructor %extend later
108+ * Rules on memory ordering %extend later
109+ * Define constructor outside of the body of the class %extend later
0 commit comments