Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by HASLab

2021

Soteria: Privacy-Preserving Machine Learning for Apache Spark

Authors
Brito, C; Ferreira, P; Portela, B; Oliveira, R; Paulo, J;

Publication
IACR Cryptol. ePrint Arch.

Abstract

2021

Rosy: An elegant language to teach the pure reactive nature of robot programming

Authors
Pacheco, H; Macedo, N;

Publication
International Journal of Robotic Computing

Abstract
Robotics is very appealing and is long recognized as a great way to teach programming, while drawing inspiring connections to other branches of engineering and science such as maths, physics or electronics. Although this symbiotic relationship between robotics and programming is perceived as largely beneficial, educational approaches often feel the need to hide the underlying complexity of the robotic system, but as a result fail to transmit the reactive essence of robot programming to the roboticists and programmers of the future. This paper presents Rosy, a novel language for teaching novice programmers through robotics. Its functional style is both familiar with a high-school algebra background and a materialization of the inherent reactive nature of robotic programming. Working at a higher-level of abstraction also teaches valuable design principles of decomposition of robotics software into collections of interacting controllers. Despite its simplicity, Rosy is completely valid Haskell code compatible with the ROS~ecosystem. We make a convincing case for our language by demonstrating how non-trivial applications can be expressed with ease and clarity, exposing its sound functional programming foundations, and developing a web-enabled robot programming environment.

2021

Refactoring Java Monoliths into Executable Microservice-Based Applications

Authors
Freitas, F; Ferreira, A; Cunha, J;

Publication
SBLP'21: 25th Brazilian Symposium on Programming Languages, Joinville, Brazil, 27 September 2021 - 1 October 2021

Abstract
In the last few years we have been seeing a drastic change in the way software is developed. Large-scale software projects are being assembled by a flexible composition of many (small) components possibly written in different programming languages and deployed anywhere in the cloud - the so-called microservice-based applications. The dramatic growth in popularity of microservice-based applications has pushed several companies to apply major refactorings to their software systems. However, this is a challenging task that may take several months or even years. We propose a methodology to automatically evolve a Java monolithic application into a microservice-based one. Our methodology receives the Java code and a proposition of microservices and refactors the original classes to make each microservice independent. Our methodology creates an API for each method call to classes that are in other services. The database entities are also refactored to be included in the corresponding service. The initial evaluation shows that our tool can successfully refactor 80% of the applications tested. © 2021 ACM.

2021

IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2021, St Louis, MO, USA, October 10-13, 2021

Authors
Harms, KJ; Cunha, J; Oney, S; Kelleher, C;

Publication
VL/HCC

Abstract

2021

Linear Programming Meets Block-based Languages

Authors
da Giao, H; Cunha, J; Pereira, R;

Publication
2021 IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING (VL/HCC 2021)

Abstract
Linear programming is a mathematical optimization technique used in numerous fields including mathematics, economics, and computer science, with numerous industrial contexts, including solving optimization problems such as planning routes, allocating resources, and creating schedules. As a result of its wide breadth of applications, a considerable amount of its user base is lacking in terms of programming knowledge and experience and thus often resorts to using graphical software such as Microsoft Excel. However, despite its popularity amongst less technical users, the methodologies used by these tools are often ad-hoc and prone to errors. To counteract this problem we propose creating a block-based language that allows users to create linear programming models using data contained inside spreadsheets. This language will guide the users to write syntactically and semantically correct programs and thus aid them in a way that current languages do not.

2021

Telephone-based psychological crisis intervention: the Portuguese experience with COVID-19

Authors
Ribeiro, E; Sampaio, A; Goncalves, MM; Taveira, MD; Cunha, J; Maia, A; Matos, M; Goncalves, S; Figueiredo, B; Freire, T; Soares, T;

Publication
COUNSELLING PSYCHOLOGY QUARTERLY

Abstract
Portugal is one of the European countries that implemented early protective measures in the context of the COVID-19 pandemic. Portugal declared a state of emergency on 18 March, and a set of regional and national preventive public health measures was progressively implemented. Studies on the psychological impact of pandemics show evidence of the negative impact on mental health. Of particular concern are individuals with previous fragility (e.g. personal, family or occupational) and those undergoing life transitions. In this paper, we present a telephone-based psychological crisis intervention that was implemented to provide brief, appropriate, and timely psychological help. This intervention follows standard models of crisis intervention and is structured in five phases and five different intervention modules to take into account the impact of the pandemic on the mental health of specific risk groups. With these support services, we hope to help our community better cope with the immediate impact of the pandemic and to contribute to preventing serious mental health problems in the medium and long term.

  • 42
  • 247