|Geodesy - New
Application of distance technologies in education during COVID-19
The experience in implementing distance technologies for teaching C++ programming students of the Moscow University of Geodesy and Cartography
Over the past 10 years, the Moscow University of Geodesy and Cartography (MIIGAiK) has been conducting a pedagogical experiment in teaching students of cartography and geodesy to program in C++ using a specifically developed training course. An important and distinctive feature of this training course from others [1 – 4] is the wide use of material on cartography and geodesy for teaching programming. All training examples and programs are aimed at solving certain practical problems of cartography and geodesy accessible to junior students. All program development homework is also based on real-world tasks from the field of cartography and geodesy.
The author is convinced that specialized training in programming based on solving cartographic and geodetic problems will prepare students for the effective use of the knowledge gained in programming their further work on the geodetic specialty. Currently, more than 70 educational programs that illustrate the main sections of the C++ programming language have been developed. These programs are centered around tasks from the course of general geodesy and cartography, which is read to students in parallel with the C++ programming course. All training programs have a small number of instructions (usually no more than 50 lines) and are comprehensible for junior students learning the basics of geodesy and cartography.
The CORONAVIRUS/COVID-19 pandemic had a significant impact on the programming training of cartographers and surveyors. In the spring of 2020, the educational process at the MIIGAiK was reorganized as distance learning and the academic semester and examination session was held remotely. This article analyzes the experience of distance learning for students obtained during the spring of 2020. It presents a typical educational computer program illustrating the features of the course “C++ for students of cartography and geodesy.”
Experience of teaching programming remotely in the face of pandemic
The experience gained in e-learning allows formulating important features of the educational process in these conditions. The role of video lectures in the educational process has significantly increased, and now this is an indisputable fact. Many teachers prepared their lectures in the video format. For this purpose, programs such as Zoom, Mind, MOODLE and other were used. Zoom and Mind allow conducting video lectures, both interactively and in the mode of prerecording a lecture on a computer disk. Training courses based on video lectures provide substantial assistance to students in mastering the training material. Nowadays, the process of preparing and recording video lectures continues, and the video database is being filled with lecture material for all training courses.
If we try to compare video lectures and conventional ones in terms of efficiency and convenience of acquiring knowledge, it turns out that face-to-face lectures do not always possess a leading position. The main advantage of a video lecture is the ability to stop the lecture, “pause” it to analyze some complex issues, think it over, and examine in detail what the lecturer said. It is no secret that the large amount of information presented by the lecturer exhausts students and makes the assimilation of educational material by the end of the lecture superficial and ineffective. The video lecture can be stopped at any time, a student has an option to relax and further continue studying the material. It is also possible to re-listen and watch the video lecture at the end of the training course to remind the material before passing the exam.
A video lecture allows the student to repeatedly listen and watch the material being studied and solve problems at the moment they appear, and not after the end of the lecture, as it is often the case in conventional lectures. This is crucial because it allows restoring the logical chain of reasoning of the lecturer, and not losing the thread of the lecture. We also note that lectures, even by an experienced lecturer, can contain erratum and unnecessary technical issues. Such insignificant fragments can be removed from the lecture during the editing of the videos which will make them more consistent and accessible to the audience.
A significant disadvantage of conventional lectures held in large lecture halls is inconvenient seating places for some students. Some seats in classrooms are far from the board, or the screen, or uncomfortable for some other reason. This makes it difficult for students at such places to fully perceive the lecture material. The noise in the lecture hall, the presence of an annoying neighbor significantly reduces the efficiency of the learning process. Here, video lectures have a significant advantage, since they allow the student to choose the right time to digest the material in order to acquire it on a wider and deeper scale. With the help of videos, it is possible to gain knowledge while being in a comfortable environment and at the student’s convenience.
However, distance learning has also several disadvantages. How can a teacher control the process of studying and taking in the material by a student? A simple solution to this issue is the student’s completion of a summary based on the video lecture materials, for example, in traditional paper form. For example, a lecturer may ask a student to take a synopsis of the course content presented in a video and to answer a series of questions. Further, the work has to be handed to the teacher via email for checking purposes. Obviously, this method of knowledge checking is more time-consuming than a face-to-face conversation between a teacher and a student.
An important element of monitoring students’ performance while studying remotely is checking homework and assessing the efficiency of process of digesting of educational materials. Of course, the old and proven trick to check the individual answers might be efficient. The results received per e-mail might be processed manually. However, this method of checking and assessing the results of homework and tests is not the best and loads the teacher with routine work. With this method of checking students’ performance, it is possible to use a multi-point grading scale. But the assessment will encroach upon the teacher’s time, especially if there are a large number of students in the group. In this case it would be possible to change the assessment system to a two-point one and to use the criteria: “passed” and “not passed”.
The use of computer programs, for example MOODLE, allows testing and assessment of homework in an automated manner. For such programs, a set of questions and tasks for homework must be prepared first. Such files could be uploaded to a remote server and links to them could be placed next to the link to the video lecture. This will help students test their knowledge during the study and let the teacher off from the routine work of checking homework. On the other hand, such an assessment system and testing programs can accumulate grades received by students to conduct the exam session remotely.
Testing programs reduce unnecessary tension in the “student-teacher” group and, together with the correct formulation of questions, ensure an adequate assessment of students’ knowledge. In the case of using automated knowledge assessment systems, the need to load new tests and questions into the system quite often would arise. It is to be done to exclude electronic cheating when answers can be copied from one file and pasted into another file.
Let us draw your attention to the issue of the distance work of a teacher in large groups, in which the number of students sometimes reaches 30 people. The effective organization of the distance learning process in such large groups requires specific work algorithms. In e-learning, the role of the study group as a highly organized entity of joint activities, communication, and relationships is growing. In this case, a course leader is a key person since he represents the group and acts on its behalf. A course leader helps the teacher to inform students about the home task and the test results.
Although it is widely known and is a trivial fact, we emphasize the role of a socially mature and active course leader as an important figure in the process of distance learning. An inanimate course leader means that a group has mistaken in making its choice. Often such a person pulls back the whole group. The active and energetic one contributes to a positive psychological climate in the group and helps the teacher and students to achieve their goals and objectives.
Usually, to carry out monitoring, the management of the educational institution requires that the information exchange between the teacher and the students is carried out in a certain educational information environment. If video or voice communication is not provided by such an environment, it seriously complicates the teacher’s work and reduces his effectiveness.
Communication between the teacher and the group of students via e-mail requires the teacher to think carefully about the text of the emails, which should be informative, short and at the same time quite strict. If the teacher adheres to the positions of the Classic School, the style of communication with a large number of emoji-pictures is not supposed suitable. Such a “free” style breaks down the psychological barrier between the learner and the teacher. In terms of the educational process, the teacher has a higher position in a hierarchy. The acquisition of knowledge by a student is a laborious process, which can be compared to climbing a mountain and the presence of a barrier helps the student to determine goals, strive to gain knowledge, evaluate his knowledge and overcome this barrier. However, each teacher has the right to choose the style of communication he likes and considers the best.
Distance seminars are an important element of e-learning. They should be held at a strictly defined timetable; it is not advisable many time to schedule the seminar to another time or another day. The appearance of a teacher at a certain and fixed time in the network or chat maintains the discipline of the group and puts the training in a strict framework. It is possible that the course leader has not appeared in the group chat at some class. How to act in the case when the seminar is conducted in communication mode through voice communication? To whom should the message be addressed? If the teacher addresses a message to the course leader, and he is absent, then the students of the group could remain silent due to modesty. This behavior of students can embarrass the inexperienced teacher. At the same time, the teacher should keep in mind such a scenario. The way out of this situation is to appeal to all students of the group with the words: “Whoever, who has read or heard my message, please, answer me …”. A “kind soul” is sure to be found for such a call, and contact with the group, working without a course leader, will be restored.
Nevertheless there are some other difficulties the teacher should beware of. The problem which any teacher of programming is always facing is to pupils who don’t keep pace with the rest in group. It is no secret that in C++ programming the most difficult is to take the first steps, figure out how to install a compiler, how to write and run a program, how to find and fix program bugs. Distance learning complicates the process for students who start programming from scratch even more. Therefore, the teacher should pay special attention to the low-performing student.
Let us demonstrate one more technically useful method which could be implemented while teaching in remote mode. Steady contact with students, receiving homework tasks, tests, and seminar exercises by e-mail will require the registration of several electronic mailboxes and addresses to work with students of different courses and groups. However, this does not completely solve the problem of working with a growing number of mails, and the mailboxes become full after a while. In such a deluge of letters, it can be difficult to find the right one. To reduce the number of messages, it would be useful to combine messages, photos, and scans from one student into one single file. This can be done, for example, by means of Adobe Acrobat. By introducing students to the procedure of combining files via Adobe Acrobat and offering students the same type of signature format for such PDF files, it is possible to significantly reduce the number of emails in the box and make message processing less time-consuming.
Having considered the features of e-learning in the spring of 2020, let us turn to the analysis of the curriculum tailored for future cartographers and surveyors studying the C++ programming language.
Articulation of the problem
The developed program converts radians into degrees, minutes, and seconds. Through the keyboard, the user enters the angle value in radians. The program converts to degrees with a fractional part. The formula is as follows: deg = rad * 180 / π, where deg is the angle value in degrees with a fractional part, rad is the original angle value in radians. For each radian value entered, the program displays the corresponding value for degrees, minutes, and seconds. First, the screen displays the angle in degrees, minutes, and seconds with a fractional part, and then the same data, but the number of seconds is rounded to an integer. Usually, the roud function is used to solve this problem, however, since it is the training program and is intended for an initial programming course, using the function would be wrong from a pedagogical point of view. Learning operators in a programming course always precedes the study of functions. Let us take a closer look at the code of the program.
Discussion of the results
Each of the curricula used in the “C++ for Cartographers and Surveyors” course has explanatory text intended for students to learn what a computer program does and how it works. This clarification of the above program is provided.
The main function is presented in lines 04-28. The main function defines the following variables: degrees, minutes, and seconds. They are used to store the angle values, separately in degrees, minutes, and seconds. The angleOfTurnInRadian and rest variables are needed to keep angle value in radians and perform intermediate calculations. These variables are of a long double type so that seconds are calculated with increased precision. In lines 09 -10, the user enters the value of the angle in radians through the keyboard.
The degreesWithFractionalPart and secondsWithFractionalPart variables for values of degrees and seconds, containing fractional part, are also long double. In line 12 the value of the angle in degrees with the fractional part is calculated. To define π the named constant M_PI is used. Line 13 takes the integer part of the resulting number of degrees using the explicit cast operator. The integer part of the number is taken from the long double variable, and the integer number of degrees is assigned to the degrees variable. Line 14 uses the rest variable to calculate the value of the minutes with a fractional part, and from the resulting value, the integer part of the arc minutes is taken and is assigned to the minutes variable. Line 17 evaluates the variable secondsWithFractionalPart to hold the value of seconds with a fractional part. Similarly, the integer part of the number from the variable secondsWithFractionalPart is taken and the integer value of seconds is assigned to the seconds variable. Then, in line 20, the obtained values of degrees, minutes, and seconds with a fractional part are displayed on the screen.
Since the integer of seconds was obtained by discarding the fractional part of the value of seconds, such an action cannot be recognized as rounding the number. The program performs rounding without using the standard rounding function (lines 21-23). The rounding algorithm is as follows. If, when receiving an integer value of angular seconds, a number greater than 0.5” or equal to it was discarded, then the value of seconds is increased by 1”. To do this, in line 21 the ternary conditional operator (? :), which increments the variable seconds ++ is used. If the expression in parentheses is true, then the value of seconds is increased by 1, otherwise, the number of seconds does not change
Lines 22 and 23 use two special C++ operators: the ternary operator (? :) and the comma operator (,). An example of a conditional operator is presented in the above-given instructions. Operator (? :) works as follows. First, the expression (seconds == 60) is evaluated and if it is true, then the expression minutes++ is calculated. The result of such calculations is the result of the conditional ternary operator. Otherwise, the expression separated by the “colon” sign is calculated, that is, minutes and it will be the result of the conditional operator. It must be noted that this statement contains the (,) operator. The purpose of the comma operator is to perform a sequence of operations. In line 22 the minutes variable is increased by 1 and the value of seconds variable is reset.
Line 23 uses a similar data processing algorithm. When the number of minutes is increased by 1′, the value of angular minutes has reached 60′, the value of degrees is increased by 1°, and the value of angular minutes is reset to zero. Line 25 displays the angle value rounded off to an error of 0.5 ″ in degrees, minutes, and seconds. This is where the program stops.
Testing of the program
Let us test the program. Having compiled and running the program, the initial data from the column “Angle in radians” of Table 1 will be sequentially entered. As the result, the data presented in the table columns “Value of seconds with fractional part” and “Value of seconds rounded off to the whole” will be received.
The result obtained demonstrates the principle of program functioning under the condition when different data are input. Based upon the table, the rounding performed by the program has an error not exceeding 0.5”.
The analysis of the application of remote technologies to teach students programming in C++ under the conditions of CORONAVIRUS/COVID-19 is performed. The positive and negative aspects of using video lectures via Zoom, Mind, and other distance learning services, such as MOODLE, are considered. The features of the organization of the educational process and the risks associated with learning programming remotely are discussed. Recommendations to improve the efficiency of the process of teaching programming under the conditions of the remote work of a teacher are given.
The curriculum for students learning the basics of C++ programming and application of that knowledge to cartography and geodesy is considered. The program converts radians to degrees, minutes and seconds. The program is intended for studying such sections of programming as “Expressions and Operators of C++”. A detailed analysis of the program code is carried out and the test results, which can be used in a training workshop on programming, are presented.
Davis, S.R. (2014) C++ For Dummies, John Wiley & Sons.
Liberty, J., Cashman, M. (2002) SAMS Teach Yourself C++ in 10 Minutes, SAMS, USA.
Podbelskiy V.V. (2003) C++ language. Finance and Statistics.
Moscow, Russia. Siddhartha Rao (2012) SAMS Teach Yourself C++ in one hour a day. SAMS, USA.