Skip to content

Commit ec04360

Browse files
committed
Add draft for constructors
1 parent 8b16f2c commit ec04360

File tree

1 file changed

+97
-1
lines changed

1 file changed

+97
-1
lines changed

sources/modules/object-model/constructors.md

Lines changed: 97 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,100 @@
33
_Skeleton descriptions are typeset in italic text,_
44
_so please don't remove these descriptions when editing the topic._
55

6-
This topic is currently under construction and will soon be filled with information :)
6+
### Overview
7+
8+
_Provides a short natural language abstract of the module’s contents._
9+
_Specifies the different levels of teaching._
10+
11+
------------------------------------------------------------------------
12+
Level Objective
13+
----------------- ------------------------------------------------------
14+
Foundational: Declaration of constructors
15+
16+
Main: Initialization and overloading
17+
18+
Advanced: TBD
19+
20+
------------------------------------------------------------------------
21+
22+
### Motivation
23+
24+
_Why is this important?_
25+
_Why do we want to learn/teach this topic?_
26+
27+
Constructors are fundamental to generate objects from classes and structs, so understanding them is essential to work with objcets.
28+
29+
### Topic introduction
30+
31+
_Very brief introduction to the topic._
32+
33+
### Foundational: Basic use of constructors
34+
35+
#### Background/Required Knowledge
36+
37+
A student:
38+
39+
1. should know the notion of classes and structs
40+
41+
#### Student outcomes
42+
43+
_A list of things "a student should be able to" after the curriculum._
44+
_The next word should be an action word and testable in an exam._
45+
_Max 5 items._
46+
47+
A student should be able to:
48+
49+
1. Add constructors to classes and structs
50+
2. Explain different types of initialization
51+
3. Explain compiler provided constructors when these are provided, what these do, and when these go away
52+
4. Explain differences between creating an object and declare a variable
53+
54+
#### Points to cover
55+
56+
* Overloading of constructors and default arguments
57+
* Copy constrcutor and destructor
58+
* Constructors can be used to initialize class members
59+
*
60+
61+
#### Caveats
62+
63+
_This section mentions subtle points to understand, like anything resulting in
64+
implementation-defined, unspecified, or undefined behavior._
65+
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
69+
70+
### Main: Command of supporting mechanisms and tools
71+
72+
#### Background/Required Knowledge
73+
74+
* All of the above.
75+
76+
#### Student outcomes
77+
78+
A student should be able to:
79+
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
85+
86+
#### Caveats
87+
88+
* programming user interfaces is rather complex and might not applicable for most students
89+
90+
#### Points to cover
91+
92+
* More advanced API calls and design patterns
93+
94+
### Advanced: Technicalities and tools
95+
96+
_These are important topics that are not expected to be covered but provide
97+
guidance where one can continue to investigate this topic in more depth._
98+
99+
* Internationalization
100+
* Font designers
101+
* Hardware acceleration
102+
* Custom widget generation

0 commit comments

Comments
 (0)