English
Related papers

Related papers: More Programming Than Programming: Teaching Formal…

200 papers

Software engineers have significant expertise to offer when building intelligent systems, drawing on decades of experience and methods for building systems that are scalable, responsive and robust, even when built on unreliable components.…

Software Engineering · Computer Science 2020-01-22 Christian Kästner , Eunsuk Kang

While recent progress in quantum hardware open the door for significant speedup in certain key areas (cryptography, biology, chemistry, optimization, machine learning, etc), quantum algorithms are still hard to implement right, and the…

Programming Languages · Computer Science 2022-04-11 Christophe Chareton , Sébastien Bardin , Dongho Lee , Benoît Valiron , Renaud Vilmart , Zhaowei Xu

Software engineering concepts and processes are worthy of formal study; and yet we seldom formalize them. This "research ideas" article explores what a theory of software engineering could and should look like. Software engineering research…

Software Engineering · Computer Science 2025-02-25 Bertrand Meyer

As the landscape of software engineering evolves, introductory programming courses must go beyond teaching syntax to foster comprehensive technical competencies and professional soft skills. This paper reports on a pedagogical experience in…

Computers and Society · Computer Science 2026-03-20 Santiago Berrezueta-Guzman , Vanesa Metaj , Stefan Wagner

Software model checking has experienced significant progress in the last two decades, however, one of its major bottlenecks for practical applications remains its scalability and adaptability. Here, we describe an approach to integrate…

Software Engineering · Computer Science 2019-07-19 Felipe R. Monteiro , Mikhail R. Gadelha , Lucas C. Cordeiro

Computer programs do not always work as expected. In fact, ominous warnings about the desperate state of the software industry continue to be released with almost ritualistic regularity. In this paper, we look at the 60 years history of…

Programming Languages · Computer Science 2017-04-03 Tomas Petricek

Software Engineering as an industry is highly diverse in terms of development methods and practices. Practitioners employ a myriad of methods and tend to further tailor them by e.g. omitting some practices or rules. This diversity in…

Software Engineering · Computer Science 2018-09-25 Kai-Kristian Kemell , Anh Nguyen-Duc , Xiaofeng Wang , Juhanki Risku , Pekka Abrahamsson

Software modernization is an inherent activity of software engineering, as technology advances and systems inevitably become outdated. The term "software modernization" emerged as a research topic in the early 2000s, with a differentiation…

Software Engineering · Computer Science 2024-07-08 Wesley K. G. Assunção , Luciano Marchezan , Alexander Egyed , Rudolf Ramler

Refinement is one of the cornerstones of a formal approach to software engineering: the process of developing a more detailed design or implementation from an abstract specification through a sequence of mathematically-based steps that…

Software Engineering · Computer Science 2011-06-20 John Derrick , Eerke Boiten , Steve Reeves

Formal software verification techniques are widely used to specify and prove the functional correctness of programs. However, nonfunctional properties such as time complexity are usually carried out with pen and paper. Inefficient code in…

Software Engineering · Computer Science 2021-08-09 Shiri Morshtein , Ran Ettinger , Shmuel Tyszberowicz

Emin G\"un Sirer once said: It's clear that writing a robust, secure smart contract requires extreme amounts of diligence. It's more similar to writing code for a nuclear power reactor, than to writing loose web code [...] Yet the current…

Software Engineering · Computer Science 2019-08-05 Gustavo Betarte , Maximiliano Cristiá , Carlos Luna , Adrián Silveira , Dante Zanarini

Background: In this paper, we present our initial efforts to integrate formal methods, with a focus on model-checking specifications written in Temporal Logic of Actions (TLA+), into computer science education, targeting undergraduate…

Software Engineering · Computer Science 2024-08-20 Konstantin Läufer , Gunda Mertin , George K. Thiruvathukal

As software becomes more complex and assumes an even greater role in our lives, formal verification is set to become the gold standard in securing software systems into the future, since it can guarantee the absence of errors and entire…

Human-Computer Interaction · Computer Science 2021-11-17 Carolina Carreira , João F. Ferreira , Alexandra Mendes , Nicolas Christin

Technology organizations continuously invest in professional development, but face difficulties in transferring learning to project practice. This exploratory qualitative study investigates which improvements software engineering…

Software Engineering · Computer Science 2026-03-17 Rodrigo Siqueira , Danilo Monteiro Ribeiro

Testing has become an indispensable activity of software development, yet writing good and relevant tests remains a quite challenging task. One well-known problem is that it often is impossible or unrealistic to test for every outcome, as…

Programming Languages · Computer Science 2017-08-18 Dimitri Racordon , Didier Buchs

Reasoning about safety, security, and other dependability attributes of autonomous systems is a challenge that needs to be addressed before the adoption of such systems in day-to-day life. Formal methods is a class of methods that…

Artificial Intelligence · Computer Science 2023-11-17 Ashfaq Farooqui , Behrooz Sangchoolie

Transformation approaches for automatically constructing analysis models from textual requirements are critical to software development, as they can bring forward the use of precise formal languages from the coding phase to the requirement…

Software Engineering · Computer Science 2024-08-13 Keletso J. Letsholo

Context: Advancements in machine learning (ML) lead to a shift from the traditional view of software development, where algorithms are hard-coded by humans, to ML systems materialized through learning from data. Therefore, we need to…

Software Engineering · Computer Science 2021-06-16 Görkem Giray

Programming is about automation in a wide variety of domains. Developing itself is one of those. As a side-effect, progress in automated coding may make people less willing to learn computer programming. This could become an issue, if the…

Programming Languages · Computer Science 2026-05-01 Attila Egri-Nagy

Often software engineering classes have the student concentrate on designing and planning the project but stop short of actual student team development of code. This leads to criticism by employers of new graduates that they are missing…

Software Engineering · Computer Science 2025-02-05 Allan Brockenbrough