130 research outputs found

    Comparison of Block-Based and Hybrid-Based Environments in Transferring Programming Skills to Text-based Environments

    Get PDF
    Teachers face several challenges when presenting fundamental concepts of programming in the classroom. Several tools are introduced to give a visual dimension to support the learning process. They rely on code blocks, easily manipulated in a plug and play fashion, to build a program. These block-based tools intend to familiarize students with programming logic, before diving into text-based programming languages such as Java, Python, etc. However; when transitioning from block-based to text-based programming, students often encounter a gap in their learning. The student may not be able to apply block-based foundations in a text-based environment. To bridge the gap between both environments, we developed a hybrid-based learning approach. We found that on average a hybrid-based approach increases the students understanding of programming foundations, memorization, and ease of transition by more than 30% when compared to a block-based to text-based learning approach. Finally, we provide the community with an open source, hybrid-based learning tool that can be used by students when learning programming concepts or for future studies

    Models, Techniques, and Metrics for Managing Risk in Software Engineering

    Get PDF
    The field of Software Engineering (SE) is the study of systematic and quantifiable approaches to software development, operation, and maintenance. This thesis presents a set of scalable and easily implemented techniques for quantifying and mitigating risks associated with the SE process. The thesis comprises six papers corresponding to SE knowledge areas such as software requirements, testing, and management. The techniques for risk management are drawn from stochastic modeling and operational research. The first two papers relate to software testing and maintenance. The first paper describes and validates novel iterative-unfolding technique for filtering a set of execution traces relevant to a specific task. The second paper analyzes and validates the applicability of some entropy measures to the trace classification described in the previous paper. The techniques in these two papers can speed up problem determination of defects encountered by customers, leading to improved organizational response and thus increased customer satisfaction and to easing of resource constraints. The third and fourth papers are applicable to maintenance, overall software quality and SE management. The third paper uses Extreme Value Theory and Queuing Theory tools to derive and validate metrics based on defect rediscovery data. The metrics can aid the allocation of resources to service and maintenance teams, highlight gaps in quality assurance processes, and help assess the risk of using a given software product. The fourth paper characterizes and validates a technique for automatic selection and prioritization of a minimal set of customers for profiling. The minimal set is obtained using Binary Integer Programming and prioritized using a greedy heuristic. Profiling the resulting customer set leads to enhanced comprehension of user behaviour, leading to improved test specifications and clearer quality assurance policies, hence reducing risks associated with unsatisfactory product quality. The fifth and sixth papers pertain to software requirements. The fifth paper both models the relation between requirements and their underlying assumptions and measures the risk associated with failure of the assumptions using Boolean networks and stochastic modeling. The sixth paper models the risk associated with injection of requirements late in development cycle with the help of stochastic processes

    Multiple views of control flows as a tool to improve programmer's understanding of interactive software

    Get PDF
    International audienceMy work addresses the question of how to improve programming notations and environments used for developing interactive systems. I focus on representing the control flow in interactive programs in the hope that it will improve the programmer?s ability to understand how their programs work. My thesis is that offering programmers the ability to create and manipulate multiple ad-hoc views of the control flow is the right way to go, where current programming languages and environment each choose one particular view

    Mobile Spatial Subscriptions for Location-Aware Services

    Get PDF
    Spatial subscriptions have been used to specify locations of interest in Distributed Event-based Systems (DEBSs). However, current DEBSs representations to support spatial subscriptions are not expressive enough to describe some forms of subscriptions in mobile settings. For instance, users are not allowed to specify a spatial subscription that refers to other more well-known locations, in case they are not familiar with the names of their current locations. In addition, the middleware in existing DEBSs does not support changes at runtime, and modification to these middleware systems to support spatial subscriptions are highly coupled with specific DEBS infrastructures. In this thesis, I argue that by enhancing the expressiveness of spatial subscriptions, a new model of mobile spatial subscriptions for location-aware services can be defined and a reusable plug-in implementation approach that supports existing DEBSs can be developed. This thesis first summarizes the essential abstractions to specify mobile spatial subscriptions, and analyze the expressiveness of existing DEBSs to support these abstractions. Second, it proposes a three-level mobile spatial subscription model, which supports the essential abstractions used to specify spatial subscriptions. The first level of the model handles subscriptions consisting of geometric coordinates; the second level supports subscriptions with location labels; the third level interprets subscriptions which specify locations by stating their dynamic properties. Next, a plug-in implementation approach is introduced, and hence, the three-level model can be integrated with different DEBSs with minimal modification to the middleware. The subscription model is implemented as a subscriber/publisher component, instead of directly modifying the existing DEBS. Finally, I develop a prototype system, Dynamic Mobile Subscription System (DMSS), and illustrate the usefulness and applicability of the three-level model and the plug-in implementation approach
    • …
    corecore