Browse Source

What was in the book

Luis Albertorio 8 years ago
parent
commit
8047080cb5
1 changed files with 56 additions and 52 deletions
  1. 56
    52
      README-en.md

+ 56
- 52
README-en.md View File

1
-#Introduction to the laboratory and the programs we'll be using
1
+#Introduction to the laboratory and the programs we will be using
2
 
2
 
3
 
3
 
4
 ![main1.png](images/main1.png)
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 pieces 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 structures 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 vision of the Computer Science field and its effect in society, including ethical implications in computation, is included.
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.
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
 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.
9
 
9
 
13
 
13
 
14
 ##Objectives:
14
 ##Objectives:
15
 
15
 
16
-1. Understand the goals of the laboratory for the CCOM 3033 course.
16
+1) Understand the goals of the laboratory for the CCOM 3033 course.
17
 
17
 
18
-2. Get to know the laboratory experiences prepared and the general expectations of the laboratory sessions.
18
+2) Get to know the laboratory experiences prepared and the general expectations of the laboratory sessions.
19
 
19
 
20
-3. Get to know the programming in pairs strategy.
20
+3) Get to know the programming in pairs strategy.
21
 
21
 
22
-4. Get to know the rules of the laboratory sessions and the methods of evaluation.
22
+4) Get to know the rules of the laboratory sessions and the methods of evaluation.
23
 
23
 
24
-5. Practice the use of *Git* and *Bitbucket* to download and store the necessary files for each laboratory experience.
24
+5) Practice the use of *Git* and *Bitbucket* to download and store the necessary files for each laboratory experience.
25
 
25
 
26
-6. Practice how to compile, fix errors and execute a programming using Qt.
26
+6) Practice how to compile, fix errors and execute a programming using Qt.
27
 
27
 
28
 
28
 
29
 ---
29
 ---
39
 * Only the laboratory laptops will be used.
39
 * 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.
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.
41
 * 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.
41
 * 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 before arriving at the laboratory session. 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.
43
-* 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 Friday 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*. 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.
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.
43
+* 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.
45
 * 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.
45
 * 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...
46
 * Responsibility and honesty are very important qualities for me...
47
 
47
 
52
 * The work handed in will be 60% of the laboratory grade.
52
 * The work handed in will be 60% of the laboratory grade.
53
 * The criteria to obtain a bonus of 5 points in each laboratory experience are as follows:
53
 * The criteria to obtain a bonus of 5 points in each laboratory experience are as follows:
54
 
54
 
55
-    1. You obtain 80 in the Pre-Lab and maintain or improve your grade in the Post-Test.
56
-    2. You obtain 75 or more in the Pre-Lab and improve by 15 points or more from Pre-Lab to Post-Test.
57
-    3. You obtain 80 or more in the Pre-Lab and improve by 10 points or more from Pre-Lab to Post-Test.
58
-    4. You obtain 85 or more in the Post-Test.
59
-    5. The total score for the delivered work will not be more than 100. 
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.
58
+
59
+    3) You obtain 80 or more in the Pre-Lab and improve by 10 points or more from Pre-Lab to Post-Test.
60
+
61
+    4) You obtain 85 or more in the Post-Test.
62
+
63
+    5) The total score for the delivered work will not be more than 100. 
60
 
64
 
61
 
65
 
62
 
66
 
63
 ### Programming in pairs
67
 ### Programming in pairs
64
 
68
 
65
-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 in the Moodle page.
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.
70
+
66
 ### Pre-Lab and Post-Test
71
 ### Pre-Lab and Post-Test
67
 
72
 
68
-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 before arriving at the laboratory. 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.
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.
69
 
74
 
70
-The *Post-Test* is a short test about the same skills and concepts that are evaluated in the Pre-Lab. This test is taken after the laboratory experience concludes. 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.
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.
71
 
76
 
72
 ### Handing in the work
77
 ### Handing in the work
73
 
78
 
82
 
87
 
83
 ### Electronic book
88
 ### Electronic book
84
 
89
 
85
-The instructions for the laboratory experience for this semester are contained in the electronic book you can access in http://ccom.uprrp.edu/~rarce/eipgb/index.html .
90
+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/.
86
 
91
 
87
 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.
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.
88
 
93
 
90
 
95
 
91
 ###Bitbucket and Git
96
 ###Bitbucket and Git
92
 
97
 
93
-*Bitbucket* es is repository or deposit for digital files which can be accessed online and allows the development of group projects in a ordered and simple fashion. The fles for the Introduction to Programming Laboratory will be stored in this site and can be downloaded to your personal computers using *Git*.
98
+*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*.
94
 
99
 
95
 *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.
100
 *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.
96
 
101
 
131
 
136
 
132
 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.
137
 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.
133
 
138
 
139
+## How to obtain Qt
140
+
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).
142
+
134
 ---
143
 ---
135
 
144
 
136
 ---
145
 ---
137
 
146
 
138
 ## Using Qt
147
 ## Using Qt
139
 
148
 
140
-Qt is application used by professional developers and 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.
149
+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.
141
 
150
 
142
 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. 
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. 
143
 
152
 
160
 
169
 
161
 ## Laboratory session
170
 ## Laboratory session
162
 
171
 
163
-In today's laboratory experience you will practice the use of the some of the programs you will use during the semester.
172
+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.
164
 
173
 
165
 
174
 
166
 ###Exercise 0: Create a directory for the laboratory files
175
 ###Exercise 0: Create a directory for the laboratory files
173
 
182
 
174
 ####Instructions
183
 ####Instructions
175
 
184
 
176
-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`.
185
+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`.
177
 
186
 
178
-    ---
187
+   ---
179
 
188
 
180
-    ![figure2.png](images/figure2.png)
189
+   ![figure2.png](images/figure2.png)
181
 
190
 
182
-    **Figure 2.** Start C++ project without graphical applications.
191
+   **Figure 2.** Start C++ project without graphical applications.
183
 
192
 
184
-    ---
193
+   ---
185
 
194
 
186
-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.
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.
187
 
196
 
188
 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.
197
 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.
189
 
198
 
190
-    ---
199
+   ---
191
 
200
 
192
-    ![figure3.png](images/figure3.png)
201
+   ![figure3.png](images/figure3.png)
193
 
202
 
194
-    **Figure 3.** Do not select the `Shadow build` option.
203
+   **Figure 3.** Do not select the `Shadow build` option.
204
+    
205
+   ---
195
 
206
 
196
-    ---
207
+3) Return to the window where you can edit the program by selecting `Edit` in the left menu and double clicking `Sources` and then `main.cpp`. Press the green arrow on the left menu to execute the program. The results for the program will be displayed in the terminal window. If there were any errors, these would appear in the `Issues` window in Qt.
197
 
208
 
209
+4) Change the contents of `main.cpp` as such:
198
 
210
 
199
-3. Return to the window where you can edit the program selecting `edit` in the left menu and double clicking `Sources` and then `main.cpp`. Press the green arrow on the left menu to execute the program. The results for the program will be displayed in the terminal window. If there were any errors, these would appear in the `Issues` window in Qt.
200
-
201
-4. Change the contents of `main.cpp` as such:
202
-
203
-    ```cpp
204
-
211
+   ```cpp
205
         #include <iostream>
212
         #include <iostream>
206
         using namespace std;
213
         using namespace std;
207
 
214
 
208
-
209
         int main()
215
         int main()
210
         {
216
         {
211
             cout << endl << "I like the programming laboratory." << endl;
217
             cout << endl << "I like the programming laboratory." << endl;
212
             return 0;
218
             return 0;
213
         }
219
         }
220
+   ```
214
 
221
 
215
-    ```
216
-
217
-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.
222
+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.
218
 
223
 
219
 
224
 
220
 ###Exercise 2: Download projects from Bitbucket
225
 ###Exercise 2: Download projects from Bitbucket
221
 
226
 
222
-The files for this laboratory experience are stored in Bitbucket. To download these files to your computer go to the terminal window and write the command `git clone https://bitbucket.org/eip-uprrp/introduccion.git`.
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.
223
 
228
 
224
 ###Exercise 3: Open project already created, compile and run
229
 ###Exercise 3: Open project already created, compile and run
225
 
230
 
227
 
232
 
228
 ####Instructions
233
 ####Instructions
229
 
234
 
230
-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`.
235
+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`.
231
 
236
 
232
-2. Load the `QtCreator` project called `Practica` by double clicking the file `Practica.pro` in the `Documents/eip/introduccion` directory on your computer. In the window that appears, press `Configure Project`.
237
+2) Load the `QtCreator` project called `Practice` by double clicking the file `Practice.pro` in the `Documents/eip/introduction` directory on your computer. In the window that appears, press `Configure Project`.
233
 
238
 
234
 Each time you load or start a new project, make sure that `Shadow build` is not selected: in the menu to the left, select `Projects`, then in `Build Settings` verify that the checkbox for `Shadow build` is not selected, as we saw in Figure 3.
239
 Each time you load or start a new project, make sure that `Shadow build` is not selected: in the menu to the left, select `Projects`, then in `Build Settings` verify that the checkbox for `Shadow build` is not selected, as we saw in Figure 3.
235
 
240
 
236
-3. As you saw previously, Qt allows you to compile and execute a program by pressing the green arrow that appears in the left column. Press the arrow and notice that you obtain a window of "Issues" that occurred when compiling. The list that appears will show you information that allows you to find and fix the errors.
241
+3) As you saw previously, Qt allows you to compile and execute a program by pressing the green arrow that appears in the left column. Press the arrow and notice that you obtain a window of "Issues" that occurred when compiling. The list that appears will show you information that allows you to find and fix the errors.
237
 
242
 
238
-4. Select the `main.cpp` file in the `Sources` directory so you can find and fix the errors.
243
+4) Select the `main.cpp` file in the `Sources` directory so you can find and fix the errors.
239
 
244
 
240
 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`.
245
 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`.
241
 
246
 
242
-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`.
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`.
243
 
248
 
244
 
249
 
245
 ###Exercise 4: Deliverables
250
 ###Exercise 4: Deliverables
246
 
251
 
247
-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 in Moodle. Today each student will practice handing in their work individually.
252
+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.
248
 
253
 
249
 
254
 
250
 ####Instructions
255
 ####Instructions
251
 
256
 
252
-1. Open the "Deliverables" link in 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.
253
-
257
+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.