As part of curriculum changes in South Africa, an introductory programming language, Scratch, must first be taught before switching to the well-established teaching of Delphi. The nature of programming in Scratch is c...
详细信息
As part of curriculum changes in South Africa, an introductory programming language, Scratch, must first be taught before switching to the well-established teaching of Delphi. The nature of programming in Scratch is considerably different from that in Delphi. It was assumed that the teaching of Scratch as introductory programming language could support learners’ understanding of Delphi. Teachers did not receive much training in Scratch. This study explores teachers’ experiences of their first year of the teaching of Scratch. The purpose of the research was to understand how Scratch can be used effectively as a transitioning language to Delphi and to deduce guidelines for teaching Scratch as introduction to object-oriented programming in Delphi. A qualitative research method, within the interpretive paradigm, was selected for this research. Interviews were done with eight randomly selected Information Technology (IT) teachers in the province of North-West, South Africa to gain insight into their experiences of teaching Scratch in 2012, the first year of implementing the new curriculum. Findings show that teachers were uncertain how to teach programming concepts and how to integrate problem solving and algorithm design into teaching Scratch. The focus of teaching was on Scratch, instead of on teaching programming concepts with Scratch. Emerging guidelines emphasise the integration of problem solving and algorithm design; the creation of opportunities to expose learners to error handling and program testing; and the inculcatation of programming concepts. We furthermore recommend active teaching-learning strategies such as pair programming.
Java is arguably today’s most popular and widely used object-oriented programming language. Learning Java is a daunting task for students, and teaching it is a challenging undertaking for instructors. To assess stude...
详细信息
Java is arguably today’s most popular and widely used object-oriented programming language. Learning Java is a daunting task for students, and teaching it is a challenging undertaking for instructors. To assess students’ object-oriented programming skills with Java, we developed the “Department-Employee” project. In this article, we review the history of object-oriented programming, provide an overview of object-oriented programming with Java, and present a summary of existing Java projects and their limitations. We also provide the project specifications as well as the course background, grading rubric, and score reports. Survey data are presented on students’ backgrounds, as well as students’ perceptions regarding the project. Results from the instructor score reports, correlation of the project score and the final course score, and student perceptions show that the “Department-Employee” project is effective in assessing students’ object-oriented programming skills with Java.
The majority of contemporary mainstream object-oriented (OO) software is written using nominally-typed OO programming languages. Extant domain-theoretic models of OOP developed to analyze OO type systems miss crucial ...
详细信息
The majority of contemporary mainstream object-oriented (OO) software is written using nominally-typed OO programming languages. Extant domain-theoretic models of OOP developed to analyze OO type systems miss crucial features of these mainstream OO languages, such as nominality. This paper summarizes the construction of NOOP as a domain-theoretic model of OOP that includes nominal information found in nominally-typed mainstream OO software. Inclusion of nominal type information and asserting that type inheritance in statically-typed OO programming languages is an inherently nominal notion allow readily proving that inheritance and subtyping are completely identified in these languages. This conclusion is in full agreement with intuitions of OO developers using these languages, and contrary to the belief that "inheritance is not subtyping", which came from assuming non-nominal structural models of OO type systems. NOOP, thus, provides a firmer semantic foundation for analyzing and progressing nominallytyped mainstream OO programming languages.
The aim of this position paper is to draw a quick overview of the main contributions in abstract interpretation of object-oriented programs, and to draw possible lines of research in this field.
The aim of this position paper is to draw a quick overview of the main contributions in abstract interpretation of object-oriented programs, and to draw possible lines of research in this field.
Students' understanding of object-oriented (OO) program execution was studied by asking students to draw a picture of a program state at a specific moment. Students were given minimal instructions on what to inclu...
详细信息
Students' understanding of object-oriented (OO) program execution was studied by asking students to draw a picture of a program state at a specific moment. Students were given minimal instructions on what to include in their drawings in order to see what they considered to be central concepts and relationships in program execution. Three drawing tasks were given at different phases of an elementary OO programming course where two animation tools were used for program visualization. The drawings were analyzed for their overall approaches and their detailed *** was a large variability in the overall approaches and the popularity of various approaches changed during the course. The results indicate that students' mental representations of OO concepts and program execution not only grow as new material is covered in teaching, but they also change. The first drawings treat methods as having primarily a static existence; later methods are seen as dynamic invocations that call each other. The role of classes in program execution fluctuates during learning, indicating problems in locating the notion of class with respect to, for example, objects. Two major sources of problems that manifested in many different forms were the relationship between object and method, and the role of the main method with respect to program state. Other problems were caused by overly simplistic understanding of object identification and improper use of application domain knowledge.
object-oriented design and development methods promise to guide designers and to reduce development costs. The DIRECT activity at the Fachhochschule Wiesbaden carefully odopts die object Management Group (OMG) Common ...
详细信息
object-oriented design and development methods promise to guide designers and to reduce development costs. The DIRECT activity at the Fachhochschule Wiesbaden carefully odopts die object Management Group (OMG) Common object Request Broker Architecture (CORBA) standard for the development of distributed real-time control applications. The testbed is an automated laboratory for analyzing environmental samples. The laboratory consists of a set of interconnected intelligent laboratory modules and robots.
This paper presents a graph-based formalism for object-oriented class structure specifications. The formalism combines labelled graphs with partial orders, to adequately model the (single) inheritance relation among o...
详细信息
This paper presents a graph-based formalism for object-oriented class structure specifications. The formalism combines labelled graphs with partial orders, to adequately model the (single) inheritance relation among objects and the overriding relation between methods within derived classes. The semantics of system extension by inheritance and aggregation is then defined as colimits in a suitable category of object-oriented system specifications and their morphisms.
The research described in this article reports the results of a study designed to evaluate the relationship among object-oriented (OO) computer programming task performance and a student's (1) theoretical value be...
详细信息
The research described in this article reports the results of a study designed to evaluate the relationship among object-oriented (OO) computer programming task performance and a student's (1) theoretical value belief, (2) cognitive ability, and (3) personality. The results of this study do not support the assertion that cognitive ability is a main determinant of performance. Rather, the findings suggest that characteristics of an individual nature have more effect on a student's performance. This supports our belief advanced herein that theoretical value belief and personality are significant predictors of computer programming performance in OO environments. From the findings of this study, we assert that academicians who must teach OO computer programming consider these factors when developing course materials or student assistance programs.
Recently, the notion of having programming languages and computational systems that allow their programs to reason about themselves and reflect on their computations has attracted the attention of many researchers. Th...
详细信息
Recently, the notion of having programming languages and computational systems that allow their programs to reason about themselves and reflect on their computations has attracted the attention of many researchers. These systems, called "Reflective Systems", promise many advantages over conventional systems. For example, dynamic program stepping, execution tracing, and code analysis and modification at run time are few of the reflective operations that can be easily implemented in reflective systems. Reflectivity of programming languages allows the language users to extend the language to support other programming paradigms. Reflective systems can also play an important role in programming solutions for non-conventional domains. Artificial intelligence applications, particularly learning systems, benefit from the reflectivity of a programming language. A learning system must be able to modify itself at run time to incorporate its learned behaviors. The goal of this article is to define reflection and its components, introduce the appropriate terminology, and present briefly some reflective applications in object-oriented systems.
The aim of this study is to model launch vehicles with focus on 3-DOF trajectory optimization using a modular approach. Despite the large number of operational launch vehicles, they usually consist of basic components...
详细信息
The aim of this study is to model launch vehicles with focus on 3-DOF trajectory optimization using a modular approach. Despite the large number of operational launch vehicles, they usually consist of basic components and subsystems. In other words, a launch vehicle is an assembly of stages, which in turn is divided into propellant system and engine, and the engine is an assembly of basic components such as pumps, turbines, combustion chamber, and nozzle. To allow future extension and reuse of the codes, a modular structure using object-oriented programming is used. Two formulations of state equations of the trajectory and two optimization methods are described. The launch vehicle performance will be measured by payload mass for a given mission. The simulations of the VLS-1, Ariane 5 and VLS-Alfa were performed and showed good agreement with the literature.
暂无评论