We investigated implications of transparent mechanisms in the context of an introductory object-oriented programming course using Python. Here transparent mechanisms are those that reveal how the instance object in Py...
详细信息
ISBN:
(纸本)9781450344494
We investigated implications of transparent mechanisms in the context of an introductory object-oriented programming course using Python. Here transparent mechanisms are those that reveal how the instance object in Python relates to its instance data. We asked students to write a new method for a provided Python class in an attempt to answer two research questions: 1) to what extent do Python's transparent OO mechanisms lead to student difficulties? and 2) what are common pitfalls in OO programming using Python that instructors should address? Our methodology also presented the correct answer to the students and solicited their comments on their submission. We conducted a content analysis to classify errors in the student submissions. We find that most students had difficulty with the instance (self) object, either by omitting the parameter in the method definition, by failing to use the instance object when referencing attributes of the object, or both. Reference errors in general were more common than other errors, including misplaced returns and indentation errors. These issues may be connected to problems with parameter passing and using dot-notation, which we argue are prerequisites for OO development in Python.
Task-based programming Learning (TBPL) is an approach which is based on ideas of Task-based Language Learning in second language acquisition. It can use output-prompting and input-providing tasks. This paper describes...
详细信息
ISBN:
(纸本)9781467386333
Task-based programming Learning (TBPL) is an approach which is based on ideas of Task-based Language Learning in second language acquisition. It can use output-prompting and input-providing tasks. This paper describes the theoretical background and methodical aspects of the input-providing TBPL variant and its implementation in higher education courses. The approach was implemented and evaluated in five different programming courses from both students (N=165) and lecturers (N=4). It became clear that the TBPL-approach has several positive aspects and that it can serve as a valuable instrument for learning and teaching programming in higher education.
Designing and deploying programming courses is undoubtedly a challenging task. In this paper, an attempt to analyze important aspects of a sequence of two courses on imperative-procedural and object-oriented programmi...
详细信息
Designing and deploying programming courses is undoubtedly a challenging task. In this paper, an attempt to analyze important aspects of a sequence of two courses on imperative-procedural and object-oriented programming in a non-CS majors Department is made. This analysis is based on a questionnaire filled in by fifty students in a voluntary basis. The issues of the programming courses that are investigated refer to: the strategy selected for the introduction to programming;the sequence of the programming techniques and languages taught and the transition from the one to the other;students' difficulties with programming in general and with imperative-procedural and object-oriented programming in specific;the teaching and learning design of both courses;and the material that students rely on for learning programming. Based on the analysis of students' replies on the questionnaire, related work and the instructor's experience on teaching the courses, conclusions are drawn regarding all the aforementioned aspects of designing and deploying programming courses. The main contribution of the paper is the fact that all the important and interrelated aspects of a sequence of two programming courses are investigated in conjunction, providing realistic implications and guidelines for improving the quality and effectiveness of existing programming courses and designing and deploying new courses. The main results refer to the usage of a pseudo-language for an introduction to programming, the transition from procedural to object-oriented programming, the intrinsic difficulties of learning programming, and practices for a more successful teaching and learning design of programming courses.
The focus of this case study is the exploitation of visual learning analytics coupled with the provision of feedback and support provided to the students and their impact in provoking change at student programming hab...
详细信息
ISBN:
(纸本)9783319451534;9783319451527
The focus of this case study is the exploitation of visual learning analytics coupled with the provision of feedback and support provided to the students and their impact in provoking change at student programming habits. To this end, we discuss mechanisms of capturing and analysing the debugging habits and the quality of the design solutions provided by the students in the context of an object-oriented programming course. We instrumented the programming environment use by the students in order to track the student behavior and visualize metrics associated with it, while the students developed programs in Java.
Pattern matching is a common mechanism to provide analysis and transformation of data structures. Such an approach basically checks whether the containing elements of a data structure are constituents of a pattern, de...
详细信息
ISBN:
(纸本)9781450345248
Pattern matching is a common mechanism to provide analysis and transformation of data structures. Such an approach basically checks whether the containing elements of a data structure are constituents of a pattern, described by the developer. This paper is a step towards having seamless object-oriented pattern matching, which would be applicable to any object in Pharo. We present a pattern matching library, called Phorms, which enables users to compose patterns using the syntax of the Pharo programming language. In this library, patterns are objects and therefore can be inspected and debugged using existing Pharo tools. Our solution is extensible unlike The Rewrite Engine - Pharo's current pattern matching facilities. Moreover, by treating patterns as first class objects, our library provides more flexibility in the pattern matching process.
We report on two tools that extend Java with support for static type-checking of communication protocols. Our Mungo tool extends Java with typestate definitions, which allow classes to be associated with state machine...
详细信息
ISBN:
(纸本)9781450341486
We report on two tools that extend Java with support for static type-checking of communication protocols. Our Mungo tool extends Java with typestate definitions, which allow classes to be associated with state machines defining permitted sequences of method calls. A complementary tool, StMungo, takes a communication protocol specified in the Scribble protocol description language, and generates a typestate specification for each endpoint, capturing the permitted sequences of messages along that channel. Endpoint implementations can be validated by Mungo against their typestate definitions and then compiled as usual with j avac. We formalise Mungo's typestate inference system and demonstrate the Scribble, Mungo and StMungo toolchain via a typechecked SMTP client that can communicate with a real-world SMTP server.
This paper presents a novel and simple solution to Wadler's Expression Problem that works in conventional object-oriented languages. Unlike all existing solutions in Java-like languages, this new solution does not...
详细信息
ISBN:
(纸本)9781450339957
This paper presents a novel and simple solution to Wadler's Expression Problem that works in conventional object-oriented languages. Unlike all existing solutions in Java-like languages, this new solution does not use any kind of generics: it relies only on subtyping. The key to the solution is the use of covariant type refinement of return types (or fields): a simple feature available in many object-oriented languages, but not as widely known or used as it should be. We believe that our results present valuable insights for researchers and programming language designers interested in extensibility. Furthermore our results have immediate applicability as practical design patterns for improving the extensibility of programs.
In this paper we present a newly developed online learning platform which introduces gamification elements into software engineering education. Starting from assumptions based on cognitive load theory we present the d...
详细信息
ISBN:
(纸本)9781467386333
In this paper we present a newly developed online learning platform which introduces gamification elements into software engineering education. Starting from assumptions based on cognitive load theory we present the design of an online gamification-based training system to be used in software engineering contexts. Students can voluntarily solve challenges for which they may earn credits. These small problems serve as assessments;the approach follows the assessment for learning paradigm in that assessments provide formative feedback to enhance the learning experience. The combination of formative assessment and gamification is new to software engineering education. We describe system design as well as the different types of challenges in detail. We also provide several examples for actual challenges used in an object-oriented programming introduction using Java.
Professor Kristen Nygaard (1926-2002) was a multi-talented scientist whose achievements were amply honoured in his later years. For general readers of Computer Science history Nygaard will be recognized as the creator...
详细信息
ISBN:
(数字)9783642151996
ISBN:
(纸本)9783642151989
Professor Kristen Nygaard (1926-2002) was a multi-talented scientist whose achievements were amply honoured in his later years. For general readers of Computer Science history Nygaard will be recognized as the creator with Professor Ole-Johan Dahl of the SIMULA programming languages and object-oriented programming. But Nygaard also had a social and political engagement that over the years brought him from a liberal-democratic to a socialist position where solidarity and empowerment were the major chords. This paper gives a condensed descriptive tour of the life of this many-sided computer scientist with an emphasis on how the scientific and political sides of Nygaard worked hand in hand, leading to his active cooperation with the trade unions and making him a strong advocator of the Scandinavian School of System Development and Participatory Design.
Recently proposed as a general purpose numerical method, the Isogeometric Analysis (IGA) offers great perspective to bridge the gap between CAD and CAE. The IGA is closely related to the finite element method (FEM) as...
详细信息
Recently proposed as a general purpose numerical method, the Isogeometric Analysis (IGA) offers great perspective to bridge the gap between CAD and CAE. The IGA is closely related to the finite element method (FEM) as the method is based on the same variational framework. Moreover, this method has shown in many circumstances to be have a better accuracy than the FEM (large mesh distortions...). Our final aim in this work is to simulate complex multiphysics problems for elastomers industrial parts. As matter of fact, the two main numerical issues in this context is the incompressibility/quasi-incompressibility of the material and the thermochemical coupling in Galerkin formulations. First, we propose, a programming paradigm of the IGA in an existing Java object-oriented hierarchy initially designed for solving multi-fields coupled problems at finite strains. We develop an approach that fully take benefit of the original architecture to reduce developments for both FEM and IGA (one problem developed in FEM can be run in IGA and vice versa). Second, we investigate volumetric locking issues persisting for low order NURBS element observed with standard displacement formulation as finite elements. To cure the problem, we adopt two-fields mixed formulation (displacement/pressure) for the sake of simplicity and target at assessing different discretizations in stability (inf-sup condition). The basic idea is to first to increase the internal knot's multiplicity or to subdivide the patch for displacements. These ideas that are directly inspired from patches properties, have been found in the literature for the Stokes problem and extended to large strain in solid mechanics. The comparison between the two-fields mixed formulation and a strain projection method is lead at small and large strains. At last, we originally adopt a similar strategy for thermomechanical problem at small and large strains. In the context two-fields formulation, displacement/temperature, the LBB stabili
暂无评论