programming languages are constantly evolving to simplify real-world problems and provide unique features. However, this often leads to the need for developers to learn and use different languages for different tasks,...
详细信息
Students are expected to move from one programming language (PL) to another in their computer science education. Recent work has proposed a model of PL transfer to explain how students transfer conceptual knowledge be...
详细信息
ISBN:
(纸本)9781450388498
Students are expected to move from one programming language (PL) to another in their computer science education. Recent work has proposed a model of PL transfer to explain how students transfer conceptual knowledge between languages. This model suggests that during the transition, learners automatically effect a transfer of semantics between languages based on syntax similarities. The semantic transfer can be positive for learning when the syntax and semantics of the new PL are similar to the prior PL (True Carryover Constructs) and becomes negative when the syntax of the prior PL is similar to the new PL but the semantics are different (False Carryover Constructs). To avoid negative semantic transfer during learning, this study aims to investigate the effectiveness of explicit instruction in teaching a second PL by conducting two empirical studies. Study 1 was a within-subject study that investigated undergraduate students transitioning from procedural Python to object-oriented Java. Study 2 was a between-subject study that investigated undergraduate students transitioning from object-oriented Python to object-oriented Java at a different university. The results of both studies show that students benefited significantly more on interventions on the False Carryover Constructs categories than the True Carryover Constructs. These findings can help teachers interpret and improve their own classroom practices when teaching second PLs.
The intricate syntax of conventional programming languages often acts as a formidable barrier for newcomers, diverting attention from fundamental concepts of logic and problem-solving. This research paper delves deep ...
详细信息
The past decade has seen unprecedented growth in Software Engineering— developers spend enormous time and effort to create new products. With such enormous growth comes the responsibility of producing and maintaining...
详细信息
ISBN:
(纸本)9798400700644
The past decade has seen unprecedented growth in Software Engineering— developers spend enormous time and effort to create new products. With such enormous growth comes the responsibility of producing and maintaining quality and robust software. However, developing such software is non-trivial— 50% of software developers’ valuable time is wasted on finding and fixing bugs, costing the global economy around USD$1.1 trillion. Today, I will discuss how AI can help in different stages of the software development life cycle for developing quality products. In particular, I will talk about programming language Processing (PLP), an emerging research field that can model different aspects of code (source, binary, execution, etc.) to automate diverse Software Engineering tasks, including code generation, bug finding, security analysis, etc.
Katahdin is a programming language where the syntax and semantics are mu- table at runtime. The Katahdin interpreter parses and executes programs ac- cording to a language denition that can be modied by the running pr...
详细信息
Katahdin is a programming language where the syntax and semantics are mu- table at runtime. The Katahdin interpreter parses and executes programs ac- cording to a language denition that can be modied by the running program. Commands to modify the language denition are similar to those that dene new types and functions in other languages, and can be collected into lan- guage denition modules. Katahdin can execute programs written in any language which it has a deni- tion module for. The denition of more than one language can be composed allowing more than one language to be used in the same program, the same le, and even the same function. Data and code is shared between all lan- guages, with a function dened in one language callable from another with no binding layer. Traditional language development involves using a parser generator tool to generate a static parser from the language grammar. Katahdin s approach is to just-in-time compile a parser from the grammar as the program runs. The grammar can be modied as the program runs because the parser can be recompiled to match it. Recent research into grammar theory with parsing expression grammars and parser theory with packrat parsers provided the basis for the techniques used in Katahdin and will be referenced in this thesis along with an introduction to my additions. Katahdin is intended as a language independent interpreter and a develop- ment platform that can replace traditional static parser generators for lan- guage development. With further development Katahdin should be useable as a drop in replacement for interpreters and compilers for a wide range of languages, and as a platform for development of new languages. Using a single runtime to execute any programming language will reduce de- velopment costs to businesses. For any combination of languages used in a system, only a single runtime has to be maintained, ported between platforms and supported. The ability to use multiple languages in the same program
BPL is an interactive language which is derived from the languages BASIC and Pascal. It was designed as a two-tier language to cater for beginners as well as ad vanced programmers. The lower level is very similar to B...
详细信息
A design for a function-descriptive programming language is described. The language is based upon a software design model which uses the process of abstraction and successive refinement in problem solving. The resulti...
详细信息
A design for a function-descriptive programming language is described. The language is based upon a software design model which uses the process of abstraction and successive refinement in problem solving. The resulting programming language provides mechanisms and structures conducive to language extension, ease of program development and enhancement of software reliability. A system's library expands the capability of the base language to satisfy the needs of a user or user group. The user, therefore, does not need to carry the burden of those features of the language which he does not use. Because of its potentially small size, the translator or compiler of the base language may be feasibly implemented on microcomputer developmental systems.
The paper presents the purpose of learning programming language is to master the method of learning the language, rather than just master the language itself. Therefore,the cultivation of Computational Thinking is an ...
详细信息
The paper presents the purpose of learning programming language is to master the method of learning the language, rather than just master the language itself. Therefore,the cultivation of Computational Thinking is an important goal of language learning. After analyzing the teaching of programming languages in university, this paper put forward the Problem-Based Learning is beneficial to achieve this *** teaching process, Collaborative Learning and Grouping Learning can improve teaching effectiveness. A new method,which is to carry out these ideas and organize Problem-Based Learning and Grouping Learning, is given after reconstructing the teaching contents. The result of reform reveals that students' test scores have been greatly improved, the quality and quantity of the completed design work are greatly improved, the number of programming competition awards also increased *** order to make computing thinking deeply rooted, this method may be extended to other important computer basic courses.
Cross-linked mass spectrometry has been gaining popularity lately as a relatively cheap and versatile method for providing macromolecular structural data. However, the software required for matching the ion fragments...
详细信息
Cross-linked mass spectrometry has been gaining popularity lately as a relatively cheap and versatile method for providing macromolecular structural data. However, the software required for matching the ion fragments produced during the mass spectrometry experiments presents a scaling issue that can lead to very long run times. The problem is that matching the spectra present in the mass spectrometry data requires a database search. A full database search is O(n2) in the number of entries in the database. Reducing the number of entries in the database can lead to inaccurate results. It is desirable to be able to perform a full database search as quickly as possible so that the database search is not such a bottleneck for these types of experiments. Many applications exist for performing the spectra matching required for cross-linked mass spectrometry experiments. However, none of these applications is ready for a high-performance computing environment. It is desirable to provide a proteomics search software package that can be executed on a cluster of computers. This project approaches this problem by converting an open-source proteomics search package from C# to C++, which is a more appropriate language for high-performance computing applications. As the program selected for this project is very large, this project only details the conversion of certain aspects of it. These aspects include file input and output functionality, unit test functionality, and providing functions and classes that exist in C# but are missing in C++. The converted functions and classes were evaluated using unit tests and execution time benchmarks. The unit tests were used to determine the correctness of the converted code, while the benchmarks were used to make a comparison between the original C# execution time and the converted C++ execution time.
This paper presents a brief outline of the Mobidget programming language, which is designed for mobile and distributed computation. An agent, which is an abstraction of a process and a protection domain, can migrate e...
详细信息
This paper presents a brief outline of the Mobidget programming language, which is designed for mobile and distributed computation. An agent, which is an abstraction of a process and a protection domain, can migrate either in whole or in part, to different nodes in the network during execution. Objects in an agent may be distributed to several nodes in the network, and even if their exact location is unknown, they can be accessed from the other parts of the agent located on different nodes, Other features, such as inter-agent communication and base-specific method invocation, are also described.
暂无评论