This research discusses the use of a gamified web platform for studying software modeling with Unified Modeling Language (UML). Although UML is constantly being improved and studied, many works show that there is difficulty in teaching and learning the subject, due to the complexity of its concepts and the students' cognitive difficulties with abstraction. There are challenges for instructors to find different pedagogical strategies to teach modeling. The platform proposed allowed students to complement their UML knowledge in an environment with game elements. From the results, it can be concluded that the platform obtained great acceptance and satisfaction of use. Most of the students participating in the research were satisfied with the usability of the platform, reporting a feeling of contribution of the tool to studying the content, in addition to pointing out the satisfaction of using gamification as a pedagogical strategy.
Scrum is a widely-used framework in industry, so many schools apply it to their software engineering courses, particularly capstone courses. Due to the differences between students and industrial professionals, changing Scrum is necessary to fit capstone projects. In this paper, we suggest a decision-making process to assist instructors in developing a strategy to adapt Scrum for their course. This framework considers critical differences, such as student’s workloads and course schedules, and keeps the Agile principles and Scrum events. To evaluate the adapted Scrum, we investigated student’s learning experiences, satisfaction, and performance by quantitatively analyzing user story points and source codes and qualitatively studying instructor’s evaluations, student’s feedback, and Sprint Retrospective notes. Our two case studies about adapted Scrum showed that having daily stand-up meetings in every class was not helpful, student’s satisfaction positively correlated to the difficulty of the task they tackled, and the project provided good learning experiences.
Computer science students often evaluate the behavior of the code they write by running it on specific inputs and studying the outputs, and then apply their comprehension to a more general understanding of the code. While this is a good starting point in the student’s career, successful graduates must be able to reason analytically about the code they create or encounter. They must be able to reason about the behavior of the code on arbitrary inputs, without running the code. Abstraction is central for such reasoning.
In our quest to help students learn to reason abstractly and develop logically correct code, we have developed tools that rely on a verification engine. Code involves assignment, conditional, and loop statements, along with objects and operations. Reasoning activities involve symbolic reasoning with simple assertions and design-by-contract assertions such as pre-and post-conditions as well as loop invariants with data abstractions. Students progress from tracing and reading code to the design and implementation of code, all relying on abstraction for verification. This paper reports some key results and findings from associated studies spanning several years.
Interfaces with good usability help their users complete more tasks in less time and with less effort, which gives them greater satisfaction. Given the vast array of options available to users today, usability is an important interface feature that may lead to the commercial success or failure of a software system. Despite its importance, few educational tools are available to help usability teachers and students. Knowing how to measure interface usability is one of the basic concepts that students should learn when they study the theme. This paper presents UsabilityZero, a web application to support the teaching of usability concepts to undergraduate students. By using UsabilityZero, students interact with a system displaying a reduced usability interface and, later, with the same system exhibiting an increased usability interface. Considering the use of UsabilityZero by 64 students, the differences between the interface with reduced and increased usability were: (i) 61.5% decrease in the number of clicks; (ii) 62.2% decrease in the time to perform tasks; (iii) 92.9% effectiveness increase; and (iv) a 277.3% satisfaction increase. During their experience with UsabilityZero, students learn how to measure efficiency, effectiveness, and satisfaction of user interfaces. After using the application, Information Systems and Computer Science students who had never been in touch with the subject could identify key usability aspects. The students’ perception of efficiency, effectiveness, and satisfaction as usability measures was higher than 80%. Also, they could identify some usability criteria and understand how measurements change when some of them are present in the interface design. As a result, over 92% of these students said they recognized the importance of usability to the quality of a software product, and 79% declared that their experience with the application would contribute to their professional lives.
Diverse initiatives have emerged to popularize the teaching of computing in K-12 mainly through programming. This, however, may not cover other important core computing competencies, such as Software Engineering (SE). Thus, in order to obtain an overview of the state of the art and practice of teaching SE competences in K-12, we carried out a systematic mapping study. We identified 17 instructional units mostly adopting the waterfall model or agile methodologies focusing on the main phases of the software process. However, there seems to be a lack of details hindering large-scope adoption of these instructional units. Many articles also do not report how the units have been developed and/or evaluated. However, results demonstrating both the viability and the positive contribution of initiating SE education already in K-12, indicate a need for further research in order to improve computing education in schools contributing to the popularization of SE competencies.