Browse Source

README-en.md edited on Friday, July 29, 2016

Jose R Ortiz Ubarri 8 years ago
parent
commit
44872a5f1a
1 changed files with 61 additions and 52 deletions
  1. 61
    52
      README-en.md

+ 61
- 52
README-en.md View File

@@ -1,19 +1,22 @@
1
-#Introduction to the laboratory and the programs we will be using
1
+# Introduction to the laboratory and the programs we will be using
2 2
 
3 3
 
4 4
 ![main1.png](images/main1.png)
5 5
 
6
-The Introduction to Computer Programming course provides an introduction to the fundamental concepts of computer programming and the solution of problems through algorithm design, including parallel programming techniques. Students will dominate the basic components of a program starting with control structures using conditional and iterative instructions with logical expressions, as well as the definition and use of variables and data types. They will develop procedures and functions for common tasks that are repeated or are more complex that require decomposition, including recursive functions. They will use structured data types such as arrays, queues, files and pointers. Also, the students will be exposed to the computer's structure: input and output, memory and central processing unit. A general look into the Computer Science field and its effect in society, including ethical implications in computation, is included.
6
+[verano2016 - Coralys]
7 7
 
8
-During this semester the students in the Introduction to Computer Programming course will be participating in the EIP project: "Engaging Introductory Programming Laboratory". In this project, sponsored by the TUES program of the National Science Foundation, students will be able to work on laboratory experiences where they will practice the concepts and skills learned in class and obtain attractive products that will motivate them with the possibilities that Computer Science offers them.
8
+The Introduction to Computer Programming course provides an introduction to the fundamental concepts of computer programming and the solution of problems through algorithm design, including parallel programming techniques. Students will have a full understanding of the basic components of a program starting with control structures using conditional and iterative instructions with logical expressions, as well as the definition and use of variables and data types. They will develop procedures and functions for common tasks that are repeated or more complex tasks that require decomposition, including recursive functions. They will use structured data types such as arrays, queues, files and pointers. Also, the students will be exposed to the computer's structure: input and output, memory, and the central processing unit. A general look into the Computer Science field and its effect in society, including ethical implications in computation, is included.
9 9
 
10
-Each of the laboratory experiences will use libraries and programming sections that have been developed by professors and students of the Computer Science program of UPR-Río Piedras. When the laboratory experience is completed, the student will not only reinforce the concepts learned in class, but will also get to know products that he or she will be capable of producing with a bit more knowledge and experience in computing. 
10
+During this semester the students in the Introduction to Computer Programming course will be participating in the project: "Engaging Introductory Programming Laboratory" (EIP). In this project, sponsored by the TUES program of the National Science Foundation, students will be able to work on laboratory experiences where they will practice the concepts and skills learned in class and obtain attractive products that will motivate them with the possibilities that Computer Science offers them.
11 11
 
12
-In today's laboratory experience you will learn how we will work in the upcoming meetings, how to access the files that will be used and how to hand in the work. You will also learn to manage the basic elements of Qt, the platform that will allow us to develop and execute projects in C++.
12
+Each of the laboratory experiences will use libraries and programming sections that have been developed by professors and students of the Computer Science program of the University of Puerto Rico, Río Piedras campus. When the laboratory experience is completed, the student will not only reinforce the concepts learned in class, but will also get to know products that he or she will be capable of producing with a bit more knowledge and experience in computing. 
13 13
 
14
-##Objectives:
14
+In today's laboratory experience you will learn how we will work in the upcoming meetings, how to access the files that will be used, and how to turn in the work. You will also learn to manage the basic elements of Qt, the platform that will allow us to develop and execute projects in C++.
15 15
 
16
-1) Understand the goals of the laboratory for the CCOM 3033 course.
16
+
17
+## Objectives:
18
+
19
+1) Understand the goals of the laboratory for the Introduction to Computer Programming course (CCOM-3033).
17 20
 
18 21
 2) Get to know the laboratory experiences prepared and the general expectations of the laboratory sessions.
19 22
 
@@ -23,58 +26,61 @@ In today's laboratory experience you will learn how we will work in the upcoming
23 26
 
24 27
 5) Practice the use of *Git* and *Bitbucket* to download and store the necessary files for each laboratory experience.
25 28
 
26
-6) Practice how to compile, fix errors and execute a programming using Qt.
29
+6) Practice how to compile, fix errors, and execute a program using Qt.
27 30
 
28 31
 
29 32
 ---
30 33
 
31 34
 ---
32 35
 
33
-##About the laboratory
36
+## About the laboratory
34 37
 
35
-###Course and evaluation policy
38
+### Course and evaluation policy
36 39
 
37
-* All of the students should be registered in the Moodle page for Section 1 of the Laboratory using the email they most frequently read. The page can be found in moodle.ccom.uprrp.edu. All of the information, materials and assignments for the course will be on this page; each student is responsible for checking the page regularly and understanding the calendar for handing in their work.
38
-* All cellphones must remain off during the laboratory session. If one of these devices interrupts the session, the professor will assume it is an emergency and will ask the student to leave the laboratory. The cellphone must not be on vibrate or emit light signals, and it cannot be on the desk. Simply shut it off and put it away. This way you may concentrate while in class.
40
+* All of the students should be registered in the Moodle page for Section 1 of the Laboratory using the email they most frequently read. The page can be found in moodle.ccom.uprrp.edu. All of the information, materials and assignments for the course will be on this page; each student is responsible for checking the page regularly and understanding the calendar for turning in their work.
41
+* All cellphones must remain off during the laboratory session. If one of these devices interrupts the session, the professor will assume it's an emergency and will ask the student to leave the laboratory. Moreover, the cellphone must not be on vibrate or emit light signals, and it cannot be on the desk. Just shut it off and put it away. This way you may concentrate while in class.
39 42
 * Only the laboratory laptops will be used.
40
-* The laboratory session will start promptly, so you should arrive on time. In the case of something extraordinary happening and the professor will be absent or late, the Department will be notified. If you arrive more than 15 minutes late, please do not enter the laboratory. If you leave the laboratory, let it be for an emergency; it is expected that once the session starts the student will remain in the laboratory until it is finished.
43
+* The laboratory session will start promptly, so you should arrive on time. In the case of something extraordinary happening in which the professor shall be absent or late, the Department will be notified. If you arrive more than 15 minutes late, please do not enter the laboratory. If you leave the laboratory, let it be for an emergency; it is expected that once the session starts, the student will remain in the laboratory until it is finished.
41 44
 * For each laboratory session, there will be documents in Moodle related to the laboratory experience that you should read before arriving at the laboratory. Read and follow the instructions in the *Pre-Lab* session. The documents for each laboratory experience will be available in Moodle the Friday of the previous week.
42
-* There will be a *Pre-Lab Quiz* that you should take during the first 10 minutes of the laboratory session. The quiz is taken using Moodle and will not be available after 10 minutes from the time the laboratory session begins. The quiz will be related to the concepts learned in class that will be necessary for the laboratory experience and will also include reading comprehension questions for the week's laboratory session instructions. Quizzes will not be reset or retaken. The worst grade will be eliminated.
45
+* There will be a *Pre-Lab* quiz that you should take during the first 10 minutes of the laboratory session. The quiz is taken using Moodle and will not be available after 10 minutes from the time the laboratory session begins. The quiz will be related to the concepts learned in class that will be necessary for the laboratory experience, and will also include reading comprehension questions for the week's laboratory session instructions. Quizzes will not be reset or retaken. However, the worst grade will be eliminated.
43 46
 * The laboratory experiences will be worked on in pairs. After each laboratory experience, each pair should hand in the files indicated in the instructions using Moodle. The final hand in date to hand in the files for each experience is the Tuesday that follows the laboratory session. Since the laboratory experiences will be worked on in pairs, only one member will hand in the work.
44
-* When the work for each laboratory session is finished, each student must take a *Post-Test* which lasts 10 minutes. With the Pre-Lab and Post-Test we evaluate the utility of the laboratory experience in learning the concepts and skills. The Post-Test will not be worth any points in the laboratory grade but will be used to give a bonus on each laboratory experience. The Post-Test will be available on Moodle on the Friday when the laboratory session is held until 11:59pm on the following Tuesday.
47
+* When the work for each laboratory session is finished, each student must take a *Post-Test* which lasts 10 minutes. With the Pre-Lab and Post-Test we evaluate the utility of the laboratory experience in learning the concepts and skills. The Post-Test will not be worth any points in the laboratory grade, but will be used to give a bonus on each laboratory experience. The Post-Test will be available on Moodle on Friday when the laboratory session is held, until 11:59pm of the following Tuesday.
45 48
 * Feel free to come by my office to clarify any doubts. If the door is open, you are welcome to come in; if it is closed, please wait for office hours. In the case of you having a scheduling conflict with the assigned office hours, you may schedule a meeting at any moment.
46
-* Responsibility and honesty are very important qualities for me...
49
+* Responsibility and honesty are very important qualities for the Computer Science Department. 
50
+
47 51
 
48
-####Evaluation
52
+#### Evaluation
49 53
 
50 54
 * The laboratory grade will be 25% of the course grade.
51 55
 * The "Pre-Lab" tests will be 40% of the laboratory grade.
52
-* The work handed in will be 60% of the laboratory grade.
56
+* The work turned in will be 60% of the laboratory grade.
53 57
 * The criteria to obtain a bonus of 5 points in each laboratory experience are as follows:
54 58
 
55
-    1) You obtain 80 in the Pre-Lab and maintain or improve your grade in the Post-Test.
56
-
57
-    2) You obtain 75 or more in the Pre-Lab and improve by 15 points or more from Pre-Lab to Post-Test.
59
+    1)  You obtain 80 in the Pre-Lab and maintain or improve your grade in the Post-Test. 
60
+    
61
+    2)  You obtain 75 or more in the Pre-Lab and improve by 15 points or more from Pre-Lab to Post-Test.
58 62
 
59
-    3) You obtain 80 or more in the Pre-Lab and improve by 10 points or more from Pre-Lab to Post-Test.
63
+    3)  You obtain 80 or more in the Pre-Lab and improve by 10 points or more from Pre-Lab to Post-Test.
60 64
 
61
-    4) You obtain 85 or more in the Post-Test.
65
+    4)  You obtain 85 or more in the Post-Test.
62 66
 
63
-    5) The total score for the delivered work will not be more than 100. 
67
+* The total score for the delivered work will not be more than 100. 
64 68
 
65 69
 
66 70
 
67 71
 ### Programming in pairs
68 72
 
69
-During the entire semester the laboratory experiences will be worked on using the programming in pairs technique. In each session the students will be divided in pairs to work on the laboratory experience. Each pair will use one computer and each student in the pair will have one of two roles: conductor and navigator. The conductor will be in charge of writing and editing the code or the requirement for the laboratory. The navigator will read and evaluate what the conductor is writing to indicate if there was an error or to make suggestions. The pairs for each laboratory session will be announced on the Moodle page.
73
+During the entire semester the laboratory experiences will be worked on using the programming in pairs technique. Each pair will use one computer and each student in the pair will have one of two roles: conductor or navigator. The conductor will be in charge of writing and editing the code or the requirement for the laboratory. The navigator will read and evaluate what the conductor is writing to indicate if there was an error or to make suggestions. The pairs for each laboratory session will be announced on the Moodle page.
74
+
70 75
 
71 76
 ### Pre-Lab and Post-Test
72 77
 
73
-Each laboratory experience contains a section called *Pre-Lab*. In this section you will find the objectives for the experience and the concepts you should review and study before arriving at the laboratory. There will be a link on the Moodle page for a short quiz that you should take during the first 10 minutes of the laboratory session. The quiz will not be available after 10 minutes have passed from the time the laboratory session begins. The concepts that you should review for the laboratory experience are concepts covered during the course conference sections. The short quiz will also have reading comprehension questions for the laboratory instructions.
78
+Each laboratory experience contains a section called *Pre-Lab*. In this section you will find the objectives for the experience and the concepts you should review and study before arriving at the laboratory. There will be a link on the Moodle page for a short quiz that you should take during the first 10 minutes of the laboratory session. The quiz will not be available after the 10 minutes have passed from the time the laboratory session begins. The concepts that you should review for the laboratory experience are concepts covered during the course conference sections. The short quiz will also have reading comprehension questions for the laboratory instructions.
74 79
 
75
-The *Post-Test* is a short test about the same skills and concepts that are evaluated in the Pre-Lab. The Post-Test will be available on Moodle from on Friday of the laboratory session until 11:59pm on the following Tuesday. These tests allow us to evaluate the efficacy of the laboratory experience in the learning of concepts and skills through the course. The points obtained will be used as a bonus for the laboratory grade.
80
+The *Post-Test* is a short test about the same skills and concepts that are evaluated in the Pre-Lab. The Post-Test will be available on Moodle from the Friday of the laboratory session, until 11:59pm on the following Tuesday. These tests allows us to evaluate the efficacy of the laboratory experience in the learning of concepts and skills throughout the course. The points obtained will be used as a bonus for the laboratory grade.
76 81
 
77
-### Handing in the work
82
+
83
+### Turning in the work
78 84
 
79 85
 When each laboratory experience is over, each pair should hand in the files with the implemented code or some other material. These deliveries will be done using Moodle and the instructions will be included in each laboratory experience.
80 86
 
@@ -83,26 +89,25 @@ When each laboratory experience is over, each pair should hand in the files with
83 89
 
84 90
 ---
85 91
 
86
-##Services and programs we will use:
92
+## Services and programs we will use:
87 93
 
88 94
 ### Electronic book
89 95
 
90 96
 The instructions for the laboratory experience for this semester are contained in the electronic book you can access in http://eip.ccom.uprrp.edu/_book-en/.
91 97
 
92
-In the Moodle page we will indicate the name of the corresponding laboratory for each week and you can access the instructions using the index for the electronic book.
98
+In the Moodle page we will indicate the name of the corresponding laboratory for each week and you can access the instructions using the index of the electronic book.
93 99
 
94 100
 This is a preliminary version of the book and therefore may contain errors. We would appreciate it if you would tell us if you find any errors or if you have any suggestion that could help clarify the instructions.
95 101
 
96
-###Bitbucket and Git
102
+### Bitbucket and Git
97 103
 
98 104
 *Bitbucket* is a repository or deposit for digital files which can be accessed online and allows the development of group projects in an ordered and simple manner. The files for the Introduction to Programming Laboratory will be stored in this site and can be downloaded to your personal computers using *Git*.
99 105
 
100 106
 *Git* is an open source program used to manage program files developed in groups. You can obtain this program in <http://git-scm.com/>. At the start of each laboratory experience you will download the necessary files to one of the classroom laptops using the command `git clone url` from the terminal in each computer.
101 107
 
102
-###Terminal and Linux
103
-
108
+### Terminal and Linux
104 109
 
105
-To use Git in OS X we should use command lines in the *terminal*. The commands we will use are commands for the *Unix* operating system. Unix distinguishes between uppercase and lowercase letters. Some basic Unix commands are:
110
+To use Git in OS X we should use command lines in the *terminal*. The commands we will use are commands for the *Unix* operating system. Unix distinguishes between uppercase and lowercase letters, so be careful when writing the commands. A couple of basic Unix commands are:
106 111
 
107 112
 ---
108 113
 
@@ -124,10 +129,11 @@ To use Git in OS X we should use command lines in the *terminal*. The commands w
124 129
 ---
125 130
 
126 131
 
127
-###Qt
132
+### Qt
128 133
 
129 134
 Qt is a programming application that is used by developers that use the C++ programming language. This environment works in, and can create versions of, applications for different platforms (desktop, mobile platforms, among others). Qt contains an integrated development environment (IDE), called *Qt Creator*. Within this environment, graphical interfaces can be created and programmed using the design option contained in Qt. We urge you to install Qt on your personal computer and explore the options this application provides.
130 135
 
136
+
131 137
 ### Virtual Machine
132 138
 
133 139
 Each laptop in the laboratory has a *virtual machine* installed that contains the necessary Qt application to work with the laboratory experiences and a terminal where you can write the Unix commands to download the files.
@@ -136,9 +142,10 @@ You can install this virtual machine in your personal computer from the followin
136 142
 
137 143
 You should use this machine since it contains the version that allows each of the programs in the laboratory experience to work correctly. If you install another version of Qt, you may run into problems with some of the programs.
138 144
 
145
+
139 146
 ## How to obtain Qt
140 147
 
141
-If you want to install the Qt application on your machine, you can go to the Qt project page, http://qt-project.org/. There you will find more information about Qt, and you can download the program. You can view videos on how to install Qt on different platforms in: <http://youtu.be/6eY5VSPYZCw> (Linux), <http://youtu.be/CImDCSxi7Wc> (Windows), <http://youtu.be/_zq-pSw3Ox4> (Mac).
148
+If you want to install the Qt application on your machine, you can go to the Qt project page, http://qt-project.org/. There, you will find more information about Qt, and you can download the program. You can watch videos on how to install Qt on different platforms in: <http://youtu.be/6eY5VSPYZCw> (Linux), <http://youtu.be/CImDCSxi7Wc> (Windows), <http://youtu.be/_zq-pSw3Ox4> (Mac).
142 149
 
143 150
 ---
144 151
 
@@ -148,14 +155,14 @@ If you want to install the Qt application on your machine, you can go to the Qt
148 155
 
149 156
 Qt is an application used by professional developers that has many possibilities and options. In each laboratory experience we will see how to use the basic options that we will need during the semester.
150 157
 
151
-For the laboratory we will mostly use the part for editing programs in C++, but there is also an option to design graphical interfaces. This option was used to incorporate the code that presents the graphical interfaces for the laboratory experiences. Learning to use this option is not part of this course, but you can learn to use it on your own. In https://docs.google.com/file/d/0B_6PcmpWnkFBOXJxVDlUNEVfOFk/edit you can find a presentation, prepared by the student Jonathan Vélez, that shows basic aspects on how to use the option for designing graphical interfaces. 
158
+For the laboratory, we will mostly use the part for editing programs in C++, but there is also an option to design graphical interfaces. This option was used to incorporate the code that presents the graphical interfaces for the laboratory experiences. Learning to use this option is not part of this course, but you can learn to use it on your own. In https://docs.google.com/file/d/0B_6PcmpWnkFBOXJxVDlUNEVfOFk/edit you can find a presentation, prepared by the student Jonathan Vélez, that shows basic aspects on how to use the option for designing graphical interfaces. 
152 159
 
153 160
 
154 161
 ### Projects in C++
155 162
 
156 163
 Each C++ project is composed of various types of files. In Qt you will have files of type *source, header, and form*.
157 164
 
158
-- **Source files:** These files have a `.cpp` extension (C plus plus) and contain the C++ code for your program. Among these files you will find `main.cpp`; this is the file the preprocessor will look for and is where your program starts. Another source file you will find in projects created with Qt is the `mainwindow.cpp` file; this file is created by Qt and contains the code associated with the main window designed with the design option (for example the functions that appear below "Private slots").
165
+- **Source files:** These files have a `.cpp` extension (C plus plus) and contain the C++ code for your program. Among these files you will find `main.cpp`; this is the file the preprocessor will look for and its where your program starts. Another source file you will find in projects created with Qt is the `mainwindow.cpp` file; this file is created by Qt and contains the code associated with the main window designed with the design option (for example the functions that appear below "Private slots").
159 166
 
160 167
 - **Header files:** These files have a `.h` extension and contain declarations of the functions that are used in the program. During the pre-processing of each program, the instruction `#include<name.h>` includes the contents of the file called "name.h" in the code for the `.cpp` file that contains this instruction.
161 168
 
@@ -172,15 +179,15 @@ Each C++ project is composed of various types of files. In Qt you will have file
172 179
 In today's laboratory experience you will practice the use of the some of the programs you will use during the semester. You will use the programs that are installed in the virtual machine.
173 180
 
174 181
 
175
-###Exercise 0: Create a directory for the laboratory files
182
+### Exercise 0: Create a directory for the laboratory files
176 183
 
177 184
 Use the terminal and the command `mkdir` to create a directory `Documents/eip` for the laboratory files.
178 185
 
179 186
 
180
-###Exercise 1: Starting your new project
187
+### Exercise 1: Starting your new project
181 188
 
182 189
 
183
-####Instructions
190
+#### Instructions
184 191
 
185 192
 1) To start a C++ project, press the `New Project` button or go to the Qt main menu and in `File` select `New File or Project`. A window similar to the one in Figure 2 will appear. Select `Non-Qt Project`, `Plain C++ Project` and press `Choose`.
186 193
 
@@ -192,7 +199,7 @@ Use the terminal and the command `mkdir` to create a directory `Documents/eip` f
192 199
 
193 200
    ---
194 201
 
195
-2) Write the name of the project, select the directory where you would like to save it, press `Continue` in that window and the following one, and then `Done` in the next one.
202
+2) Write the name of the project, select the directory where you would like to save it, press `Next` in that window and the following one, and then `Finish` in the next one.
196 203
 
197 204
 This process will create a new Qt project with the skeleton for a basic C++ program that only displays "Hello World!". Before continuing, select `Projects` in the vertical menu to the left. A window called `Build Settings` should appear. In this window, make sure the `Shadow build` checkbox is NOT selected, as shown in Figure 3.
198 205
 
@@ -200,7 +207,7 @@ This process will create a new Qt project with the skeleton for a basic C++ prog
200 207
 
201 208
    ![figure3.png](images/figure3.png)
202 209
 
203
-   **Figure 3.** Do not select the `Shadow build` option.
210
+   **Figure 3.** The `Shadow build` option is not selected.
204 211
     
205 212
    ---
206 213
 
@@ -208,7 +215,7 @@ This process will create a new Qt project with the skeleton for a basic C++ prog
208 215
 
209 216
 4) Change the contents of `main.cpp` as such:
210 217
 
211
-   ```cpp
218
+   ```cpp 
212 219
         #include <iostream>
213 220
         using namespace std;
214 221
 
@@ -222,15 +229,17 @@ This process will create a new Qt project with the skeleton for a basic C++ prog
222 229
 5) Press the green button in the left menu to compile and execute the program. A window will appear that offers the option to store the changes. Press `Save all`. When executed, if you did not commit any errors, the program will display "I like the programming laboratory." in the terminal window.
223 230
 
224 231
 
225
-###Exercise 2: Download projects from Bitbucket
232
+### Exercise 2: Download projects from Bitbucket
233
+
234
+The files for this laboratory experience are stored in Bitbucket. In each laboratory session, you will download the Bitbucket folder that contains the files for that laboratory experience and you will save them in the `Documents/eip` directory you created in Exercise 0. To download the corresponding folder for this laboratory experience, open the terminal, use the Linux commands to move to the `Documents/eip` directory and write the command `git clone https://bitbucket.org/eip-uprrp/introduccion.git`. Go to the `Documents/eip` directory and verify that it contains the `Introduction` folder.
235
+
226 236
 
227
-The files for this laboratory experience are stored in Bitbucket. In each laboratory session you will download the Bitbucket folder that contains the files for that laboratory experience and you will save them in the `Documents/eip` directory you created in Exercise 0. To download the corresponding folder for this laboratory experience, open the terminal, use the Linux commands to move to the `Documents/eip` directory and write the command `git clone https://bitbucket.org/eip-uprrp/introduccion.git`. Go to the `Documents/eip` directory and verify that it contains the `Introduction` folder.
237
+### Exercise 3: Open project already created, compile and run
228 238
 
229
-###Exercise 3: Open project already created, compile and run
239
+In this exercise you will practice how to compile, fix errors, and execute a program using Qt.
230 240
 
231
-In this exercise you will practice how to compile, fix errors and execute a program using Qt.
232 241
 
233
-####Instructions
242
+#### Instructions
234 243
 
235 244
 1) First delete the files created by Qt and close the files from the previous project. To do this, in the Qt main menu go to `Build` and select `Clean all`; then go to `File` and select `Close all projects and editors`.
236 245
 
@@ -244,14 +253,14 @@ Each time you load or start a new project, make sure that `Shadow build` is not
244 253
 
245 254
 Fix all of the errors and press the green arrow once again to compile and execute the program. Once you fix the errors, the program should open a window `Application Output` and display `Exit: 1`.
246 255
 
247
-5) As mentioned earlier, during the compilation and execution process Qt creates various files we should delete after terminating the program. To do this, in the `Build` option of the Qt menu, select `Clean All`.
256
+5) As mentioned earlier, during the compilation and execution process, Qt creates various files we should delete after terminating the program. To do this, in the `Build` option of the Qt menu, select `Clean All`.
248 257
 
249 258
 
250
-###Exercise 4: Deliverables
259
+### Exercise 4: Deliverables
251 260
 
252 261
 During each laboratory experience, each pair will hand in some of the results of their work. These deliveries will be done in the "Deliverables" section that appears on Moodle. Today each student will practice handing in their work individually.
253 262
 
254 263
 
255
-####Instructions
264
+#### Instructions
256 265
 
257 266
 1) Open the "Deliverables" link on Moodle and hand in the `main.cpp` file. Remember to use good programming techniques, including the name of the programmers as a comment at the beginning of the program.