Skip to main content

2020 | Buch

Frontiers in Software Engineering Education

First International Workshop, FISEE 2019, Villebrumier, France, November 11–13, 2019, Invited Papers

herausgegeben von: Jean-Michel Bruel, Alfredo Capozucca, Prof. Manuel Mazzara, Bertrand Meyer, Alexandr Naumchev, Andrey Sadovykh

Verlag: Springer International Publishing

Buchreihe : Lecture Notes in Computer Science

insite
SUCHEN

Über dieses Buch

This book constitutes invited papers from the First International Workshop on Frontiers in Software Engineering Education, FISEE 2019, which took place during November 11-13, 2019, at the Château de Villebrumier, France.

The 25 papers included in this volume were considerably enhanced after the conference and during two different peer-review phases. The contributions cover a wide range of problems in teaching software engineering and are organized in the following sections: Course experience; lessons learnt; curriculum and course design; competitions and workshops; empirical studies, tools and automation; globalization of education; and learning by doing. The final part "TOOLS Workshop: Artificial and Natural Tools (ANT)" contains submissions presented at a different, but related, workshop run at Innopolis University (Russia) in the context of the TOOLS 2019 conference.

FISEE 2019 is part of a series of scientific events held at the new LASER center in Villebrumier near Montauban and Toulouse, France.

Inhaltsverzeichnis

Frontmatter

Course Experience

Frontmatter
Teaching Formal Methods: An Experience Report
Abstract
The general attitude of students towards formal specification and verification of systems is not exactly what one could call enthusiastic. Generally, software engineering courses at universities include an introduction to specification with formal notations such as Z, Alloy, UML, etc. However, it seems that the importance of formal specification to replicate expected system behavior does not sink in as it should with the students. Moreover, other products of computer science (e.g., machine learning algorithms, robot systems deployment), rather than software, benefit from formal specification as well. This paper is a general report of our observations on teaching formal methods on undergraduate and graduate levels at Politecnico di Milano.
Mehrnoosh Askarpour, Marcello M. Bersani
A Review of the Structure of a Course on Advanced Statistics for Data Scientists
Abstract
This paper presents a review of an innovative course on “Advanced Statistics” for a master program in data science. The prerequisites for this course include fundamental knowledge in Mathematics, Computer Science, and Economics. The expected learning outcome is centered on the ability to model empirical investigations in terms of hypotheses to prove via suitable statistical tests. The paper contains general goals, description of the content, description of the structure of each week, description of the evaluations, and overall outcomes from students of the course.
Mohammad Reza Bahrami, Sergey Masyagin, Giancarlo Succi
Reflections on Teaching Formal Methods for Software Development in Higher Education
Abstract
Despite the increasing attention to formal verification techniques by industry and academia, the programs of Higher Education to this regard still lie behind, and these concepts are not presented to the majority of Computer Science students trained to be future IT specialists. The primary reason is the presumed complexity of the concepts, tools, and formal processes together with a believed moderate interest of employers, which tends to demotivate students. The starting point of any process of change is typically higher education, which should introduce a thoughtful plan of teaching and practice for the students to get acquainted with these techniques. To do so, it is necessary to preliminary identify the obstacles. The user study described in this paper is examining AutoProof tool to identify the complexities attributed to formal methods. We worked with a cohort of master students in Software Engineering at an Information Technology University and monitored and analyzed their performance and feedback on a pedagogical experience. The work presented in this paper extends our previous research on formal methods education by confirming the findings and adding qualitative considerations to quantitative ones.
Mansur Khazeev, Hamna Aslam, Daniel de Carvalho, Manuel Mazzara, Jean-Michel Bruel, Joseph Alexander Brown
Experience of Mixed Learning Strategies in Teaching Lean Software Development to Third Year Undergraduate Students
Abstract
Teaching is always a challenging task, especially in the current fast-paced and changing world. Universities curricula and instructional practices should take into account growing and changing demands of both industry and students themselves. Given all these factors, a Lean Software Development course for third year BS has been developed and continues to evolve at Innopolis University, Russia. In the course, lean methods are used both for teaching lean software development skill, and for teaching Lean via other, not directly related to programming, collaborative tasks, i.e. writing a research paper. Besides, lean methodology is used by the course development team for course design. As a result, this approach helps not only to develop the theoretical and practical skills that students can apply in various spheres of life but also to engage the students and to maintain their attention throughout the course without any overload.
Ilya Khomyakov, Sergey Masyagin, Giancarlo Succi
Teaching Theoretical Computer Science at Innopolis University
Abstract
Innopolis is a new IT city incorporating a technopark and a university, aiming at prioritizing the development of IT and software engineering in Tatarstan and in the Russian Federation. Innopolis University (IU) is a young university pioneering several research and pedagogical projects and experiments with innovative teaching methods and curricula. This paper describes the experience of teaching a Theoretical Computer Science course at the bachelor level in a practice-oriented institution.
Manuel Mazzara

Lessons Learnt

Frontmatter
Teaching Software Testing to Industrial Practitioners Using Distance and Web-Based Learning
Abstract
Software testing is a business-critical process used by private and public organizations and an important source of market competitiveness. Employees of these organizations are facing tough competition and are required to be able to maintain and develop their skills and knowledge in software testing. In the education market, many commercial courses and certifications are available for industrial engineers who wish to improve their skills in software development. Nevertheless, there is a lack of access to world-leading research within the software testing field in these commercial courses that supports the companies’ innovation in software testing. As an alternative, universities are approaching this challenge by developing academic courses on software testing that can suit professionals who need to be able to combine work and studies. This study highlights several good approaches and challenges in developing and teaching three distance web-based software testing courses targeting test practitioners. The proposed approaches for enhancing teaching of software testing in an online setting for industrial practitioners are: active participation at the student’s pace, inclusion of software testing artifacts from the student’s organization as part of assignments, continuous access to online materials, the use of short video materials on testing theory, and setting clear expectations for performing online test design assignments. Finally, several challenges have been identified: poor feedback on assignments, distances between students and teachers, the use of non-realistic assignments and the difficulty for industrial practitioners to complete academic assignments each week. Future work is needed to explore these results in practice, for example on how to shorten distances between students and teachers, as well as how to enhance the inclusion of real-world testing artifacts in course assignments.
Eduard Paul Enoiu
Towards Code Review Guideline in a Classroom
Abstract
Software companies generally adopt code review to identify errors and suggest improvements to code, and share knowledge in the team. Companies assume a pre-knowledge on their engineers to undertake the activity. This could be difficult for freshly graduated students as in an academic environment code review is not often exercised: it is not an individual activity and requires substantial interaction among students, educators, deliverance, and acceptance of feedback, timely actions upon feedback as well as the ability to agree on a solution in the wake of diverse viewpoints. This paper proposes a guideline to code reviewing in a classroom. We report on the lessons learnt after applying the proposed guidelines to a large course in Computer Science. Students’ feedback suggests that the process has been well received with some points to be improved.
Victor Rivera, Hamna Aslam, Alexandr Naumchev, Daniel de Carvalho, Mansur Khazeev, Manuel Mazzara
IT Education in St. Petersburg State University
Abstract
For many years, the world IT industry seems to have insatiable needs for qualified IT specialists. Russian higher education produces a large number of IT graduates each year, and the global market values them highly, recruiting both remotely and onsite.
In this article we explore three success factors of the Russian IT education: thorough grounding in fundamental mathematics, adherence to international educational standards and close connections with IT industry.
Since the early 1990s, Saint Petersburg State University (SPbU) accumulated an immense experience in collaboration with IT companies on education. Moreover, SPbU has developed a set of tools for IT education purposes, providing significantly better control of student user errors, both static and dynamic. This helps controlling the quality and progress of students in the real-life tasks of IT, alongside with their academic progress.
In this article we compare the efficiency of preparing new IT specialists via joint educational programs of universities with IT companies, with the alternative of the traditional recruitment followed by additional training in the workplace.
Terekhov Andrey, Mariia Platonova
Ten Unsafe Assumptions When Teaching Topics in Software Engineering
Abstract
Software engineering is a branch of systems engineering and, to be successful, software engineering students must work in a systems-focussed manner. Instructors, including the author, routinely assume that students have the requisite skills for this or can learn them quickly. This article identifies ten common assumptions that are unsafe to make and, if made, impact negatively on the ability of a student to acquire the essential foundation on which to build their understanding of the technical aspects of software engineering. The ten unsafe assumptions are that students understand how to decompose problems, that they know that systems have to be specified at different levels of abstraction, that they know how to bridge different levels of abstraction, that they understand how software and hardware reflect these different levels, that they can follow instructions and pay attention to detail, that they can easily follow oral or written explanations, that they are able to stress test their own software, that they understand the relevance of professional practice, that they are adept at self-criticism, and they understand the relevance of examples. In each case, we identify the implications for teaching practice of not making these assumptions.
David Vernon

Curriculum and Course Design

Frontmatter
Analysing the SWECOM Standard for Designing a DevOps Education Programme
Abstract
Developing academic education programmes for software engineers is a difficult task mainly due to three main factors: (1) ever-changing information and communication technologies produced by the industry and meant for citizens living in digital disruptions age, (2) lack of official or de-facto standards for the software engineering domain, (3) slow pace of the standardisation bodies and of the academia for deploying standard competence frameworks or education programmes. This applies more especially to DevOps which regroups a set of skills being the most demanded today by the job market. This paper is a first attempt to introduce a standard based development process to derive a DevOps education programme for graduate education. It is introduced as a generic process mainly based on the SWECOM standard. This process is applied to generate a proposal for a significant DevOps graduate academic programme definition in a comprehensive and, most importantly, in a skill oriented manner.
Alfredo Capozucca, Nicolas Guelfi
Teaching Logic, from a Conceptual Viewpoint
Abstract
Logic is not only of foundational importance in mathematics, it is also playing a big role in software engineering and formal verification. Its different roles influence its teaching, which has to take into consideration the recent developments in category theory and proof theory. We show that teaching set theory from a categorical viewpoint, in contrast with Zermelo-Fraenkel axioms, helps develop proper skills that are essential in mathematics and software engineering. The use of a proof assistant provides students with another perspective on both subjects: basic category theory and proof theory.
Daniel de Carvalho, Nikolai Kudasov
On the Design of a New Software Engineering Curriculum in Computer Engineering
Abstract
The Department of Engineering at Aarhus University has started up a new science-based BSc degree in Computer Engineering. We report about our planning of the curriculum during the first two years in the Software Engineering area. We discuss highlights, basic concepts, selected course contents, inter and intra course progression, observations from the first two semesters taught, and our expectations concerning the learning objectives and outcomes of the curriculum as a whole.
Stefan Hallerstede, Peter Gorm Larsen, Jalil Boudjadar, Carl Peter Leslie Schultz, Lukas Esterle
Collaborative Modelling and Co-simulation in Engineering and Computing Curricula
Abstract
The successful development of Cyber-Physical Systems (CPSs) requires collaborative working across diverse engineering disciplines, notations and tools. However, classical computing curricula rarely provide opportunities for students to look beyond the confines of one set of methods. In this paper, we report approaches to raising students’ awareness of the integrative role of digital technology in future systems development. Building on research in open but integrated tool chains for CPS engineering, we consider how this has been realised in two degree programmes in Denmark and the UK, and give preliminary findings. These include the need for ensuring stability of research-quality tools, and observations on how this material is presented in Computing versus Engineering curricula.
Peter Gorm Larsen, Hugo Daniel Macedo, Claudio Goncalves Gomes, Lukas Esterle, Casper Thule, John Fitzgerald, Kenneth Pierce

Competitions and Workshops

Frontmatter
Designing Interactive Workshops for Software Engineering Educators
Abstract
Given the rapid pace of changes in the software industry, software engineering educators face the challenge of keeping up with emerging trends and technology and incorporating them into the classroom. Among other tools at their disposal, educators leverage software engineering education workshops to share knowledge and experiences, and hence further their own education. Unfortunately, information available to educators on how to run and organize these workshops is scarce. This paper is an attempt to fill the gap by sharing lessons learned. It is based on the authors’ experience designing, facilitating, and participating in such workshops, an interview with a workshop organizer, and an exploration of software engineering education workshop websites. The paper documents the current state of software engineering education workshops, identifies workshop design challenges—including interactivity of the format—and proposes solutions to address the challenges.
Cécile Péraire, Hakan Erdogmus, Dora Dzvonyar
Hackathons as a Part of Software Engineering Education: CASE in Tools Example
Abstract
Software engineering programs intend to connect with industry practices to provide the most relevant up to date knowledge to the students. Students tend to pay more attention and attach more credibility to the academic knowledge when they see the endorsement of the program by the industry. For various reasons, faculty members find it difficult to connect to the industry, while as we noted those relations are essential both for education and research. Companies, while generally keen for recruitment of fresh graduates, may experience difficulty to convey their needs in terms of required capabilities and to influence education programs. We address these issues by introducing a hackathon as a part of the software engineering program curriculum and proposing a particular setup of this event. Incorporating educational hackathons into software engineering programs will ensure a connection between academic educational programs and current industrial practice.
Andrey Sadovykh, Maria Beketova, Mansur Khazeev
Teaching Efficient Recursive Programming and Recursion Elimination Using Olympiads and Contests Problems
Abstract
Olympiads and contests are popular with bachelor students of Software Engineering, Computer Science and other departments educating professionals to be involved software development. But educational role and potential of these activities are under-evaluated and poorly used in the education. In the present paper we address one particular topic that can be introduced using problems from Olympiads and Contests, namely — efficient recursive programming and recursion elimination. Here we understand efficient recursive programming as problem solving with recursive algorithm design. Recursion elimination studies how to construct (functional) equivalent iterative (imperative) program for a given recursive (functional) preferably with use of fix-size static memory. Great computer scientists have contributed to the recursion elimination studies — John McCarthy, Amir Pnueli, Donald Knuth, etc., many fascinating examples have been examined and resulted in recursion elimination techniques known as tail-recursion and as corecursion. We base our study on examples borrowed from the worlds of Mathematical Olympiads and Programming contests. At the same time we use these examples to stress importance of the recursion elimination studies not only for better education but for better and more efficient program specification, verification, optimization and compiler design.
Nikolay V. Shilov, Danila Danko

Empirical Studies

Frontmatter
An Experience in Monitoring EEG Signals of Software Developers During Summer Student Internships
Abstract
Given the emerging importance of individual biophysical data for understanding software development activities, an internship was organized to provide the students with first hand experience on the collection of such data. The specific goal of the internship was to offer students the possibility to collect, analyse, understand, and draw conclusions from EEG signals. The overall internship spanned about 3 months and involved about 17 students. The results have been very positive in terms of the specific knowledge gained by each student and also of the value of the collected data. In this paper we detail the structure of the internship, the tasks carried out, the challenges faced, and how such challenges have been overcome.
Rozaliya Amirova, Vladimir Ivanov, Sergey Masyagin, Aldo Spallone, Giancarlo Succi, Ananga Thapaliya, Oydinoy Zufarova
A Study of Cooperative Thinking
Abstract
Computational Thinking is a competence in computational problem solving. Cooperative Thinking (CooT) is an enhancement of Computational Thinking, supporting team-based computational problem solving. CooT is actually grounded on both Computational Thinking (CT) and Agile Values (AV) competencies, which focus respectively on the individual capability to think in a computational-oriented way (CT), and on the social dimension of software development (AV). However, CooT is not just the sum of CT and AV, rather it is a new overarching competence suitable to deal with complex software engineering problems. Previous papers focused on the conceptualization and the validation of Cooperative Thinking. We now analyze in depth the characteristics and consequences of this construct, with respect to the level of seniority and coding experience. Consequently, we run a Multi–Group Analysis of a representative stratified sample of High–School students, University students, and practitioners, through a Structural Equation Modeling technique. Our goal is to identify if there is a significant difference among groups with respect to the CooT model. Results show that seniority is a significant factor, suggesting as beneficial an early exposure of students to Cooperative Thinking practices.
Paolo Ciancarini, Marcello Missiroli, Daniel Russo

Tools and Automation

Frontmatter
Analysis of Development Tool Usage in Software Engineering Classes
Abstract
In this paper, the survey, dedicated to the usage of software systems in a software development process, is analysed. The survey was conducted among the students of Innopolis University. Based on the result of the survey, the following conclusions were made: (1) Windows, macOS and Linux-based operating systems have almost equal share of usage among future software developers (2) the most popular IDE is IntelliJ IDEA, however, to the end of the studying process students the diversity of IDEs usage increases (3) the mostly used code management system by far is Github, with almost 100% share (4) Trello and Jira are the most popular project management software for lightweight and complex industrial projects respectively. The obtained results will be used for the prioritization of the development of integration agents for InnoMetrics project, as well as for the adaptation of a studying process in academic institutions to make it more relevant to the given trends and for the market analysis of software engineering environment.
Shokhista Ergasheva, Vladimir Ivanov, Artem Kruglov, Andrey Sadovykh, Giancarlo Succi, Evgeny Zouev
Applying Test-Driven Development for Improved Feedback and Automation of Grading in Academic Courses on Software Development
Abstract
Grading student assignments and projects in software development courses is a time-consuming task. The lecturer has to download individually each assignment, compile it and manually check that the implementation satisfies the requirements. In addition, the students would like to get early feedback on their solutions, not only as guidelines on whether their solution meets the expectations of the lecturers, but also a way to estimate the current number of points their solution deserves. In this work, we propose the use of the test-driven development process as an approach to both guide the students during the implementation of their projects and as a way to speed up and make the grading process more scalable. Furthermore, we show how we take advantage of community-based software development tools such as GitHub to support our approach. We evaluate the proposed approach by applying it to an academic course for developing web applications. The results show that the approach reduces the grading effort by 60% and that the early feedback it provides was appreciated by students.
Dragos Truscan, Tanwir Ahmad, Cuong Huy Tran

Globalization of Education

Frontmatter
Internationalization Strategy of Innopolis University
Abstract
Since the establishment of Innopolis University, there was an emphasis placed on the importance of internationalization and international cooperation for its further development, especially in terms of teaching in the English language only, recruiting staff from different cultures and regions of the world, enrollment of students from different countries and educational systems, as well as developing study abroad and joint teaching and research initiatives. Being an English-speaking university in a non-English-speaking country, Innopolis University and its International Relations Office, in particular, as it is responsible for the internationalization strategy of Innopolis University, managed to achieve what might be considered as a significant degree of its internationalization. This paper describes the course of actions taken by Innopolis University towards its internationalization, the strategy adopted and the instruments applied. The definition of internationalization, in general, is briefly discussed and it is suggested that the strategy of internationalization has to be individually considered by every higher education institution as the term is relatively broad. The instruments are described as they were applied by Innopolis University and as they were applied at the time of writing this paper and therefore, there might be certain limitations if adopted.
Iouri Kotorov, Yuliya Krasylnykova, Petr Zhdanov, Manuel Mazzara
Finding the Right Understanding: Twenty-First Century University, Globalization and Internationalization
Abstract
The “idea of a university” has been a subject of contested discussions for over a century. There is a significant number of different views on what it means to be a university of the twenty-first century as well as on its purpose and primary functions. Today, universities as any other organization experience transformations forced by the current trends, including globalization. As a result, twenty-first century universities have to come up with the strategies and tools such as internationalization strategy that could help them to utilize the advantages that the twenty-first century brings and to minimize the temporary influences of today that could undermine the essence of the “idea of a university”. The aim of this paper is to discover the concept of a university in the twenty-first century, the impact of the ever growing globalization and the role of institutional internationalization in today’s world. Exploring the interconnected nature of a twenty-first century university, globalization and internationalization this paper seeks to report a neglected aspect of the understanding of the “idea of a university”, especially by such university community as professional staff. An implication of this paper is the possibility to popularize the “idea of a university” in order to promote a contribution to its development by communities other than academics and students.
Iouri Kotorov, Yuliya Krasylnykova, Petr Zhdanov, Manuel Mazzara

Tools Workshop: Artificial and Natural Tools (ANT)

Frontmatter
Automated Cross-Language Integration Based on Formal Model of Components
Abstract
The paper presents the research aimed at development of a new method for integration of software components written in different languages, which allows omitting glue code manual writing. The necessity to write additional project-specific linking logic requires that programmers have at least good knowledge of two languages. Therefore, it is rather difficult to reuse well-tested libraries and other software components written in other languages in spite of the benefits, which they can offer. The paper analyzes advantages and disadvantages of the previously developed methods and tools intended for linking software components. The proposed method is based on the RPC approach, augmented with the LibSL language, previously created by the authors of the research that is designed to describe the software components external interface. The description of the external interface allows generating all the glue code automatically.
Based on the offered method, the tool that supports C, Java, Kotlin, Go, and JavaScript was developed. Applicability and efficiency of the proposed solution was tested by creation of the LibSL descriptions and stubs generation for a set of real-world libraries, such as a Z3 SMT solver.
Artyom Aleksyuk, Vladimir Itsykson
Scalable Thread-Modular Approach for Data Race Detection
Abstract
Most of the state-of-the-art verifiers do not scale well on complicated software. Concurrency benchmarks from SV-COMP based on Linux device drivers cause significant difficulties for any software model checker tool.
We suggest a method, which is based on the Thread-Modular approach and Configurable Program Analysis theory. It overapproximates a potential thread iteration by a “worst case” assumption, that the threads may change the shared data in any way. The suggestion allows to avoid construction of a precise thread environment and simplifies the analysis.
For data race detection we use an extension of the Lockset algorithm based on compatibility of partial states. A BnB memory model allows to deal with complicated data structures without a precise alias analysis.
The approach was evaluated on benchmarks set, based on Linux device drivers. The approach allows verifying industrial software, as it was shown on the Linux drivers benchmarks. Predicate abstraction keeps false alarms rate on a reasonable level.
Pavel Andrianov, Vadim Mutilin
On the Development of the Compiler from C to the Processor with FPGA Accelerator
Abstract
This work describes the further development of the compiler project for CPU with FPGA-accelerator. This compiler is based on the Optimizing Parallelizing System (OPS) of the Southern Federal University. There is a structure of the considered compiler briefly described in the article. Some specific parts of OPS internal representation for pipelines and automats to control pipelines are described in more detail. Examples of programs that are compiled by an experimental compiler are given, as well as high-level program transformations of OPS that can be used in this compiler.
Anton Baglij, Elena Metelitsa, Yury Mikhailuts, Ruslan Ibragimov, Boris Steinberg, Oleg Steinberg
Backmatter
Metadaten
Titel
Frontiers in Software Engineering Education
herausgegeben von
Jean-Michel Bruel
Alfredo Capozucca
Prof. Manuel Mazzara
Bertrand Meyer
Alexandr Naumchev
Andrey Sadovykh
Copyright-Jahr
2020
Electronic ISBN
978-3-030-57663-9
Print ISBN
978-3-030-57662-2
DOI
https://doi.org/10.1007/978-3-030-57663-9