We discuss the coding principle Don’t Repeat Yourself (DRY) and compare various tactics to achieve DRY code, both in the context of object-oriented (OO) programming and functional programming (FP). Neither OO nor FP ...
详细信息
Technology is changing how students learn in the 21st century significantly. Integrating mobile devices in teaching, learning, and assessment processes has emerged as an important strategy for improving teaching metho...
详细信息
This research paper focuses on evaluating code-generating chatbots. Chatbots like ChatGPT released in the past three years have proven capable of a wide variety of tasks within a conversational interaction, including ...
详细信息
ISBN:
(纸本)9798350351507
This research paper focuses on evaluating code-generating chatbots. Chatbots like ChatGPT released in the past three years have proven capable of a wide variety of tasks within a conversational interaction, including writing code and answering code-related questions. With these recent advances, chatbots have many potential uses in education, including computer science education. However, before these chatbots are used in CS curricula, their capabilities and limitations must be systematically tested and understood. In this work, we evaluate the capabilities and limitations of four known, open-source, code-based chatbots in programming tasks by performing a standardized study in which different chatbots are tasked with providing answers for a variety of assignments from Boise State University's computer science program. We found that while all of the chatbots can write code and provide explanations, some do better than others, and each of them work differently in conversations. Moreover, all of them suffered similar and important limitations, which has implications for adoption in curriculum. As a second experiment, we used the Llama chatbot to perform a human evaluation by enabling student novice and experienced programmers to use it as a coding assistant to complete specific tasks in a common software development environment. We found that the coding assistant can help novice programmers accomplish simple tasks in comparable time and code efficacy as more experienced programmers. Given these experiments, and given feedback from participants in our studies, we see a clear picture emerge: new programmers should learn important concepts about programming without the help of code assistants so students can (1) demonstrate their understanding of important concepts and (2) have enough experience to assess code assistant output as useful or erroneous. Then, once intermediate skills are mastered (e.g., object oriented programming and data structures), it seems appropriate t
Refinement types have been extensively used in class-based languages to specify and verify fine-grained logical specifications. Despite the advances in practical aspects such as applicability and usability, two fundam...
详细信息
object-orientedprogramming languages typically allow mutation of objects, but pure methods are common too. There is great interest in recognizing which methods are pure, because it eases analysis of program behavior ...
详细信息
Various approaches have been proposed for extracting microservices from the source code of monolithic software systems. The extracted microservices are usually evaluated by using the metrics of the precision and recal...
详细信息
programming is a fundamental subject in the majority of technology-oriented degrees, particularly in Computer Engineering programs. Mastering programming requires continuous practice to understand the syntax, semantic...
详细信息
In recent years, generative AI models such as ChatGPT, based on Transformer architectures, have developed rapidly and become a hot topic in society. They are widely used in programming, audio, and video processing fie...
详细信息
Over the last two decades practically all object-orientedprogramming languages have introduced features that are well-known from functional programming languages. But many features that were introduced were fragmenta...
详细信息
This article shows eight approaches how to construct Cypress tests using POM. The connections between them are stressed as their evolution while writing code developing E2E tests. The authors highlight advantages and ...
详细信息
暂无评论