976 resultados para Introdouctory Programming, Tutoring, Feedback, eLearning, Program Annotations
Resumo:
The present article describes the challenges programming apprentices face and identifies the elements and processes that set them apart from experienced programmers. And also explains why a conventional programming languages teaching approach fails to map the programming mental model. The purpose of this discussion is to benefit from ideas and cognitive philosophies to be embedded in programming learning tools. Cognitive components are modeled as elements to be handled by the apprentices in tutoring systems while performing a programming task. In this process a mental level solution (the mental model of the program) and an implementation level solution (the program) are created. The mapping between these representations is a path followed by the student explicitly in this approach. © 2011 IEEE.
Resumo:
This paper presents an online C compiler designed so that students can program their practical assignments in Programming courses. What is really innovative is the self-assessment of the exercises based on black-box tests and train students’ skill to test software. Moreover, this tool lets instructors, not only proposing and classifying practical exercises, but also evaluating automatically the efforts dedicated and the results obtained by the students. The system has been applied to the 1st-year students at the Industrial Engineering specialization at the Universidad Politecnica de Madrid. Results show that the students obtained better academic performance, reducing the failure rate in the practical exam considerably with respect to previous years, in addition that an anonymous survey proved that students are satisfied with the system because they get instant feedback about their programs.
Resumo:
Mode of access: Internet.
Resumo:
"Report no. 370-3."
Resumo:
Mode of access: Internet.
Resumo:
The 2011 National Student Survey (NSS) revealed that 40% of full-time students in England did not think that the feedback on their work has been helpful, even though 66% of these students agreed that the feedback was detailed and 62% of them agreed that the feedback has been prompt. Detailed feedback that is not considered helpful by students means a waste of tutors' time while students continue to struggle with their learning. What do students consider as helpful feedback? What are the qualities of helpful feedback? What are the preferred forms of feedback? How should tutors write feedback so that students will find it helpful? Can ICT help to improve the quality of feedback? In our ongoing search for answers to the above questions, we have trialled the use of a novel Internet application, called eCAF, to assess programming coursework from Engineering, Mathematics and Computing students and have collected their views on the feedback received through a survey. The survey reveals that most students prefer electronic feedback as given through eCAF, with verbal feedback ranked second and hand-written feedback ranked even lower. The survey also indicates that the feedback from some tutors is considered more helpful than others. We report on the detailed findings of the survey. By comparing the kinds of feedback given by each tutor who took part in the trial, we explore ways to improve the helpfulness of feedback on programming coursework in a bid to promote learning amongst engineering students.
Resumo:
The 2011 National Student Survey (NSS) revealed that 40% of full-time students in England do not think that the feedback on their work has been helpful, even though 66% of these students agreed that the feedback was detailed and 62% of them agreed that the feedback has been prompt. Detailed feedback that is not considered helpful by students means a waste of tutors' time while students continue to struggle with their learning. What do students consider as helpful feedback? What are the qualities of helpful feedback? What are the preferred forms of feedback? How should tutors write feedback so that students will find it helpful? Can ICT help to improve the quality of feedback? In our ongoing search for answers to the above questions, we have trialled the use of a novel online application (eCAF) to assess programming coursework from engineering, mathematics and computing students and, through a survey, have collected their views on the feedback received. The survey reveals that most students prefer electronic feedback as given through eCAF, with verbal feedback ranked second and hand-written feedback ranked even lower. The survey also indicates that the feedback from some tutors is considered more helpful than others. We report on the detailed findings of the survey. By comparing the kinds of feedback given by each tutor who took part in the trial, we explore ways to improve the helpfulness of feedback on programming coursework in a bid to promote learning amongst engineering students.
Resumo:
If we classify variables in a program into various security levels, then a secure information flow analysis aims to verify statically that information in a program can flow only in ways consistent with the specified security levels. One well-studied approach is to formulate the rules of the secure information flow analysis as a type system. A major trend of recent research focuses on how to accommodate various sophisticated modern language features. However, this approach often leads to overly complicated and restrictive type systems, making them unfit for practical use. Also, problems essential to practical use, such as type inference and error reporting, have received little attention. This dissertation identified and solved major theoretical and practical hurdles to the application of secure information flow. ^ We adopted a minimalist approach to designing our language to ensure a simple lenient type system. We started out with a small simple imperative language and only added features that we deemed most important for practical use. One language feature we addressed is arrays. Due to the various leaking channels associated with array operations, arrays have received complicated and restrictive typing rules in other secure languages. We presented a novel approach for lenient array operations, which lead to simple and lenient typing of arrays. ^ Type inference is necessary because usually a user is only concerned with the security types for input/output variables of a program and would like to have all types for auxiliary variables inferred automatically. We presented a type inference algorithm B and proved its soundness and completeness. Moreover, algorithm B stays close to the program and the type system and therefore facilitates informative error reporting that is generated in a cascading fashion. Algorithm B and error reporting have been implemented and tested. ^ Lastly, we presented a novel framework for developing applications that ensure user information privacy. In this framework, core computations are defined as code modules that involve input/output data from multiple parties. Incrementally, secure flow policies are refined based on feedback from the type checking/inference. Core computations only interact with code modules from involved parties through well-defined interfaces. All code modules are digitally signed to ensure their authenticity and integrity. ^
Resumo:
Communication skills change with age as a result of sensory deficits, memory loss, and increasing word finding difficulties The Keep on Talking program (L. Hickson, H. Barnett, L. Worrall, & E. Yiu, 1994) was developed to assist older people to develop their own strategies for maintaining communication skills into old age. Two hundred and fifty-two healthy older people were recruited from the community and were assessed on a battery of communication assessments on entry to the study and at 1 year after entry. The experimental group (n = 120) participated in the 5-week group Keep on Talking program run by volunteers A further 130 control subjects were assessed only. The short-term effectiveness of the program was evaluated using a short knowledge based and attitudinal questionnaire and qualitative written feedback. At the I-year follow up, subjects were also asked whether they had taken any action as a result of the project. Results concluded that there was a significant difference between the number of correct questionnaire responses on the knowledge based items and the ratings on the attitudinal items pre- and postprogram questionnaire for the experimental subjects. Qualitative written feedback was positive with many participants remarking on the amount of information that they had acquired. Forty-eight experimental and 69 control subjects (n = 117) were assessed I year later, and there was a significant difference between the groups in terms of the number of subjects who reported having taken action as a result of the program. The Keep on Talking program increased knowledge about communication, produced a positive change in attitude toward the importance of communication, and encouraged participants to take action to maintain their communication skills. Maintaining communication skills may prevent social isolation. This simple 5-hour group program has been effective in empowering participants to maintain. their communication skills as they age.
Resumo:
Map algebra is a data model and simple functional notation to study the distribution and patterns of spatial phenomena. It uses a uniform representation of space as discrete grids, which are organized into layers. This paper discusses extensions to map algebra to handle neighborhood operations with a new data type called a template. Templates provide general windowing operations on grids to enable spatial models for cellular automata, mathematical morphology, and local spatial statistics. A programming language for map algebra that incorporates templates and special processing constructs is described. The programming language is called MapScript. Example program scripts are presented to perform diverse and interesting neighborhood analysis for descriptive, model-based and processed-based analysis.
Resumo:
Program compilation can be formally defined as a sequence of equivalence-preserving transformations, or refinements, from high-level language programs to assembler code, Recent models also incorporate timing properties, but the resulting formalisms are intimidatingly complex. Here we take advantage of a new, simple model of real-time refinement, based on predicate transformer semantics, to present a straightforward compilation formalism that incorporates real-time constraints. (C) 2002 Elsevier Science B.V. All rights reserved.
Resumo:
Program slicing is a well known family of techniques used to identify code fragments which depend on or are depended upon specific program entities. They are particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, usually oriented towards the imperative or object paradigms, are based on some sort of graph structure representing program dependencies. Slicing techniques amount, therefore, to (sophisticated) graph transversal algorithms. This paper proposes a completely different approach to the slicing problem for functional programs. Instead of extracting program information to build an underlying dependencies’ structure, we resort to standard program calculation strategies, based on the so-called Bird-Meertens formalism. The slicing criterion is specified either as a projection or a hiding function which, once composed with the original program, leads to the identification of the intended slice. Going through a number of examples, the paper suggests this approach may be an interesting, even if not completely general, alternative to slicing functional programs
Resumo:
Mathematical Program with Complementarity Constraints (MPCC) finds applica- tion in many fields. As the complementarity constraints fail the standard Linear In- dependence Constraint Qualification (LICQ) or the Mangasarian-Fromovitz constraint qualification (MFCQ), at any feasible point, the nonlinear programming theory may not be directly applied to MPCC. However, the MPCC can be reformulated as NLP problem and solved by nonlinear programming techniques. One of them, the Inexact Restoration (IR) approach, performs two independent phases in each iteration - the feasibility and the optimality phases. This work presents two versions of an IR algorithm to solve MPCC. In the feasibility phase two strategies were implemented, depending on the constraints features. One gives more importance to the complementarity constraints, while the other considers the priority of equality and inequality constraints neglecting the complementarity ones. The optimality phase uses the same approach for both algorithm versions. The algorithms were implemented in MATLAB and the test problems are from MACMPEC collection.
Resumo:
In recent years several countries have set up policies that allow exchange of kidneys between two or more incompatible patient–donor pairs. These policies lead to what is commonly known as kidney exchange programs. The underlying optimization problems can be formulated as integer programming models. Previously proposed models for kidney exchange programs have exponential numbers of constraints or variables, which makes them fairly difficult to solve when the problem size is large. In this work we propose two compact formulations for the problem, explain how these formulations can be adapted to address some problem variants, and provide results on the dominance of some models over others. Finally we present a systematic comparison between our models and two previously proposed ones via thorough computational analysis. Results show that compact formulations have advantages over non-compact ones when the problem size is large.
Resumo:
Wireless Sensor Networks (WSN) are being used for a number of applications involving infrastructure monitoring, building energy monitoring and industrial sensing. The difficulty of programming individual sensor nodes and the associated overhead have encouraged researchers to design macro-programming systems which can help program the network as a whole or as a combination of subnets. Most of the current macro-programming schemes do not support multiple users seamlessly deploying diverse applications on the same shared sensor network. As WSNs are becoming more common, it is important to provide such support, since it enables higher-level optimizations such as code reuse, energy savings, and traffic reduction. In this paper, we propose a macro-programming framework called Nano-CF, which, in addition to supporting in-network programming, allows multiple applications written by different programmers to be executed simultaneously on a sensor networking infrastructure. This framework enables the use of a common sensing infrastructure for a number of applications without the users having to worrying about the applications already deployed on the network. The framework also supports timing constraints and resource reservations using the Nano-RK operating system. Nano- CF is efficient at improving WSN performance by (a) combining multiple user programs, (b) aggregating packets for data delivery, and (c) satisfying timing and energy specifications using Rate- Harmonized Scheduling. Using representative applications, we demonstrate that Nano-CF achieves 90% reduction in Source Lines-of-Code (SLoC) and 50% energy savings from aggregated data delivery.