12,321 research outputs found
Roles and responsibilities in agile ICT for development
This paper examines the different roles in designing interactive software in a ICT for development context.
Using experiences from a participatory action research project, in which we used agile methods to design and
deploy an system to support ‘agricultural information flow’ for a co-operative of small farmers in rural India, we
identify points of difference between the roles in standard descriptions of agile software methods and the roles as
they emerged in our project. A key finding is the critical role played by a ‘Development Project Manager’ in
facilitating dialogue, orchestrating the activities of other actors and in building the capabilities and confidence of
all the participants in joint action
ChatGPT impacts in programming education: A recent literature overview that debates ChatGPT responses
This paper aims at a brief overview of the main impact of ChatGTP in the
scientific field of programming and learning/education in computer science. It
lists, covers and documents from the literature the major issues that have been
identified for this topic, such as applications, advantages and limitations,
ethical issues raised. Answers to the above questions were solicited from
ChatGPT itself, the responses were collected, and then the recent literature
was surveyed to determine whether or not the responses are supported. The paper
ends with a short discussion on what is expected to happen in the near future.
A future that can be extremely promising if humanity manages to have AI as a
proper ally and partner, with distinct roles and specific rules of cooperation
and interaction.Comment: 16 page
PlinyCompute: A Platform for High-Performance, Distributed, Data-Intensive Tool Development
This paper describes PlinyCompute, a system for development of
high-performance, data-intensive, distributed computing tools and libraries. In
the large, PlinyCompute presents the programmer with a very high-level,
declarative interface, relying on automatic, relational-database style
optimization to figure out how to stage distributed computations. However, in
the small, PlinyCompute presents the capable systems programmer with a
persistent object data model and API (the "PC object model") and associated
memory management system that has been designed from the ground-up for high
performance, distributed, data-intensive computing. This contrasts with most
other Big Data systems, which are constructed on top of the Java Virtual
Machine (JVM), and hence must at least partially cede performance-critical
concerns such as memory management (including layout and de/allocation) and
virtual method/function dispatch to the JVM. This hybrid approach---declarative
in the large, trusting the programmer's ability to utilize PC object model
efficiently in the small---results in a system that is ideal for the
development of reusable, data-intensive tools and libraries. Through extensive
benchmarking, we show that implementing complex objects manipulation and
non-trivial, library-style computations on top of PlinyCompute can result in a
speedup of 2x to more than 50x or more compared to equivalent implementations
on Spark.Comment: 48 pages, including references and Appendi
The role of concurrency in an evolutionary view of programming abstractions
In this paper we examine how concurrency has been embodied in mainstream
programming languages. In particular, we rely on the evolutionary talking
borrowed from biology to discuss major historical landmarks and crucial
concepts that shaped the development of programming languages. We examine the
general development process, occasionally deepening into some language, trying
to uncover evolutionary lineages related to specific programming traits. We
mainly focus on concurrency, discussing the different abstraction levels
involved in present-day concurrent programming and emphasizing the fact that
they correspond to different levels of explanation. We then comment on the role
of theoretical research on the quest for suitable programming abstractions,
recalling the importance of changing the working framework and the way of
looking every so often. This paper is not meant to be a survey of modern
mainstream programming languages: it would be very incomplete in that sense. It
aims instead at pointing out a number of remarks and connect them under an
evolutionary perspective, in order to grasp a unifying, but not simplistic,
view of the programming languages development process
Towards Communicating Agents and Avatars in Virtual Worlds
We report about ongoing research in a virtual reality environment where visitors can interact with agents that help them to obtain information, to perform certain transactions and to collaborate with them in order to get some tasks done. In addition, in a multi-user version of the system visitors can chat with each other. Our environment is a laboratory for research and for experiments with users interacting with agents in multimodal ways, referring to visualized information and making use of knowledge possessed by domain agents, but also by agents that represent other visitors of this environment. We discuss standards that are under development for designing such environments. Our environment models a local theatre in our hometown. We discuss our attempts to let this environment evolve into a theatre community where we do not only have goal-directed visitors buying tickets, but also visitors that that are not yet sure whether they want to buy or just want information or visitors who just want to look around, talk with others, etc. It is shown that we need a multi-user and multi-agent environment to realize our goals and that we need to have a unifying framework in order to be able to introduce and maintain different agents and user avatars with different abilities, including intellectual, interaction and animation abilities
- …