Papers by Virginia Niculescu

2020 IEEE Frontiers in Education Conference (FIE), 2020
This Research to Practice Full Paper delineates the impact of using cyclic learning to obtain com... more This Research to Practice Full Paper delineates the impact of using cyclic learning to obtain competences in software quality oriented design.Nowadays, the need for quality in the software systems has become more and more a concern for many researchers and industry practitioners. Developing students’ appropriate competencies and skills in writing quality programs must be an important objective of any Software Engineering related course from the Computer Science Curricula. In order to attain this goal, the paper presents a new strategy for reflecting software quality models into Software Engineering related courses based on cyclic learning. The method is based on an educational strategy that integrates the cyclic learning approach and induces to the students the awareness regarding the importance of developing quality software. We focus on a set of software quality characteristics described by the ISO25010 quality model for which we analyze the level of knowledge attained by the stud...

Decorator design pattern is a very well-known pattern that allows additional functionality to be ... more Decorator design pattern is a very well-known pattern that allows additional functionality to be attached to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. MixDecorator is an enhanced variant of the Decorator, which does not just eliminate some constraints of the original one, but also allows it to be used as a base for a general extension mechanism. This pattern introduces significant flexibility by allowing direct access to all added responsibilities. MixDecorator implementation imposes some constraints and we analyze and compare the implementation solutions in two of the most important mainstream object-oriented languages: Java and C#. This also leads to a comparison analysis between C# extension methods and Java default methods, or virtual extension methods as they are also called, in a more general context of trait-based programming.

International Journal of Parallel Programming
The HLPP series of workshops/symposia, started in 2001, is a forum for researchers developing sta... more The HLPP series of workshops/symposia, started in 2001, is a forum for researchers developing state-of-the-art concepts, tools, and applications for high-level parallel programming. The general emphasis is on software quality, programming productivity and high-level performance models. After a rigorous peer-review process in two stages performed by the HLPP-2021 program committee members and additional reviewers (in a first stage for presentation at the HLPP-2021 symposium and in a second stage for inclusion in the special issue), revised versions of 5 of the papers presented at HLPP-2021 have been accepted for publication in this special issue. HLPP welcomes papers related to topics ranging from the design and implementation of high-level programming languages, libraries, and frameworks to the design and analysis of algorithms for structured models of parallelism. The former theme is usually more represented in both submissions and accepted papers. HLPP 2021 is no exception: four of the five papers are related to programming libraries and APIs, and one proposes an algorithm for the MapReduce model. A popular paradigm in the HLPP series, is skeletal parallelism. Algorithmic skeletons can be seen as higher-order functions implemented in parallel, and possibly manipulating distributed data structures. More generally skeletal parallelism encompasses languages, libraries and frameworks that offer reusable and composable patterns of parallel algorithms. The paper by August Ernstsson, Nicolas Vandenbergen, Jörg Keller, Christoph Kessler proposes an extension to the algorithmic skeleton library SkePU. In scientific applications, pseudo-random number generators are often part of computations.

Proceedings of the 14th International Conference on Agents and Artificial Intelligence, 2022
The purpose of this work is to study the possible approaches to build a recommendation system tha... more The purpose of this work is to study the possible approaches to build a recommendation system that could help students in organizing their work and improving their results. More specifically, we intend to predict grades of a student for future exams, based on his/her previous results and the past grades received by all students from the same series/group. We have tried several machine learning methods for predicting future student grades, and finally we obtained good results, namely a mean absolute prediction error smaller than 1. The best variant proved to be the one based on neural networks that leads to a mean absolute prediction error smaller than 0.5. These results show the practical applicability of our proposed methodology, and consequently, we built, based on these, a practical recommendation system available to students as a web application.

2020 International Conference on Software, Telecommunications and Computer Networks (SoftCOM), 2020
We present a routing solution for multihoming sites that maximizes the throughput of local flows.... more We present a routing solution for multihoming sites that maximizes the throughput of local flows. We consider the problem of transferring data between two multihomed network sites (i.e. network sites that have two or more uplinks to the Internet). Our routing solution is deployed at the edges of both multihomed sites and routes local flows dynamically through several outgoing network paths/links depending on the load (i.e. congestion level) on each path. If the load on a network path increases, fewer local flows are routed through it. We measure the load on a network path using passive RTT measurements. We performed a significant number of experiments in order to show that our multihoming solution performs better than an ECMP-based (i.e. Equal-Cost Multipath) solution in terms of total aggregated throughput and inter-flow fairness.
2017 18th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT), 2017
Parallel programs based on the Divide&Conquer paradigm could be successfully defined in a simple ... more Parallel programs based on the Divide&Conquer paradigm could be successfully defined in a simple way using powerlists. These parallel recursive data structures and their algebraic theories offer both a methodology to design parallel algorithms and parallel programming abstractions to ease the development of parallel applications. The paper presents how programs based on powerlists can be implemented in Java using the JPLF framework we developed. The design of this framework is based on powerlists theory, but in the same time follows the object-oriented design principles that provide flexibility and maintainability. Examples are given and performance experiments are conducted. The results emphasise the utility and the efficiency of the framework.

Communications in Computer and Information Science, 2021
Since parallel programming is much more complex and difficult than sequential programming, it is ... more Since parallel programming is much more complex and difficult than sequential programming, it is more challenging to achieve the same software quality in a parallel context. High-level parallel programming models, if implemented as software frameworks, could increase productivity and reliability. Important requirements such as extensibility and adaptability for different platforms are required for such a framework, and this paper reflects on these requirements and their relation to the software engineering methodologies that could put them in practice. All these are exemplified on a Java framework-JPLF; this is a high-level parallel programming approach being based on the model brought by the PowerLists associated theories, and it respects the analysed requirements. The design of JPLF is analysed by explaining the design choices and highlighting the design patterns and design principles applied.

2020 IEEE Symposium on Computers and Communications (ISCC), 2020
We introduce in this paper a bandwidth aggregation routing solution for multihoming sites. Our ro... more We introduce in this paper a bandwidth aggregation routing solution for multihoming sites. Our routing solution interconnects two distinct multihomed network sites (i.e. network sites that have two or more uplinks to the Internet) and routes local flows between these two network sites. It routes local flows dynamically through several outgoing network paths/links depending on the load (i.e. congestion level) on each path. If a network path/uplink becomes more congested, fewer local flows are routed through it. We detail two path load estimation strategies: one based on RTT measurements and the other based on throughput measurements, both implying passive network measurements. Our multihoming solution outperforms the ECMP-based (i.e. Equal-Cost Multipath) solution in terms of total aggregated throughput and inter-flow fairness.

In this paper, we present an analysis of the outcomes of teaching Parallel and Distributed Comput... more In this paper, we present an analysis of the outcomes of teaching Parallel and Distributed Computing within the Faculty of Mathematics and Computer Science from Babeş-Bolyai University of ClujNapoca. The analysis considers the level of interest of the students for different topics as being determinant in achieving the learning outcomes. Our experiences have been greatly influenced by the specific context defined by the fact the majority of the students are already enrolled into a software company either as an intern in an internship program or as an employee. The study emphasises that the level of interest of the students for a specific topic is determined by the context of the IT industry development in the region. The learning activity is in general influenced by this specific context, and a new, high demanding topic as Parallel and Distributed Computing is even much more influenced, when is to be taught to the undergraduate level. This analysis further leads to a more general ana...

2020 International Conference on Software, Telecommunications and Computer Networks (SoftCOM), 2020
Clickbait is a bad habit of today’s web publishers, which resort to such a technique in order to ... more Clickbait is a bad habit of today’s web publishers, which resort to such a technique in order to deceive web visitors and increase publishers’ page views and advertising revenue. Clickbait incidence is also an indicator for fake news and so, clickbait detection represents a mean in the fight against spreading false information. Recently, both the research community and the big actors on the WWW scene such as social networks and search engines, turn their attention towards this negative phenomenon that is more and more present in our everyday browsing experience. The detection techniques are usually based on intelligent classifiers, features selection being also of great importance. This paper aims to bring its own contributions in clickbait analysis and detection by presenting a new language independent strategy for clickbait detection that considers only general features that are non language specific. This approach is justified by the need for a higher level of abstractization in ...

ArXiv, 2020
Decorator design pattern is a well known pattern that allows dynamical attachment of additional f... more Decorator design pattern is a well known pattern that allows dynamical attachment of additional functionality to an object. Decorators have been proposed as flexible alternative to subclassing for extending functionality. Still, the Decorator pattern has certain limitations, especially related to the fact that in its classical form it is constrained to a single interface, which is implicitly defined by the type of the concrete components that we intend to decorate. Another problem associated to the Decorator pattern is related to the linear composition of the decorations, which could lead to problems in accessing the newly added responsibilities. In this context, the paper presents variants of the Decorator pattern: MixDecorator and D2Decorator, and a variant specific only to C++ language based on templates - HybridDecorator. MixDecorator could be considered a new enhanced version of the Decorator pattern that eliminates some constraints of the Decorator pattern, but also it could b...
Proceedings of the 3rd International Workshop on Education through Advanced Software Engineering and Artificial Intelligence, 2021
Agile methodologies have been recently proposed to be used in education. In this paper, we propos... more Agile methodologies have been recently proposed to be used in education. In this paper, we propose a rephrasing of the 12 Agile principles for learning context, and we provide concrete applicationoriented interpretations for them. Additionally, a practical agile learning methodology is proposed to offer a framework where these principles could be applied. The principles together with the proposed methodology were applied to a concrete use case which is described and the resulting impact is analysed. CCS CONCEPTS • Applied computing → Collaborative learning; • Computing methodologies → Parallel computing methodologies; • Software and its engineering → Agile software development.

For parallel programs correctness by construction is an essential feature since debugging is almo... more For parallel programs correctness by construction is an essential feature since debugging is almost impossible. To build correct programs by constructions is not a simple task, and usually the methodologies used for this purpose are rather theoretical based on a pen-and-paper style. A better approach could be based on tools and theories that allow a user to develop an efficient parallel application by implementing easily simple programs satisfying conditions, ideally automatically, proved. PowerLists theory and the variants represent a good theoretical base for an approach like this, and Coq proof assistant is a tool that could be used for automatic proofs. The goal of this paper is to model the PowerList theory in Coq, and to use this modelling to program and reason on parallel programs in Coq. This represents the first step in building a framework that ease the development of correct and verifiable parallel programs.

2014 16th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, 2014
Tools and methods able to simplify the development process of parallel software, but also to assu... more Tools and methods able to simplify the development process of parallel software, but also to assure a high level of performance and robustness, are necessary. Powerlists and their variants are data structures that can be successfully used in a simple, provably correct, functional description of parallel programs, which are divide-and-conquer in nature. The paper presents how programs defined based on powerlists could be implemented in the functional language OCaml plus calls to the parallel functional programming library Bulk Synchronous Parallel ML. BSML functions follow the BSP model requirements, and so its advantages are introduced in OCaml parallel code. In order to write powerlist programs in BSML we provide a datatype for powerlists and a set of skeletons (higher-order functions implemented in parallel) to manipulate them. Examples are given and concrete experiments for their executions are conducted.
P owerList, P arList, and P List theories and their multidimensional extensions P owerArray, P ar... more P owerList, P arList, and P List theories and their multidimensional extensions P owerArray, P arArray, and P Array are well suited to express recursive, data-parallel algorithms. Their abstractness is very high and assures simple and correct design of parallel programs. Base on these theories we define a model of parallel computation with a very high level of abstraction-PARES (Parallel Recursive Structures). A model of parallel computation, to be useful must address the following set of requirements: abstractness, software development methodology, architecture independence, cost measures, no preferred scale of granularity, efficiently implementable. We show in this paper that all these requirements are fulfilled for the proposed model.
Proceedings of the 2nd ACM SIGSOFT International Workshop on Education through Advanced Software Engineering and Artificial Intelligence, 2020

Proceedings of the 15th International Conference on Evaluation of Novel Approaches to Software Engineering
Parallel programming is more complex than sequential programming. It is therefore more difficult ... more Parallel programming is more complex than sequential programming. It is therefore more difficult to achieve the same software quality in a parallel context. High-level parallel programming approaches are intermediate approaches where users are offered simplified APIs. There is a trade-off between expressivity and programming productivity, while still offering good performance. By being less error-prone, high-level approaches can improve application quality. From the API user point of view, such approaches should provide ease of programming without hindering performance. From the API implementor point of view, such approaches should be portable across parallel paradigms and extensible. JPLF is a framework for the Java language based on the theory of Powerlists, which are parallel recursive data structures. It is a high-level parallel programming approach that possesses the qualities mentioned above. This paper reflects on the design of JPLF: it explains the design choices and highlights the design patterns and design principles applied to build JPLF.

Journal of communications software and systems, 2020
This paper details an extension of a Java parallel programming framework – JPLF. The JPLF framewo... more This paper details an extension of a Java parallel programming framework – JPLF. The JPLF framework is a programming framework that helps programmers build parallel programs using existing building blocks. The framework is based on {\em PowerLists} and PList Theories and it naturally supports multi-way Divide and Conquer. By using this framework, the programmer is exempted from dealing with all the complexities of writing parallel programs from scratch. This extension to the JPLF framework adds PLists support to the framework and so, it enlarges the applicability of the framework to a larger set of parallel solvable problems. Using this extension, we may apply more flexible data division strategies. In addition, the length of the input lists no longer has to be a power of two – as required by the PowerLists theory. In this paper we unveil new applications that emphasize the new class of computations that can be executed within the JPLF framework. We also give a detailed description ...

Algorithms, 2022
A general crossword grid generation is considered an NP-complete problem and theoretically it cou... more A general crossword grid generation is considered an NP-complete problem and theoretically it could be a good candidate to be used by cryptography algorithms. In this article, we propose a new algorithm for generating perfect crosswords grids (with no black boxes) that relies on using tries data structures, which are very important for reducing the time for finding the solutions, and offers good opportunity for parallelisation, too. The algorithm uses a special tries representation and it is very efficient, but through parallelisation the performance is improved to a level that allows the solution to be obtained extremely fast. The experiments were conducted using a dictionary of almost 700,000 words, and the solutions were obtained using the parallelised version with an execution time in the order of minutes. We demonstrate here that finding a perfect crossword grid could be solved faster than has been estimated before, if we use tries as supporting data structures together with pa...

Multi-way Divide and Conquer Parallel Programming based on PLists
2019 International Conference on Software, Telecommunications and Computer Networks (SoftCOM), 2019
Divide and Conquer with all its variants represents an important paradigm of parallel programming... more Divide and Conquer with all its variants represents an important paradigm of parallel programming. In this paper we present an implementation of PLists data structures and functions, which is introduced as an extension of a Java parallel programming framework - JPLF. The JPLF framework was initially based on PowerLists and their associated theory. By using functions defined on PLists, we may easily define programs based on the multi-way Divide and Conquer paradigm. Also, their definition allows the description of any kind of embarrassingly parallel computation. By introducing PLists into the JPLF framework, its application domain is very much enlarged, and also the flexibility of choosing the best computation variants is increased. The sizes of the data lists are not constrained any more - as it is for PowerLists to a power of two - and the level of parallelism could be much easier controlled. The experiments done for several applications reveal important improvements of the obtaine...
Uploads
Papers by Virginia Niculescu