УДК 004.4


Никифоров Андрей Юрьевич
Национальный исследовательский ядерный университет «МИФИ»
кандидат технических наук, доцент кафедры кибернетики

В статье рассмотрен дистанционный лабораторный практикум, основанный на специализированных языках. Описаны метод создания специализированных языков с результатами его использования в ходе разработки лабораторного практикума, итоги применения этого практикума, а также изменения, внесенные по результатам такой практики.

Ключевые слова: виртуальная лабораторная работа, дистанционное обучение, компьютерные средства обучения, технология разработки, языки программирования


Nikiforov Andrey Yurievich
National Research Nuclear University MEPhI (Moscow Engineering Physics Institute)
PhD in Technical Science, Assistant Professor of the Cybernetics Department

The paper describes remote laboratory practical work based on studying specialized languages. The method of developing a specialized language, the results of its implementation in the training support complex, the architecture of that complex and the changes introduced to the method after undergoing such a practical check were described. Individualization of the learning environment is achieved by using a family of languages with different syntax, which allows for the individualization of the environment for a specific user, or for the provision of each student with his or her own version of the task, not only of the statement of the problem, but also in means solutions.

Keywords: computerized training resources, design technique, distance education, programming languages, Virtual/distance laboratory workshop

Библиографическая ссылка на статью:
Никифоров А.Ю. Individualization of remote laboratory practical work // Современная техника и технологии. 2015. № 3 [Электронный ресурс]. URL: http://technology.snauka.ru/2015/03/6255 (дата обращения: 29.05.2017).

IT human resource development is an important part of society computerization. The widespread introduction of new technologies in education led to the emergence of interactive learning software systems, including distance ones. Such technologies enabled the provision of high-quality educational services to a far larger number of students than previously and stimulated further development of these technologies.

One of the research policies is the development of a specialized source environment in the framework in which a remote user performs learning tasks. An essential component of such environments is the programming language used to perform the tasks.

Power and flexibility of expressive means are typical for modern common languages. This has a downside: semantics of such means are poorly bound to the specific terms of a particular knowledge domain. As a consequence, the use of such languages does not provide for the study of the latter. A student who starts to study a domain using a common programming language should first realize, via the means of that language, the conceptual basis of this domain. Only after will he or she be able to describe the relationships and interactions between its objects.

Since any language with its semantics mediates the perception of reality, it is the specialized language oriented to a particular domain which largely contributes to its exploration and mastering of concepts peculiar to it. In other words, the natural means of enhancing the attractiveness of descriptive tools is to develop new specialized languages, simple and close to the studied subject areas.

For the specialists in particular fields, the convergence of the semantics of those expressive means used to describe the area and the concepts characteristic therein, contributes to greater clarity and expressiveness of the created models. [1]

Advantages of described specialized languages are shown in [2] by example of MEPhI’s ‘Cybernetics’ faculty laboratory practical course ‘Open Systems Interconnection’ (OSI). Theoretical bases of formation of such an advantage and its quantitative estimates are given below.

Besides specializing in the descriptive means of the studied domain, there is another environment individualization aspect relating, in fact, to each specific user.

The need for such learning environment individualization has been identified thanks to the extensive practice of the said laboratory course. Such individualization provides some insulation to the efforts of each student performing the learning task, which is obviously necessary in the case of the group nature of distant study. Architectural (functional) support of the decisions and guidelines applicable when using them are explained below.

Mutual influence of mastering the domain and specification of the language descriptive means is mentioned above. Therefore, at the disposal of students embarking on the study of a particular discipline and educational practice within it, facilities such as runtime components should be provided for such educational practical tasks.

In the case of their absence, the desired language tools can be created. As with any product, a created language is the final compromise taking into account a number of conflicting requirements and technological constraints. A specialized language is no exception in this sense. A widespread opposition of ‘the means for a professional against the means for a student’ should be distinguished here. Excellence in the expressive power of the first over the second conclusive is obvious as it is undeniable that the former is many times more resource-intensive.

Under the tight time constraints of the educational process, the simplicity of studying the created language takes the first place. The simplicity, however, is to be adequate to functionality of the educational goals. In other words, the possible existence of a professional level specialized language, based on a particular subject area, does not cancel the need to create a new language for the same area.

Anyone studying the domain is able to perceive only the descriptive form of means in other words, its syntax. Mastering the semantic content of the structures of specialized language which is to say, the essential side of describing will occur later, following the simultaneous study of the theoretical aspects of the subject area and programming skills. Therefore, for the sake of creating a simple language, the syntax should be the basis of the objective function of this problem. This purpose is accompanied by a number of conditions and restrictions, one way or another connected with the semantics, the meaning of the subject area.

Simple numerical measures of complex multi-dimensional objects through normalization (parametrization) of the corresponding described spaces are widely used in practice in different areas. Although, in the opinion of some developers, using code metrics is not always justified, in fact discussions are usually conducted on the applicability of a particular metric in a particular case. [3] A whole class of metrics and several dozens of their representations, as well as appearance of the new hybrid types and standardized development methodology [4], [5], [6] has generated huge interest in the issue.[7]

An approach to the use of a range of code metrics to get quantitative evaluations of the contextually-free grammar is shown in [8], [9]. The author suggests that the approach can be used to evaluate the complexity of the application development based on grammar. It was used [10] to evaluate the complexity of the syntax of the specialized language created.

The language design process can be divided into three parts. First, a set of appropriate contextually-free grammar structures is formed. Then, a functional description of the language syntax complexity is conducted. And finally, the set of appropriate contextually-free grammar structures is searched for the one that realizes the extreme value of the syntax complexity criterion.

The above-mentioned need for the laboratory practical work individualization requires creation of appropriate tools. Let’s consider here the individualization of its linguistic component.

Such individualization must, on the one hand, lead to ensure that each student is provided with a personal variant of the language describing domain. On the other hand, such generated language diversity should not lead to the significant complication of the laboratory practical work. As a result, the following approach was used to develop it [10].

Internal code processing in any environment instance is performed in syntax of the specialized developed language; the development process is described above. It is therefore natural to call it the basic language. At the same time, each student during the first acquaintance with the resulting tool environment is proposed a language semantically equivalent to it, but with an individualized syntax. The code created by a student using such individual language is translated into the basic language before being executed in a secret manner hidden from the student.

Thus, language component individualization support requires: firstly, generation of managed basic language syntax diversity and, secondly, the ensured reverse transition transition of the individual language codes into the basis language.

The initially developed version of the laboratory complex, using specialized languages ​​to teach students how to describe open systems interconnection, and additionally allowing the transformation of laboratory classes in the form of homework with the possibility of remote delivery of works.

As described above, the complex is able to support a variety of options regarding semantically equivalent syntaxes of the developed language, and students are thereby ensured a certain runtime individualization of learning tasks.

Along with the distribution of the laboratory complex, a student receives lab task variant as homework. Variants differ by parameters of provided and required functional layer services of the OSI model and, as a consequence, implicitly those functions whose implementation is needed. Differences from variant to variant are introduced also in the syntax of the programming language used to describe the implementation.

The laboratory complex has all the necessary tools for the job: a text editor, the OSI model emulator, debugger, test tools and statistics.

A student provides the teacher with an independently completed, debugged and efficient variant of the solution to the task. On an individual basis using an emulator of the OSI model, the teacher checks the submitted implementation options. These must meet the requirements specified in the task. In this case, a supplementary oral questioning of the student takes place. The final grade consists of the grades for the quality of the solution and the answers given.

The long-standing practice of using laboratory complex confirms the above-mentioned theoretically sound methodological advantages of specialized programming languages. A comparison of the distributions of students according to the number of punctually completed home tasks in the case of a common language and a specialized language [shown in Fig. 1] can work as a simple illustration of the above. In total it is necessary to perform four tasks to get a credit for OSI course. The total volume of the histogram columns for each of the languages ​​is the same (100%).

Fig. 1. Distribution histograms for the students by number of timely completed and handed laboratory tasks

Along with that, practice identified a number of problems. One such is due to the specifics of the subject area the organization of open systems interconnection. The scattering of service quality indicators from variant to variant led to the fact that protocols generated while doing the variants make up functionally nested classes. This nesting means potential suitability of some protocols to replace the others in related tasks’ variants. Such a suitability check is simple for students, which offers an easy way to complete the tasks for some of them.

Besides, modern IT-tools allow the students to create, within a few generations and with very little effort, a simple solutions exchange environment, not amenable to external scrutiny.

An additional problem is caused by the helplessness of existing individualized language means before automatic translators, due to their relative ease of development and lack of control over distribution.

Finally, the original version of the complex didn’t have the means of automated control of the theoretical knowledge of the student. Practice has shown that the individual control of that knowledge is the most time-consuming operation when undertaking laboratory work.

The next generation laboratory complex is aimed at elimination of the circumstances described. Its architecture is shown in Fig. 2.

Fig. 2. Architecture of the training support complex

Basic functions of the complex:

  • To provide a referral system to students which includes background information on the use of the complex and guidelines for the task.
  • To provide to a student an individualized environment for protocol development support, including the language of their description, code editor, emulator interpreter, debugger and software testing.
  • To provide students and teachers with the means to control automated knowledge.
  • To provide teachers with the means to assess the solution to the task.
  • To provide a teachers with the means to detect plagiarism while performing the task.
  • To provide teachers the means to control individualization and task generation.
  • To ensure that the performed task can be transmitted via telecommunication channels (Internet, e-mail).

Here we distinguish the following differences between the new complex and its predecessor:

  • The availability of the module for students’ knowledge automated testing.
  • Improved means of laboratory task individualization.
  • Improved debugger.

The Test Module allows you to check that the basic theoretical knowledge necessary to perform in the lab has been mastered. The module supports question storage, their pseudo-random output relating to laboratory work topics, saving answers, statistics collection and showing test results. A replenished set of relatively simple tests is used to automatically check the knowledge immediately before actually performing the lab. Testing is limited in time. The combination of a certain level of complexity regarding the questions and adjustable time limit for answers creates a good basis for screening negligent students who prefer workarounds.

Improved tools to individualize the tasks imply the transition from hard-coded task variants to their description in a script – an external file. Due to this, the following is possible:

  • Dynamic tasks update without necessitating an update of the complex distribution.
  • Distributing task variants to individual students according to their complexity.
  • Debugging task variants in order to create sets of them, adequate in terms of complexity.
  • More flexible implementation of testing the individual levels of the OSI model.

The Improved debugger, in addition to the existing capabilities of the program in step-by-step or automatic mode, visual observation of the motion of the primitives in the system, observation of the values ​​of variables and setting breakpoints, also makes it possible to:

  • Adjust demonstration speed during visual observation of the movement of primitives.
  • Quickly program a breakpoint with a decrease in the delay time due to the acceleration of simulated time.
  • Debug procedural code of particular event handlers by emulating the obtainment of a primitive of a specified type with a user’s set of parameters.
  • View and change the values ​​of variables in all debugging modes.

Apart from the mentioned additions and changes, ​​a number of improvements in the program interface have been made: syntax highlighting in text editor was implemented, the options of displaying diagnostic messages for debugging mode and deactivating the customer’s messages on the screen during emulation to accelerate implementation of the program on slow computers were added.

The new laboratory complex made it possible to transform solution delivery into its defense with the addition, as a first step, of the automated test of theoretical knowledge. Failure in the performance of this test is non-admission of the student to the main routine of performing the task – it is clear that without knowledge of the underlying theory, the student could not perform the task alone.

If access index calculated after taking the test (i.e. the convolution results of mechanisms for identifying authorship of work) is not large enough, the student must defend the assertion of the work’s authenticity. This approach denies the possibility of handing over the work surface to restrict, without understanding the meaning, modification signs of cheating, or precisely specified teacher, as there are no such instructions. At the same time for the student who independently performed the task, it is easy, if necessary, to change the shape while maintaining the contents – the service level of the OSI model.

Indirect stimulation of students for independent preconditioning within the above described approach, along with computerized checks of the forms of their work, frees class time for more meaningful academic work and, in general, increases the effectiveness of training.

Modern IT-technology allows the development of specialized environments aimed at users’ support in their cognitive and practical activities. Resources of such environments provide tools, and expressive features of them are adapted to the level and needs of these users. The range of such means and tools is extremely extensive: from the simplest user interface graphics elements of stand-alone devices, to the developed means of communication utilizing special resources and necessitating highly skilled professionals globally dispersed.

The variety of language components in such an environment corresponds well to the described range – from straightforward interpretation of interface sets of primitive graphic images to a wide range of modern general-purpose high-level programming languages.

The growing specialization of the language components seems natural and expected in conditions of such technological flexibility. Specialized programming languages have been used for more than a decade, which makes their appearance, development and eventual dying out unavoidable in future. Such languages may and ought to be created for the specific needs of different categories of users, providing each with a set of advantages uniquely demanded by this particular group, these advantages being the result of purposeful efforts of the creators.

This is proven by the example of the justification, development and long standing successful exploitation of the run-time environment of the laboratory practical course ‘Open Systems Interconnection’ (OSI) distantly taught in MEPhI in the Cybernetics faculty using specialized language to describe the subject area.

In order to further individualize the environment, the personalization for each particular user was conducted. An advanced computerised knowledge test combined with the possibility to ask a student for authenticity justification of the work provided were considered appropriate and were implemented.

The successful practice makes it probable that in future more educating complexes for IT specialists based on the same principles will appear.

  1. Kosar T., Oliveira N., Mernik M., Veranda Pereira M. J., Črepinšek M., da Cruz D., Henriques P. R., 2010,”Comparing General-Purpose and Domain-Specific Languages: An Empirical Study”. Computer Science and Information Systems, Vol. 7, No. 2, pp. 247-264.
  2. Никифоров А.Ю. Язык описания взаимодействия иерархических систем и его персонализация. // Программные продукты и системы. 2009. №1. С. 36-37.
  3. Lincke R., Lundberg J.; Löwe W., 2008, “Comparing software metrics tools” International Symposium on Software Testing and Analysis 131–142.
  4. IEEE, 1998, “IEEE Std. 1061-1998, Standard for a Software Quality Metrics Methodology, revision” IEEE Standards Dept, Piscataway, NJ.
  5. ISO, 2001, ISO/IEC 9126-1 Software engineering – Product Quality – Part 1: Quality model.
  6. ISO, 2003, ISO/IEC 9126-3 Software engineering – Product Quality – Part 3: Internal metrics.
  7. Kaner C., Bond W., 2004, “Software Engineering Metrics: What Do They Measure and How Do We Know?” 10thInternational Software Metrics Symposium, Metrics 2004.
  8. Power, J. F. and Malloy, B. A., 2004, “A metrics suite for grammar-based software,” J. Softw. Maint. Evol.: Res. Pract., 16, pp. 405–426.
  9. Črepinšek, M., Kosar, T., Mernik, M., Cervelle, J., Forax, R., Rousse, G., 2010, ”On Automata and Language Based Grammar Metrics”, Computer Science and Information Systems, Vol. 7, No. 2, pp. 309-329.
  10. Никифоров А.Ю., Русаков В.А. Специализация языков описания предметной области в обучении // Дистанционное и виртуальное обучение. 2010. №37(7). С. 122-130.

Все статьи автора «Никифоров Андрей Юрьевич»

© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: