Good pre-trained visual representations could enable robots to learn visuomotor policy efficiently. Still, existing representations take a one-size-fits-all-tasks approach that comes with two important drawbacks: (1) ...
详细信息
This paper introduces a simple and practical approach aimed at enhancing students’ object-orientedprogramming skills with a focus on producing clean and maintainable code. The approach leverages the concept of code ...
详细信息
Gradual typing allows programs to enjoy the benefits of both static typing and dynamic typing. While it is often desirable to migrate a program from more dynamically typed to more statically typed or vice versa, gradu...
详细信息
Gradual typing allows programs to enjoy the benefits of both static typing and dynamic typing. While it is often desirable to migrate a program from more dynamically typed to more statically typed or vice versa, gradual typing itself does not provide a way to facilitate this migration. This places the burden on programmers who have to manually add or remove type annotations. Besides the general challenge of adding type annotations to dynamically typed code, there are subtle interactions between these annotations in gradually typed code that exacerbate the situation. For example, to migrate a program to be as static as possible, in general, all possible combinations of adding or removing type annotations from parameters must be tried out and compared. In this paper, we address this problem by developing migrational typing, which efficiently types all possible ways of replacing dynamic types with fully static types for a gradually typed program. The typing result supports automatically migrating a program to be as static as possible or introducing the least number of dynamic types necessary to remove a type error. The approach can be extended to support user-defined criteria about which annotations to modify. We have implemented migrational typing and evaluated it on large programs. The results show that migrational typing scales linearly with the size of the program and takes only 2-4 times longer than plain gradual typing.
This study introduces the Refined CB (RCB) metric, an advanced complexity measure for object-oriented software that extends the traditional CB metric by incorporating additional factors like dynamic memory access, com...
详细信息
In this paper we focus on TinySol, a minimal calculus for Solidity smart contracts, introduced by Bartoletti et al. We start by rephrasing its syntax (to emphasise its object-oriented flavour) and give a new big-step ...
详细信息
The use of external tips and applications to help with programming assignments, by novice programmers, is a double-edged sword, it can help by showing examples of problem-solving strategies, but it can also prevent le...
详细信息
The article analyzes the existing methods and approaches used in the pattern recognition process, which made it possible to identify the peculiarities of their application and outlined the range of problems that arise...
详细信息
This study explores the transformative impact of gamification on online object-orientedprogramming (OOP) courses, focusing on student engagement and learning outcomes. It begins with developing the CodeQuest applicat...
详细信息
This innovative practice full paper presents an empirical study aimed at evaluating the potential of ChatGPT, an advanced AI-driven chatbot, as a supplementary educational tool in undergraduate Computer Science and So...
详细信息
ISBN:
(纸本)9798350351507
This innovative practice full paper presents an empirical study aimed at evaluating the potential of ChatGPT, an advanced AI-driven chatbot, as a supplementary educational tool in undergraduate Computer Science and Software Engineering (CSSE) courses. The study, initiated in the summer of 2023, focused on assessing ChatGPT's capabilities in generating accurate and complete computer code, identifying and rectifying code defects (bugs), and its scalability in handling larger programs. To achieve this, we conducted a series of experiments with ChatGPT. In one experiment, we introduced bugs into small programs from introductory CSSE courses. ChatGPT was tasked with detecting these defects and providing recommendations for fixing them. We evaluated ChatGPT's effectiveness in bug detection, the quality of its recommendations, and the completeness of the proposed solutions. We sought answers to questions such as whether ChatGPT found all injected defects, provided appropriate recommendations, and delivered high-quality solutions based on criteria like code completeness, size, complexity, and readability. In another experiment, ChatGPT was asked to generate code for assignments from previous CSSE courses, including Intro to Computer Science and programming in C++, Intro to Python programming, and object-orientedprogramming and Data Structures using Java. We assessed the generated code's correctness and quality in comparison to student-written code. Similarly, in a third experiment, we evaluated ChatGPT's ability to generate larger programs using requirement specifications from an upper-division CSSE course on Agile Software Engineering. Analyzing both qualitative and quantitative data from these experiments during the summer, we determined that ChatGPT showed promise as an educational tool. Consequently, we developed a plan to integrate ChatGPT into select CSSE courses for the fall semester of 2023. Specifically, ChatGPT was integrated into two of our introductory CSSE cou
The Broker pattern[5] had its golden era as an architectural pattern for distributed object-orientedprogramming in the late 1990'ies and early 2000's and was supported by a large set of frameworks: CORBA, Jav...
详细信息
ISBN:
(纸本)9781450399562
The Broker pattern[5] had its golden era as an architectural pattern for distributed object-orientedprogramming in the late 1990'ies and early 2000's and was supported by a large set of frameworks: CORBA, Java RMI, .Net remoting, gRPC, SOAP and others. However, the tooling tended to be heavy-weight and cumbersome, security issues were hard to handle, and the growth of the more lightweight REST architectural style [13, 23] caused Broker based architectures to become much less used. In this tool paper we will argue why the Broker pattern offers a number of advantages over REST in a teaching context, argue that Broker can achieve similar architectural qualities as REST, show case an open source Broker library, and report from successful teaching experiences.
暂无评论