Keywords

1 Introduction

The computer science area has evolved on a large scale, becoming increasingly distinct. Such evolution, at such high rate, is responsible for the diversity and volume of information and learning challenges faced by students [1]. Consequently, researchers are constantly searching for educational tools that are capable of introducing highly complex topics in a more didactic method to improve the learning process. These tools act as facilitators when modeling the students’ curricula [2], and they are, at the same time, innovative, reliable and handy.

Many courses that have an extensive theoretical background demand a high level of abstraction from students. Thus, teachers try to express the theory through examples and illustrations [3]. Such courses rely on educational tools to provide and facilitate knowledge exchange. That is the case of Formal Languages and Automata Theory (FLA), which introduces computational formalisms as automata, regular languages, and state machines to aspiring computer scientists.

For this reason, several educational tools have been used to represent formalisms and to aid the teaching-learning process [4,5,6,7,8,9]. They contribute to building a solid knowledge while dismantling incomprehension’s barriers. However, it is clear that the tools by themselves are not enough [10], and from the perspective of the teacher, the interaction of students and formalisms must be real and collaborative, requiring novel methodological approaches and mechanisms to support the teaching and the learning [11].

This paper aims at introducing an educational methodology aided by a learning tool that is, at the same time, online, collaborative and graphical. With our methodology, we enable students to interact with the formalisms as the same way they interact with each other by building a common formalism. Our motivation was the lack of capability to represent knowledge and abstractions faced by students when they work alone. Our hypothesis is that the knowledge inherent of formalisms is capable of being acquired when students work collaboratively.

Through this methodology, students are exposed to formalism within an environment that promotes learning by collaboration among students; in which, they have the opportunity to work together in the task of discovering many facets of a common abstraction. By using our methodology, we contribute to the process of knowledge construction by enhancing the teaching process. Such contributions are summarized in:

  • Learning tool: we present a novel tool that is capable of contributing to the knowledge representation process;

  • Teaching methodology: we introduce a methodology that contributes to the knowledge transferring; and,

  • Case study: we show how our methods and tool behaves in a real example, where students were exposed to the development and interaction of formalism by simulators.

The remainder of this paper is structured as follows: Sect. 28.2 presents the related work, discussing how our methodology contrasts the ones from the literature; Sect. 28.3 describes our methodology; Sect. 28.4 presents both teacher and student perspectives on using the proposed methodology during the discipline of Formal Language and Automata Theory; and, Sect. 28.5 presents the conclusions and remarks.

2 Literature Review

2.1 Related Simulators

The usage of computers to simulate complex models and formalisms abstractions have roots set by M.W. Curtis [12]. Considering the importance of such usage, along the years, after the first simulator, thousands of others have been developed to fill teaching and learning limitations. In this sense, our methodology relies on simulators, as an educational strategy, for this reason, the simulators described in this category are essential to contrast with the one of ours.

jFLAP [13] is one of the most traditional simulators used in theoretical computing courses. It supports a variety of formalism representation, from regular languages to state machines. Such broad support characterizes it as a teaching-learning framework. Regarding its design, it was built to simulate almost all variations of computing machines, being capable of several transformations from one formalism to another. However, the ability to be easy-to-use was lost because of its constant development. Such ability is derived from the way JFLAP organizes its information, and from the capacity of a user to reach that information.

jFAST [14] was developed to provide interactive visualization of several computer science formalisms. The aim of such tool is to improve the understanding of abstract concepts through “active learning” techniques—i.e. by involving students in the learning process. This tool is described as useful and handy for teachers and students. It is well known for its capability of representing finite state machines. Although, the simulator is limited to such formalism representation.

The literature is full of simulators, as so, they are not limited to the aforementioned ones. It is clear that all the tools can represent computer science formalisms—e.g. regular and irregular languages, regular expressions, finite state machines, along with others. Nonetheless, many of them have focused on an icon-based interface to portray formalisms, while the desired result of a learning tool is to be able to aid the teaching-learning process. Therefore, by the fact that tools are not bound to a methodology, we identified a lack of an adequate methodological strategy to improve the knowledge exchange between students and teachers.

2.2 Related Teaching Methodologies

Here we report related works that proposed teaching methodologies. Such methodologies have the purpose of describing courses that are based on the development of simulators. In this sense, we discuss each one by presenting their contributions and limitations. In addition, we explain how our methods stand out from theirs.

In this regard, Souza et al. [3] described a methodology that follows the development of simulators as a way to evaluate the student’s knowledge. The authors described the learning process as highly abstract and complex; because of it, they devised new technics to propagate their knowledge among students. Their results point positively to their proposal. However, there still is a lack of clear and precise methodology, which must be in-depth, defined in a step-by-step process to be validated as a whole. Besides, the authors report that they guide their classes through a closed-source simulator. Such simulator is presented through images, which limits the reproducibility of their work.

Further, other authors [11] introduced a methodology through grouping related courses and evaluating the students with a single and uniform method. Their methodology starts by merging the courses of Formal Languages and Automata Theory (FLA), Computer Science Theory (CST), and Theory of Compilers (TC) in a single one, which they called as Theoretical Computer Science (TCS) course. Through the analysis of the theoretical and practical test scores, the authors’ results show an increase in the students’ understanding. However, this bond between courses seems to be stronger for FLA and CST; this behavior can be derived from the fact that the correlation between the topics covered by FLA and CST are greater than any other pair of disciplines.

The last one [10] described a methodological approach to use technology to assist teaching-learning activities from data-structure courses. The authors also described the course topics as difficult to be understood, which is derived from the abstract concepts related to it. Consequently, they presented a learning tool, named as CADILAG, which was developed to support the understanding of abstract concepts. Their results were based on a 2-year evaluation, pointing positively to their findings. However, it does not seem they can scale the methodology to many students; also, it is not possible to intuitively adapt such methodology to other course types.

These works from above and others [15,16,17] depict the need for a methodology able to cover limitations that are constantly being reported and discovered during classes of different areas. As such, this work aims to serve as a guide to this process by presenting a new learning tool and a teaching methodology that we used to evaluate such tool.

3 Methodology

To understand the scenario where our methodology fits there is the need to explain where it was developed. We refer to the course of Formal Languages and Automata Theory (FLA) as the origin of our methodology. It is noteworthy that the methodology is not limited to this course. Our methods are abstractions from the procedures that we have followed in classes. Therefore, they can be extended or even repeated in any other computer science course, each one with its tool-set.

3.1 Formal Language and Automata Theory (FLA)

The course of FLA has the aim to provide the means for the understanding of procedures and computability. Such course is a combined version of the Formal Language together with Automata Theory. The first one focuses on the internal patterns and structures derived from syntactical languages, while the second one uses machines and automata to provide solutions for problems; both of them are characterized by the high level of complexity and abstraction. The purpose of FLA course is to improve the students’ ability to solve problems. Such course is offered once a year with a 60-h workload. Half of it is reserved for teaching the theoretical concepts and the other half for practical activities. The main topics that are covered in such course are included in Chomsky’s hierarchy [18].

This course has a large impact on the Computer Science curricula. It introduces topics that are required for the understanding of other theory-based courses. Given the importance of such course, our methodology describes a new learning approach that can contribute to the robustness of the knowledge acquiring process. We explored different ways of evaluating students, mainly by using theoretical and practical tests. The practical one is the development of a simulator, which must be capable of representing a computer formalism.

3.2 Teaching Methodology

Our teaching methodology is based on the premise that knowledge is obtained through the set: Professor; Student; Theory; and Learning Tool as shown in Fig. 28.1. Hence, a learning tool was developed aiming to assist in the teaching process. The tool’s purpose is to aid the learning by turning concepts into visual and interactive representations, which tends to facilitate the cognition during classes. The tool works as an oracle, showing how an arbitrary formalism behaves.

Fig. 28.1
figure 1

Elements that provide knowledge acquisition

3.3 Learning Tool

Our learning-tool is a collaborative environment that was developed to aid in the teaching-learning of FLA. The tool by itself was developed using JavaScript, PHP, HTML5, and MySQL. As a consequence, any device that supports HTML5 and that has access to the internet can use it. This tool is structured in modules and submodules. The collaborative-environment and the tool-interface are the main ones; Fig. 28.2 depicts the hierarchy of the first one and Fig. 28.3 of the second one. Specifically, the collaborative-environment consists of four submodules, plus the tool-interface one. These submodules are the chat/log service and the user/file manager.

Fig. 28.2
figure 2

Diagram of environment’s modules

Fig. 28.3
figure 3

Supported abstractions by the learning tool

The chat service is responsible for the communication between the users of the environment, which can be between student-student or student-teacher. The user management is responsible for keeping track of which users are online in the environment, enabling more interactivity between them. Through the file management, the user is able to save their formalism locally or in the cloud, and also to share its work or keep it private. The log service performs the registration of all messages between teacher and student and also it stores all actions made in the development of a formalism; these logs are used by the teacher to detect possible difficulties in the student learning process. The tool interface is what enables the creation, simulation, and testing of all formalism mentioned up to here; specifically, these formalisms are the finite automaton, Turing machine, regular expression and regular grammar. Finally, for collaboration purposes, our tool has the machine sharing option, that enables interaction between student-student or student-teacher; this feature is available only for the finite automaton and Turing machine. The main screen of the tool is depicted in Fig. 28.5, in which we show two students working together in collaboration.

Figure 28.4 described the tool’s role to the student and the teacher. The figure says that the functions available to the teacher focus on ways to provide understanding about the students’ difficulties and doubts. On the other hand, the ones made available to the student focus on collaborative learning (Fig. 28.5).

Fig. 28.4
figure 4

Conceptual visions of the collaborative environment. (a) Teacher view of the collaborative environment. (b) Student view of the collaborative environment

Fig. 28.5
figure 5

A working proof of our learning tool. Such tool was developed to operate online, which allows students to interact through building a common formalism collaboratively. In the image, there is a stage where automata in currently being developed. The tool allows its creation by using a tool-set of circles and links. Notice that, other students and the instructor can observe in real-time the development of such formalisms. Also, the tool allows them to help in the building process

4 Results and Discussions

By applying our methodology and learning tool, we gathered reports from students and teachers. Both of them were submitted to the learning tool that we previously introduced; which was used in a single topic in the FLA discipline that was Finite Automata. During the time of the experiment, we made the tool completely available on a server provided by our university. The teacher used the tool during classes, aiming to demonstrate and simulate different formalisms.

Our experiment was not carried out during the whole course of FLA to avoid problems that could harm students’ learning, also because of possible technical problems with the server or usability problems with the tool, since it had not been used yet. At the end of this study, we collected reports of the teacher and students about their experience in using the learning tool.

4.1 Student Report

The students reported that it was an advantage the possibility of exchanging messages during classes because it provided collaboration. They also reported that, by being taught by a simulator, their teacher was able to easily pass on the knowledge about the formalism. Another point mentioned by students is how easy was to study together (in a group) through the collaborative environment, even when they could not be at the college. As their final report, they said that by saving their formalism in the cloud they could easily study at home.

4.2 Teacher Report

The use of a platform for formalisms development and interaction is important. It enables the knowledge exchange between machine-and-users and between users-and-users through a machine, once it is collaborative. The idea behind the collaboration is to familiarize the knowledge exchange among different students once the act of learning is collective.

Considering the teacher view, the use of the platform for formalism development and interaction is of full importance, once it facilitates the understanding of regular, context-free and context-sensitive languages. The interaction helps by providing real-time results, which enables extensive and interactive tests, which are carried out considering a user’s input.

We add to these advantages the web-chat facility, which allows user-to-user interaction during the development of different formalism. The annotation feature is also important since it enables the creation of notes during the formalism development. Not exclusively, all the features have their value, and they proved important to the act of teaching and learning.

5 Conclusions

Formal Languages and Automated Theory (FLA) is one of the fundamental disciplines in the development of a computer scientist. Such discipline introduces to the student a set of formalism belonging to the field of Theoretical Computing. By years of teaching experience, we realized that would be important for the development of the students the use of tools capable of building and simulating a formalism in collaboration. Hence, we created a learning tool and we have made it available to the students.

Through testimonials collected from both students and the teacher, we were able to observe that the tool has contributed to the process of knowledge exchange. From the teacher’s perspective, it was clear that the tool is an important way of exploring the proposed problems and it has shown to be an efficient part of the teaching-learning methodology. Thus, our proposal was proved helpful for knowledge construction and exchanging; we also noticed that our learning tool motivated the students during the task of problem-solving.