Codeflex 2.0: Experience With Competitive Programming in Logical and Functional Paradigms

Codeflex 2.0: Experience With Competitive Programming in Logical and Functional Paradigms

Copyright: © 2023 |Pages: 28
DOI: 10.4018/978-1-6684-9039-6.ch003
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

This work presents the design and implementation of Codeflex, a web-based platform and repository of programming problems, that enables the learning and practice of competitive programming in multiple programming language paradigms. The Codeflex programming platform performs automatic evaluation of submitted solutions for a very diverse set of programming languages, in real time, considering the specificities and requirements of different programming paradigms, being prepared to analyze and detect plagiarism in tournament submissions. The use of Codeflex platform in a real context allowed the test and validation of its functionalities. In particular, several programming tournaments were organized, for Haskell and Prolog programming languages – functional and logic programming tournaments, respectively, within the scope of programming curricular units of computer science undergraduate degree. The findings suggest that Codeflex is a valuable contribution in enhancing programming skills and providing an efficient evaluation system for educational and professional settings.
Chapter Preview
Top

State Of The Art

There is currently a great demand for professionals in the areas of Information Technologies, particularly in Computer Programming, for which there are greater difficulties in satisfying the needs of the market. The study and practice of algorithms, data structures and programming languages is thus essential and of prime importance for the solution of the problem and the only possible way in the construction and growth of the computers programming professional. The academic environment is one of the main ways to the introduction to the subject and where the fundamental concepts are worked and developed (Combéfis, 2022), but it is essential an increase in the number of exercises solved by the students, which is, however, far from being the ideal due to the work and complexity involved for their evaluation.

Key Terms in this Chapter

Web Service: A web service is a software system or component that enables communication and interaction between different applications over a network, typically the Internet. It provides a standardized way for software components to exchange data and invoke functionality remotely using web protocols like HTTP.

Programming Paradigm: A programming paradigm refers to a specific approach or style of programming. It encompasses a set of principles, concepts, and techniques that guide the development of software. Examples of programming paradigms include procedural, object-oriented, functional, and logical programming.

Programming Platform: A programming platform, also known as a development platform, is a software environment or framework that provides tools, libraries, and resources for developing and running software applications. It often includes an Integrated Development Environment (IDE) and supports multiple paradigms and programming languages.

Compilation Process: The compilation process is the transformation of human-readable source code into machine-executable code. It involves several stages, including lexical analysis, syntax analysis, semantic analysis, code generation, and optimization. The result is an executable program that can be run on a computer.

Competitive Programming: Competitive programming is a mind sport that involves solving algorithmic problems within a specified time limit. Participants compete against each other to solve problems efficiently and produce correct solutions.

Code Submission: Code submission refers to the act of submitting source code or a programming solution for evaluation, typically in the context of programming competitions, coding challenges, or online learning platforms. The submitted code is usually assessed for correctness, efficiency, and adherence to the specified requirements.

Automated Assessment: Automated assessment is the process of evaluating and grading programming assignments or coding tasks using computerized systems. It involves running tests and analyzing the output produced by the submitted code to determine its correctness and efficiency.

Programming Tournament: A programming tournament is an event or competition where programmers compete against each other to solve a series of programming challenges. Participants typically showcase their problem-solving skills and coding abilities within a given time frame.

Complete Chapter List

Search this Book:
Reset