Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content
Rogerio Garcia

    Rogerio Garcia

    ABSTRACT
    Aspect Mining and Refactoring to Aspects aim to identify crosscutting concerns and encapsulate them in aspects, respectively. Aspect Mining remains as non-automatic process, i.e., the user needs to analyze and understand the results... more
    Aspect Mining and Refactoring to Aspects aim to identify crosscutting concerns and encapsulate them in aspects, respectively. Aspect Mining remains as non-automatic process, i.e., the user needs to analyze and understand the results generated by techniques/tools, and confirm crosscutting concerns to refactor them to aspects. In this paper we propose a visual approach that deals with results generated by two aspect mining techniques proposed in the literature. By coordinating visual mappings, different levels of detail to explore software artifacts support aspect mining facilitating their interpretation for further refactoring to aspects. The proposed visual approach was implemented (SoftV iz4AspectMining tool) and in this paper are presented the obtained visualizations, how to interpret them and lessons learned.
    Databases and Distributed Systems have a fundamental relevance in Computer Science; they are usually presented in courses where the high-level of abstraction characterizes the teaching and learning processes. Consequently, the teaching... more
    Databases and Distributed Systems have a fundamental relevance in Computer Science; they are usually presented in courses where the high-level of abstraction characterizes the teaching and learning processes. Consequently, the teaching method needs to evolve to fulfill the present requirements. Therefore, grounded in these concepts, the main goal of this paper is to introduce a teaching methodology via benchmark tests. Our methodology was conducted using the Hadoop framework, and it is innovative and proved effective. Our methods allow students to be exposed to complex data, system architecture, network infrastructure, trending technologies and algorithms. During the courses, students analyzed the performance of some computational architectures through benchmark tests on local and on the cloud. Along with this scenario, they evaluate the processing time of each architecture. As a result, our methodology proved to be a support learning method, which allows students to have contact with trending tools.
    Universidade Estadual Paulista (UNESP), Faculdade de Ciencias e Tecnologia (FCT), Departamento de Matematica e Computacao, Presidente Prudente, SP, Brasil
    This Research Full Paper presents an analysis of the challenges and advantages on applying MOOCs in software engineering teaching and training contexts. Software engineering is a constantly evolving discipline in which educators are... more
    This Research Full Paper presents an analysis of the challenges and advantages on applying MOOCs in software engineering teaching and training contexts. Software engineering is a constantly evolving discipline in which educators are involved with a constant flow of new tools, resources and techniques in software development. This scenario makes the act of teaching and contributing to the students’ academic education more complex. The insertion of educational technologies brings contributions in this context, causing a transformation in the current scenario of teaching. An example of these new technologies are the MOOCs (Massive Open Online Courses) – open and online courses that are available in providers in partnership with reputable universities. Considering this scenario, this paper aims at identifying the challenges and trends of MOOCs application in software engineering domain, by means of a systematic mapping of the literature (SML). During the SML it was performed an analysis of 5100 papers and selection of 96 primary studies. The outcomes indicate that there is a potential in using MOOCs on teaching or training, as they are an alternative to offer courses applying traditional methods of learning. In addition, the challenges of this direction are analyzed and discussed.
    The process of data collection involves the organization of a group of questions, where its answers will be analyzed to obtain results. This process is faced with difficulty of standardization and obtaining accurate results, where usually... more
    The process of data collection involves the organization of a group of questions, where its answers will be analyzed to obtain results. This process is faced with difficulty of standardization and obtaining accurate results, where usually the collect, storage and computation of results are manually realized. Several factors may cause unwanted results, like poorly completed forms, difficulty of interpretation of what was informed and disinterest of who fills it. Not all problems can be simply solved, but HIS (Health Information System) aids the process and data analysis, ensuring consistency and integrity. This work presents WebSISLapam, a web application to collect, organize and analyze data related to medical survey responses, supporting the creation and reuse of forms, questions and quantitative and qualitative variables.
    Project management is an essential activity across several areas, including Software Engineering. Through good management it is possible to achieve deadlines, budgets goals and mainly delivering a product that meets customer expectations.... more
    Project management is an essential activity across several areas, including Software Engineering. Through good management it is possible to achieve deadlines, budgets goals and mainly delivering a product that meets customer expectations. Project management activity encompasses: measurement and metrics; estimation; risk analysis; schedules; tracking and control. Considering the importance of managing projects, it is necessary that courses related to Information Technology and Computer Science present to students concepts, techniques and methodology necessary to cover all project management activities. Software project management courses aim at preparing students to apply management techniques required to plan, organize, monitor and control software projects. In a nutshell, software project management focuses on process, problem and people. In this paper we proposed an approach to teaching and learning of software project management using practical activities. The intention of this work is to provide the experience of applying theoretical concepts in practical activities. The teaching and learning approach, applied since 2006 in a Computer Science course, is based on teamwork. Each team is divided into groups assuming different roles of software process development. We have set four groups, each one assuming a different role (manager; software quality assurance; analyst and designer; programmer). The team must be conducted across the software process by its manager. We use four projects, each group is in charge of managing a different project. In this paper we present the proposed approach (based on hands on activities for project management); we summarize the lessons learned by applying the approach since 2006; we present a qualitative analysis from data collect along the application.
    The development of large-scale distributed virtual environments deals with restrictions imposed by the infrastructure of communication systems. The scalability in those systems is an important issue to consider on designing and shows... more
    The development of large-scale distributed virtual environments deals with restrictions imposed by the infrastructure of communication systems. The scalability in those systems is an important issue to consider on designing and shows higher complexity, as the resources managed by the system increases. AVDNet - an architecture for scalable distributed virtual environments presented in a previous work - helps to reduce the amount of packets sent over the communication network. Besides, the computational processing on rendering is also reduced by using AVDNet, since the virtual environments is created using regions that separate spatially the environment. However, the AVDNet has restrictions on dealing with bandwidth management and the choice of servers, considering their availability. In this paper we present an analysis of scalability using the application layer anycast. To conduct this analysis we use the AnyAVDNet, a framework that implements the dynamic load distribution among servers of AVDNet regions. In addition, we show the metrics and the results.
    Teaching mathematics for engineering students is very important. New undergraduate students are aware that they will need mathematical concepts in professional activities. It is still usual to observe not only the difficulty of students... more
    Teaching mathematics for engineering students is very important. New undergraduate students are aware that they will need mathematical concepts in professional activities. It is still usual to observe not only the difficulty of students in mathematical disciplines, but also the lack of motivation for those disciplines. Motivate and keep motivated the engineering students to mathematical disciplines are a challenge for the teacher. In the literature, it is possible to observe the use of modeling tools of mathematical problems, some of them able to simulate models. Those tools have been used to try to motivate students, but with a technological bias that may introduce difficulties. In this paper we propose an approach to teaching-learning process of mathematical concepts to engineering students with a motivational factor: a practical problem to be modeled in which students must apply concepts seen in class, in particular using the Ordinary Differential Equations (ODE). Each student can choose a problem of his/her interest, which increases motivation. The problem chosen must be explored to create mathematical models involving multiple concepts, which allows the comparison of results. Students must create models using existing computational tools, preferably of free use, supported by instructor. So, the students are allowed to apply the concepts acquired to develop projects with transversal themes aiming to verify the capability and the use of these tools in learning mathematical concepts. Also, this paper presents an application of the approach proposed in Numerical Methods for Differential Equations course. We observed that the use of computer tool to model a real problem chosen by students has improved the interest and, consequently, facilitated the teaching-learning process. Also, it may develop in students a new vision on how they can build their knowledge. We also discuss ways in which the computational resources and everyday problems can help in math classes and arouse creativity, motivation and mathematical logical reasoning in engineering students.
    The traffic between computer networks must be controlled to prevent unauthorized access. Firewall is responsible for filtering data packets between networks, applying rules to select data packets that can get in/out to access the network.... more
    The traffic between computer networks must be controlled to prevent unauthorized access. Firewall is responsible for filtering data packets between networks, applying rules to select data packets that can get in/out to access the network. The firewall must be configured accordingly network access policy. Therefore, the students have to be trained to acquire skills not only to understand network access policy, but also to translate it into firewall native language. The use of a graphical representation (high level) to model the network access policy consist in a resource to facilitate understanding and to minimize defects on firewall native language. For that, we have proposed an extension to Security Policy Modeling Language (SPML), the SPML2, which aims to create a visual representation of the network access policy using graphical notation. Also, in this paper we present SP2Model, a web based tool to support SPML2 network accesses policy modeling and its translation into firewall native language. Using the SP2Model, the student can model the network access policy in a graphical notation and, then, can generate the set of rules in firewall native language. The use of SP2Model has facilitated the teaching-learning process, compared to traditional approaches. We evaluated SP2Model (and consequently the SPML extension) through an experiment following the GQM paradigm (Goal / Question / Metric) comparing the traditional approach and the use of SPML2 in operational security education. We performed two experimental sessions and we present the results, as well as a discussion about the tool, its use and the trade-off on using it.
    Digital Image Processing (DIP) consists of a set of techniques to acquire, represent and transform digital images. Through these techniques, it is possible to extract and identify information of images and improve the visual quality by... more
    Digital Image Processing (DIP) consists of a set of techniques to acquire, represent and transform digital images. Through these techniques, it is possible to extract and identify information of images and improve the visual quality by facilitating human perception and interpretation by computer systems. However, the Digital Image Processing teaching is hindered by the complexity of implementation of many techniques, on several occasions is not possible that student visualize the results of DIP techniques when are discussed during the course. This paper presents an experiment over a web platform to support the teaching of digital image processing. The goal of this platform is not replace coding techniques, but allow rapid visualization and experimentation of studied methods, without be necessary to install software or previous knowledge of a specific programming language.
    In introductory courses of technology, students with difficulty in programming subjects have led to high dropout rates due to difficulties to understand algorithms, programming language, and paradigm concepts. Furthermore, teachers... more
    In introductory courses of technology, students with difficulty in programming subjects have led to high dropout rates due to difficulties to understand algorithms, programming language, and paradigm concepts. Furthermore, teachers encounter challenges to support students individually, when adequate feedback is essential to the learning process. This paper presents the Teacher Mate tool to support source code analysis to identify the lack of good programming practices and to evidence students’ difficulties. We performed a case study focusing on identifying the difficulties among six classes of a object-oriented programming course. Our findings show that difficulties are similar in all classes and the students applied some concepts accurately (such as the encapsulation) and fewer violations remain on the source code. Moreover, we show an intervention and its result: based on analysis, the teacher modifies the approach, leading to positive results to support learning both object-oriented concepts and source code quality.
    Nowadays, SPOCs (Small Private Online Courses) have been used as complementary methods to support classroom teaching. SPOCs are courses that apply the usage of MOOCs (Massive Open Online Courses), combining classroom with online... more
    Nowadays, SPOCs (Small Private Online Courses) have been used as complementary methods to support classroom teaching. SPOCs are courses that apply the usage of MOOCs (Massive Open Online Courses), combining classroom with online education, making them an exciting alternative for contexts such as emergency remote teaching. Although SPOCs have been continuously proposed in the software engineering teaching area, it is crucial to assess their practical applicability via measuring the effectiveness of this resource in the teaching-learning process. In this context, this paper aims to present an experimental evaluation to investigate the applicability of a SPOC in a Verification, Validation, and Software Testing course taught during the period of emergency remote education during the COVID-19 pandemic in Brazil. Therefore, we conducted a controlled experiment comparing alternative teaching through the application of a SPOC with teaching carried out via lectures. The comparison between th...
    The Data Structure discipline consists on studying data organization in computer memory, primary and secondary ones. Data structures are organized using conceptual and behavioral issues that require high degree of abstract representation.... more
    The Data Structure discipline consists on studying data organization in computer memory, primary and secondary ones. Data structures are organized using conceptual and behavioral issues that require high degree of abstract representation. It has been observed significant difficulty, by students, to understand the abstract concepts related, which is observed during practical tasks. In fact, practical tasks are essential to consolidate knowledge about data structures, but the students need support to understand the concepts before practical tasks. There are several works in literature showing tools to support conceptual and behavior comprehension, each one with specific features. However, the tools by themselves are not enough, dealing with specific data structure, with severe constraint. In literature, some tools are presented using case studies specific to the data structures supported. And we observed that the tools are presented focusing on their functionalities (the case studies are designed to explore such functionalities). Also, we observed the lack of a methodological approach to incorporate tools in a learning process effectively. In this scenario, we address the use of technological support to teaching-learning process. We propose a methodology based on constructionism, in which students, tasks (home works) and tools are coordinated by a teacher in favor of knowledge construction. In order to present our methodology, we use a learning tool, named CADILAG, developed using visual resources to support students understand data structures concepts. We applied the methodology proposed for two years. The positive results are observed in students grades and their evaluation. Also, according to the teacher, the students have shown interest and motivation.
    ABSTRACT
    Well-written code (which meets standards, conventions, and quality specifications) is often associated with the programmer's experience, which is why companies have been looking for increasingly qualified professionals. Codes at odds... more
    Well-written code (which meets standards, conventions, and quality specifications) is often associated with the programmer's experience, which is why companies have been looking for increasingly qualified professionals. Codes at odds with these standards tend to be complex and poorly written and are generally difficult to understand. Consequently, the activities inherent to it become costly. Although well defined and consolidated in the industry, the concepts of code quality taught in the academy are insufficient to enable students to meet market expectations. Research indicates that graduates do not feel prepared to enter the labor market, facing difficulties when competing for the best job opportunities. This difficulty highlights a gap between industry and academia. Researchers have identified the gap and have proposed improvements to the teaching-learning process based on using the concepts and tools widely used in the software industry in an academic environment. When analyzing educational institutions' programming disciplines, it is possible to notice a mismatch between programming disciplines and code quality disciplines. In this scenario, this project aims to propose improvements on how knowledge of programming and quality is evolved, proposing an approach that uses software quality as a subsidy for teaching programming, providing the teacher with guidelines for teaching programming focusing on internal quality source code. We idealized an innovative practice that brought programming, usually focused on the execution of algorithms, within the teaching of code quality, focused on software engineering principles. The use of code inspection tools allowed direct teaching according to the class's needs, introducing a guided content-based internal quality teaching in programming disciplines without generating extra work for the teacher. In addition to the improvements for the teacher, we are convinced that from the student's perspective, we were able to motivate them to learn to program not only concerned with the execution results but also how the solution is developed.
    Several works have presented distinct ways to compute feature descriptor from different applications and domains. A main issue in Computer Vision systems is how to choose the best descriptor for specific domains. Usually, Computer Vision... more
    Several works have presented distinct ways to compute feature descriptor from different applications and domains. A main issue in Computer Vision systems is how to choose the best descriptor for specific domains. Usually, Computer Vision experts try several combination of descriptor until reach a good result of classification, clustering or retrieving – for instance, the best descriptor is that capable of discriminating the dataset images and reach high correct classification rates. In this paper, we used feature descriptors commonly applied in handwritten images to improve the image classification from fruit datasets. We present distinct combinations of Zoning and Character-Edge Distance methods to generate feature descriptor from fruits. The combination of these two descriptor with Discrete Fourier Transform led us to a new approach for acquire features from fruit images. In the experiments, the new approaches are compared with the main descriptors presented in the literature and our best approach of feature descriptors reaches a correct classification rate of 97.5%. Additionally, we also show how to perform a detailed inspection in feature spaces through an image visualization technique based on a similarity trees known as Neigbor Joining (NJ).
    Web applications have a complex user interface (UI) structure. The lack of formal documentation for web applications has been noticed in literature. If updated, formal documentation (and its models) would be helpful both to development... more
    Web applications have a complex user interface (UI) structure. The lack of formal documentation for web applications has been noticed in literature. If updated, formal documentation (and its models) would be helpful both to development and maintenance tasks. However, UI models are difficult to understand because they must have all information about UI structure, with levels of abstraction and scattered information across multiple diagrams. We propose an UI presentation using Information Visualization techniques, named ModelUIVIZ, to support understanding UI implementation. For that, we implemented two tools: a reverse engineering tool, named WebModelUI Data, to extract data from web applications; and the WebModelUI Tool, to create visual presentations. In order to evaluate ModelUIVIZ, we also conducted a controlled experiment focusing on evaluating the ModelUIVIZ on supporting UI comprehension, what had positive results. In this paper we present both the ModelUIVIZ, its evaluation as well as results obtained.
    Recommendation systems are intended to assist users in dealing with information overload by providing a content filtering mechanism. Content filtering is based on the user's preferences and interests. Current recommendation systems... more
    Recommendation systems are intended to assist users in dealing with information overload by providing a content filtering mechanism. Content filtering is based on the user's preferences and interests. Current recommendation systems suffer from the problem of a lack of initial information about new users. This problem, known as the cold-start problem, is present both in existing systems and in new systems, in which any user is a new user. In addition, web application developers find it difficult to integrate recommendation systems into their applications, having to resort to third-party software or develop the recommendation system from scratch. In this work, URecommender is proposed, an API for web recommendation systems composed of a Middleware and a Framework capable of identifying the textual content of greatest interest to the user and recommending relevant related content. Such identification is done implicitly and based on the user's current behavior, which can solve the cold-start problem. In addition, URecommender gives the developer greater control over the recommendation system that will be integrated into the web application under development. The API was used for the development of a real web application and demonstrated good results in the recommendations generated.
    Change Impact Analysis aims to identify parts of a system affected by the proposed change implementation. Although one may find in literature techniques to automate the impact identification process, it is still highly dependent on the... more
    Change Impact Analysis aims to identify parts of a system affected by the proposed change implementation. Although one may find in literature techniques to automate the impact identification process, it is still highly dependent on the experience with the analyzed software. Studies in this area do not focus on the analysis of the possible impact identified by the techniques. In this paper, we propose a visual approach to deal with the results generated by applying an impact analysis technique to oriented source code. Coordinating visual mappings makes it possible to identify impacted entities regarding the individual difficulty of maintenance. Also, it is possible to determine how are affected the entities. In this paper, we present the implemented approach (tool VisImpala), the generated views, how to interpret them, and the lessons learned.
    At the last few years, the usage of NoSQL databases has increased, and consequently, the need for integrating with different programming languages. In that way, database drivers provide an API to perform database operations, which may... more
    At the last few years, the usage of NoSQL databases has increased, and consequently, the need for integrating with different programming languages. In that way, database drivers provide an API to perform database operations, which may impact on the performance of applications. In this article, we present a comparative study between two main drivers solutions to MongoDB in Node.js, through the evaluation of CRUD tests based on quantitative metrics (time execution, memory consumption, and CPU usage). Our results show which, under quantitative analysis, the MongoClient driver has presented a better performance than Mongoose driver in the considered scenarios, which may imply as the best alternative in the development of Node.js applications.
    Software Quality Assurance is a sub-process that ensures that developed software meets and complies with defined or standardized quality specifications. Focusing on source code, there are characteristics that can be used to evaluate the... more
    Software Quality Assurance is a sub-process that ensures that developed software meets and complies with defined or standardized quality specifications. Focusing on source code, there are characteristics that can be used to evaluate the quality. Introductory courses must encourage freshmen students to improve internal quality of their source code, but only as sophomore they have contact with Software Engineering concepts, including Quality Assurance. In this paper we present a tool to source code quality evaluation aimed at supporting students to improve their source code and, consequently, their programming skills. The proposed tool uses quality reports (available to professional environment integrate with software repositories) to analyze students' source code and provide a feedback about the student coding. The proposed tool run locally, with few computational resources. In addition, we proposed the methodology to use the proposed tool: it consists of challenging students to perform a set of maintenance tasks in a controlled environment. We prepared a source code by introducing common defects, what decreases the quality of source code, and ask to students to perform maintenance tasks in order to both eliminate the introduced defects and introduce new features. After each modification, the students must evaluate their code using the proposed tool to obtain a feedback about quality of source code. To evaluate the approach and the tool, we created a survey and applied to students and the teacher. As a result, we show the benefits of using the proposed tool to both teachers and students perspectives. The results are positive to enhance the teaching-learning Software Quality Assurance to Software Engineering students.
    Computer Science teaching materials are biased towards concepts and theoretical aspects. One may consider it difficult to relate concepts to concrete problems. Consequently, it increases the chances of a student not recognizing the... more
    Computer Science teaching materials are biased towards concepts and theoretical aspects. One may consider it difficult to relate concepts to concrete problems. Consequently, it increases the chances of a student not recognizing the relevance of the subject, becoming unmotivated and unprepared to solve practical problems or coping with workplace needs after college. This paper shows the use of social media data as an alternative to minimize the skill gap between what the student learns in college and the skills required in the workplace. The proposed strategy consists of extracting topics from Stack Overflow questions to identify concepts generally unknown or misunderstood and concepts that their practical application represents a challenge. The concepts covered in Stack Overflow questions provide strong cues about how professors and instructors can improve teaching material with useful content for their students, as well as increase their motivation -- since the teaching material becomes clearly related to practical issues in Computer Science. We show, by an example, how to use the proposed strategy to improve teaching material from the generated topics. Also, we demonstrate that the application of topic modeling in Stack Overflow content is promising as a professor support tool to enhance teaching material relevance in Computer Science courses and diminish the college-workplace skill gap.
    Hybrid volume rendering algorithms combine techniques of different categories of volume visualization. Volume on Surface (VoS) is a hybrid volume rendering technique that maps volume information to isosurfaces, intending to accelerate the... more
    Hybrid volume rendering algorithms combine techniques of different categories of volume visualization. Volume on Surface (VoS) is a hybrid volume rendering technique that maps volume information to isosurfaces, intending to accelerate the volume rendering process. In this paper, we introduce an improved version of the VoS technique. Furthermore, we conduct an evaluation of CUDA-based versions of both the original and the improved approach, comparing them with the conventional Ray Casting algorithm. In some results, our technique is more than eight times faster than Ray Casting and thirty times than original version. In addition to the main discussion, we investigate how a surface simplification influences the performance and the quality of the images rendered by our approach.
    Theoretical Computer Science area (TCS) stands out by being an important study field, and it is composed by Formal Languages and Automata Theory (FLA), Computer Science Theory (CST), and Theory of Compilers (TC). This area is responsible... more
    Theoretical Computer Science area (TCS) stands out by being an important study field, and it is composed by Formal Languages and Automata Theory (FLA), Computer Science Theory (CST), and Theory of Compilers (TC). This area is responsible for introducing the beginnings of the Computer Science through formalisms - which represent a set of methods, techniques, or rules that describe the solution to a problem with restrictions - and it has a substantial impact on the student's knowledge. Computer science theory is based on the understanding of computability and techniques to solve challenges, and to improve the teaching-learning process used to introduce these concepts we proposed a Combined Methodology for Theoretical Computing (CMTC). Our methodology is based on formalism development to ground the knowledge acquired during classes of FLA, CST, and TC, where students are introduced to Theoretical Computing during one year and a half. In each course, we applied the same methodology where each student used data structures, computer graphics, and algorithms to solve problems. We address this methodology to understand how much the incomprehension of formalisms is influenced by new concepts and its abstractions. Against this background, we demonstrate that the that CMTC has the aim to build knowledge and make the new concepts and formalisms concrete. Our results are based on statistical analysis from students' grades, where we could observe among other results, the correlation between the practical activities and the conceptual knowledge.
    ABSTRACT
    Research Interests:
    Research Interests:
    The Data Structure discipline consists on studying data organization in computer memory, primary and secondary ones. Data structures are organized using conceptual and behavioral issues that require high degree of abstract representation.... more
    The Data Structure discipline consists on studying data organization in computer memory, primary and secondary ones. Data structures are organized using conceptual and behavioral issues that require high degree of abstract representation. It has been observed significant difficulty, by students, to understand the abstract concepts related, which is observed during practical tasks. In fact, practical tasks are essential to consolidate knowledge about data structures, but the students need support to understand the concepts before practical tasks. There are several works in literature showing tools to support conceptual and behavior comprehension, each one with specific features. However, the tools by themselves are not enough, dealing with specific data structure, with severe constraint. In literature, some tools are presented using case studies specific to the data structures supported. And we observed that the tools are presented focusing on their functionalities (the case studies are designed to explore such functionalities). Also, we observed the lack of a methodological approach to incorporate tools in a learning process effectively. In this scenario, we address the use of technological support to teaching-learning process. We propose a methodology based on constructionism, in which students, tasks (home works) and tools are coordinated by a teacher in favor of knowledge construction. In order to present our methodology, we use a learning tool, named CADILAG, developed using visual resources to support students understand data structures concepts. We applied the methodology proposed for two years. The positive results are observed in students grades and their evaluation. Also, according to the teacher, the students have shown interest and motivation.
    Data synchronization is a process of establishing equivalence among two data collections. It is essential to distribute databases and several techniques have been implemented in Database Management Systems (DBMS), but it is not a feature... more
    Data synchronization is a process of establishing equivalence among two data collections. It is essential to distribute databases and several techniques have been implemented in Database Management Systems (DBMS), but it is not a feature for free use versions. Focusing on mobile computing, applications that perform data synchronization have become increasingly popular. However, due to lack of internet connection, synchronization process requires specific features to take place in an asynchrony way. The MySQLite Sync middleware, presented in this paper, perform data synchronization among databases stored in mobile devices and DBMS. To validate our proposal we adopted metrics based on time and number of primary and foreign keys mapped after synchronization, in order to maintain data integrity. The results obtained are presented and discussed showing positive contributions.
    Several studies suggest that the teaching of software testing should begin as early as possible, since introductory programming courses. In this way, the teaching of both subjects, programming and testing, becomes an integrated teaching... more
    Several studies suggest that the teaching of software testing should begin as early as possible, since introductory programming courses. In this way, the teaching of both subjects, programming and testing, becomes an integrated teaching approach. Testing practices in this context can provide a timely feedback to students while they are still working on programming assignments and, as a result, increase the quality of their code. Besides, developing students' testing skills earlier is useful to improve their programming skills as well, since both kinds of skills are complementary. However, this integration is not straightforward, because lecture hours and the coverage of programming topics must remain the same, while testing concepts and practices are introduced. For this reason, when designing an educational approach to introduce testing practices to novice programmers, there is also the need to address potential difficulties faced by both students and instructors. Considering this scenario, this paper aims at identifying the challenges raised due to the integration of software testing into introductory programming courses. The goal is to provide support for instructors who intend to adopt the integrated approach. The challenges have been identified from the results of a systematic mapping we conducted of the literature in this domain. The main contribution of this paper refers to the establishment of a catalog of challenges faced to integrate software testing into introductory programming courses. We also discuss possible solutions to design courses using the integrated approach and point out challenges that have been scarcely addressed in the literature. Finally, we indicate directions that can be explored in future educational empirical studies in this context.
    The selection of variables in a given experiment is crucial, since it is the theoretical foundation that guides how data should be collected and analyzed. However, selecting variables is an intricate activity, especially considering areas... more
    The selection of variables in a given experiment is crucial, since it is the theoretical foundation that guides how data should be collected and analyzed. However, selecting variables is an intricate activity, especially considering areas such as Software Engineering and Education, whose studies should also consider human-related variables in the design. In this scenario, we aim to investigate how a support mechanism helps in the variables selection activity of the experiment process. To do so, we conducted a preliminary study on the use of an experimental framework composed of a catalog of variables. We explored the domain of the integration of software testing into programming education. Participants were divided into two groups (ad hoc and framework support) and asked to select variables for a given experiment goal. We analyzed the results by identifying threats to validity in their experimental design drafts. Results show a significant number of threats of type inadequate explication of constructs for both groups. Nonetheless, the framework helped to increase the clarity of concepts selected as variables. The cause of most raised threats, even with the framework support, was an inaccuracy in selecting the values of such variables (i.e. treatments and fixed values).
    Optimum-path forest (OPF) is a graph based classifier in which the training process computes optimum-path trees rooted by prototype instances. Thus, one or more optimum-path trees represent each class and the testing process is based on... more
    Optimum-path forest (OPF) is a graph based classifier in which the training process computes optimum-path trees rooted by prototype instances. Thus, one or more optimum-path trees represent each class and the testing process is based on identifying which optimum-path tree would contain a test sample. Usually, OPF performance is analyzed based on measures computed from training and testing process, such as f-score and correct classification rate (accuracy). This paper proposes an approach based on visualization to support understanding of OPF training and testing processes. The visual approach uses multidimensional projection techniques to reduce the feature space dimensionality and to generate graphical representation from instances similarities. As a result, one can visualize, analyze and understand each step of OPF classifier: generation of the minimum-spanning tree, prototypes choosing, computation of optimum-path trees, and test samples classification. The experiments show that our approach is useful to understand how the prototypes are chosen, to identify what are the best prototypes, to visualize how the training dataset size influences the OPF performance, to analyze how a weak feature space can impact the OPF performance, and to identify some insights about OPF classifier as a whole.
    A execucao de experimentos na area de Engenharia de Software consome tempo e produz grande volume de informacao e conhecimento tornando o gerenciamento um tanto complicado. Para tal questao, e importante que se tenha uma estrutura... more
    A execucao de experimentos na area de Engenharia de Software consome tempo e produz grande volume de informacao e conhecimento tornando o gerenciamento um tanto complicado. Para tal questao, e importante que se tenha uma estrutura computacional capaz de apoiar a execucao de experimentos. Alem disso, o uso de uma ontologia ajuda a descrever formalmente os conceitos que compoem um experimento. Neste artigo e apresentada uma ferramenta computacional que registra os dados referentes a um experimento em um pacote de laboratorio, organizado e mantido usando uma ontologia para conciliar conceitos e para facilitar o reuso e o compartilhamento de tais pacotes.
    Text mining is an important step to categorize textual data by using data mining techniques. As most obtained textual data is unstructured, it needs to be processed before applying mining algorithms – that process is known as... more
    Text mining is an important step to categorize textual data by using data mining techniques. As most obtained textual data is unstructured, it needs to be processed before applying mining algorithms – that process is known as pre-processing step in overall text mining process. Pre-processing step has important impact on mining. This paper aims at providing detailed analysis of the document pre-processing when employing multidimensional projection techniques to generate graphical representations of vector space models, which are computed from eight combinations of three steps: stemming, term weighting and term elimination based on low frequency cut. Experiments were made to show that the visual approach is useful to perceive the processing effects on document similarities and group formation (i.e., cohesion and separation). Additionally, quality measures were computed from graphical representations and compared with classification rates of a k-Nearest Neighbor and Naive Bayes classif...
    Traditionally, students learn about software testing during intermediate or advanced computing courses. However, it is widely advocated that testing should be addressed beginning in introductory programming courses. In this context,... more
    Traditionally, students learn about software testing during intermediate or advanced computing courses. However, it is widely advocated that testing should be addressed beginning in introductory programming courses. In this context, testing practices can help students think more critically while working on programming assignments. At the same time, students can develop testing skills throughout the computing curriculum. Considering this scenario, we conducted a systematic mapping of the literature about software testing in introductory programming courses, resulting in 293 selected papers. We mapped the papers to categories with respect to their investigated topic (curriculum, teaching methods, programming assignments, programming process, tools, program/test quality, concept understanding, and students' perceptions and behaviors) and evaluation method (literature review, exploratory study, descriptive/persuasive study, survey, qualitative study, experimental and experience report). We also identified the benefits and drawbacks of this teaching approach, as pointed out in the selected papers. The goal is to provide an overview of research performed in the area, highlighting gaps that should be further investigated.

    And 39 more