686 research outputs found

    SOLVING CONTEST PROBLEMS \ud VIA FORMAL PROGRAM VERIFICATION\ud

    Get PDF
    The interface between mathematics and computer science is many-sided. In particular, E.W. Dijkstra promoted a special “computer science” approach to mathematics problem solving. The approach combines a heuristic algorithm design and rigorous mathematical proof of algorithm correctness (in style of A. Hoare and R. Floyd). The paper sketches two problems of this kind in a form of tutorials for undergraduate students that are interested in different programming contests (like ACM International Collegiate Programming Contests). These tutorials took place at Novosibirsk State University in years 2005–2008. The paper also dioceses some direction for further research that emerge from the problems

    Solving contest problems via formal program verification

    Get PDF
    The interface between mathematics and computer science is many-sided. In particular, E.W. Dijkstra promoted a special “computer science” approach to mathematics problem solving. The approach combines a heuristic algorithm design and rigorous mathematical proof of algorithm correctness (in style of A. Hoare and R. Floyd). The paper sketches two problems of this kind in a form of tutorials for undergraduate students that are interested in different programming contests (like ACM International Collegiate Programming Contests). These tutorials took place at Novosibirsk State University in years 2005–2008. The paper also dioceses some direction for further research that emerge from the problems

    PROBLEMS OF NUMBER THEORYIN PROGRAMMING CONTESTS

    Get PDF
    There are many different competitions in the field of informatics with different objectives. In spite of these differences, they all share the same need for high quality tasks. This paper describes the algo-rithmic tasks of number theory of different levels of difficulty. Most tasks are used in the specific scope of teaching and learning informatics. In this paper we consider the problems of enumerating the number of ordered tuples of positive inte-gers with fixed greatest common divisor and least common multiple, and we analyze the some properties of the resulting arithmetic functions. The important feature of these tasks is that they are multilevel tasks. They assume to use solution algorithms of various complexity which depend on dimension of the task. All algorithms we present have low sample complexity that depends only on the input parameters. Many of the examples in this paper are taken from the Open Cup named after E.V. Pankratiev (Grand-Prix of Tatarstan)

    Exploring Automated Code Evaluation Systems and Resources for Code Analysis: A Comprehensive Survey

    Full text link
    The automated code evaluation system (AES) is mainly designed to reliably assess user-submitted code. Due to their extensive range of applications and the accumulation of valuable resources, AESs are becoming increasingly popular. Research on the application of AES and their real-world resource exploration for diverse coding tasks is still lacking. In this study, we conducted a comprehensive survey on AESs and their resources. This survey explores the application areas of AESs, available resources, and resource utilization for coding tasks. AESs are categorized into programming contests, programming learning and education, recruitment, online compilers, and additional modules, depending on their application. We explore the available datasets and other resources of these systems for research, analysis, and coding tasks. Moreover, we provide an overview of machine learning-driven coding tasks, such as bug detection, code review, comprehension, refactoring, search, representation, and repair. These tasks are performed using real-life datasets. In addition, we briefly discuss the Aizu Online Judge platform as a real example of an AES from the perspectives of system design (hardware and software), operation (competition and education), and research. This is due to the scalability of the AOJ platform (programming education, competitions, and practice), open internal features (hardware and software), attention from the research community, open source data (e.g., solution codes and submission documents), and transparency. We also analyze the overall performance of this system and the perceived challenges over the years

    Learning to code in class with MOOCs: Process, factors and outcomes

    Get PDF
    Problem: Python became the most popular programming language in recent years, beating Java, the programming language still widely used as the main programming language in many undergraduate degrees on computer science related areas. Students from those degrees often do not get Python in their syllabus, but the job market is demanding it increasingly. Objective: To assess if learning a new programming language by following a MOOC is feasible in a fully dedicated mode and allows achieving a learning outcome comparable to the traditional in-class learning process. Proposal: Students from undergraduate degrees lacking Python skills followed a dedicated and intensive learning process on that language based on an in-class MOOC. The latter is suitable for students with some background in programming, as is the case, allowing a faster learning pace. Participants’ subjective perception of the corresponding workload was monitored. Validation: A programming contest, using an automatic judge, was used as a validation for this proposal. Two groups of students participated: those from three degrees lacking Python, which followed the proposed MOOC (experimental group), and those from the degree that includes Python programming, which had a traditional in-class learning process (control group). Conclusions: The experiment results were analysed and it was inferred that the proposed in-class MOOC learning approach is as effective as the traditional learning approach. Furthermore, it was identified that the students’ average grades obtained in the previous programming courses taken as part of their degree’s syllabus and the number of MOOC modules finished in the context of this experiment directly influence the number of points obtained in the contest.Problema: Nos últimos anos, Python tornou-se a linguagem de programação mais popular, ultrapassando o Java, que continua a sermuito usada como principal linguagem de programação em muitas licenciaturas relacionadas com informática. Estas licenciaturas acabam muitas vezes por não oferecer esta competência aos estudantes, no entanto o mercado de trabalho procura-a cada vez mais. Objectivo: Avaliar a possibilidade de aprender uma nova linguagem de programação através de um MOOC num regime de total dedicação. E por fim, perceber se este permite obter resultados comparáveis ao ensino tradicional. Proposta: Os estudantes com falta de conhecimentos de Python realizaram um processo de aprendizagem intensivo desta linguagem através de um MOOC em sala de aula. Este último é adequado a estudantes com alguns conhecimentos de programação, permitindo assim um ritmo mais rápido de aprendizagem. A perceção subjetiva dos participantes sobre a respetiva carga de trabalho foi monitorizada. Validação: Realização de um concurso de programação recorrendo a um juiz automático. Dois grupos de estudantes participaram neste concurso: estudantes das 3 licenciaturas sem conhecimentos de Python, que realizaram o MOOC (grupo experimental), e os estudantes da licenciatura que inclui Python e que teve uma aprendizagem tradicional (grupo de controlo). Conclusões: Os resultados deste experimento foram analisados e inferiu-se que a aprendizagem de um MOOC em sala de aula é tão eficaz quanto o ensino tradicional. Para além disso, foi também verificado que a média de notas dos estudantes obtida nas unidades curriculares de programação que já frequentaram no seu curso e o número de módulos feitos no MOOC no contexto desta experiência influenciam diretamente os pontos obtidos no concurso de programação

    Utilização de juízes eletrônicos e problemas oriundos da Maratona de Programação no ensino de programação da Faculdade UnB Gama : um estudo de caso

    Get PDF
    Monografia (graduação)—Universidade de Brasília, Faculdade UnB Gama, Curso de Engenharia de Software, 2015.A computação é parte integrante de nossas vidas. Decisões importantes são tomada com base nas informações providas por softwares. Software de alta qualidade e eficiência é necessário para que estás decisões estejam bem fundamentadas. O Engenheiro de Software é o profissional responsável por garantir essa qualidade. Para que isso seja possível é necessário que ele conheça bem os fundamentos da ciências da computação. Mas ensinar programação é díficil. Manter os alunos motivados não é uma tarefa fácil e a taxa de evasão dos cursos de computação é alta. Para solucionar estes problemas foi implementada uma metodologia de avaliação baseada em competições de programação. Este trabalho tem como objetivo analisar a eficiência desta metodologia observando o impacto no desempenho dos alunos nas disciplinas de programação posteriores a ela.Computers are in our lives in a way that we can’t live without it anymore. Important decisions are made based in information provided by software. The software which provides those information must be reliable and efficient, so the decisions made using them are well grounded. The Software Engineer are the professionals who are responsible to ensure this software quality. It is required from the software professional that his knowlodge in computer science are strong and his programming skill are sharp. But teaching programming is hard. Keep the students motiveted isn’t a easy task and the drop rate in computer science courses in Brazil are high. In order to address this problem it was implemented in programming classes a teaching methodology inspired in programming competitions, like the ACM ICPC. This work objective is analyse the impact of this methodology in the students performances in future programming classes

    A Case Study: Motivational Attributes of 4-H participants engaged in Robotics

    Get PDF
    Robotics has gained a great deal of popularity across the United States as a means to engage youth in science, technology, engineering, and math. Understanding what motivates youth and adults to participate in a robotics project is critical to understanding how to engage others. By developing a robotics program built on a proper understanding of the motivational influences, the program can be built on a foundation that addresses these influences. By engaging more youth in the robotics program, they will be able to envision a future for themselves as a high-school or college graduate, in addition to a viable employee with marketable skills in tough economy. The purpose of this research was to evaluate the underlying motivational attributes or factors that influenced 4-H youth, parents, volunteers, and agents to participate in the Mississippi 4-H robotics project. Specifically, this research focuses on two unique counties in Mississippi with very diverse populations. Interviews with participants, observation, and document analysis which took place occurred over the course of a robotics year – October to July. This study sought to identify motivational attributes of participants in the robotics project. Once identified these attributes could be used when developing new program curricula or expanding into new counties in Mississippi. Data analysis revealed that there are many unique motivational factors that influence participants. Among these factors, (1) the desire to build and construct a robot, (2) competition and recognition, (3) desire for future success and security, (4) safe place to participate and build relationships, (5) teamwork, (6) positive role models, and (7) encouragement

    Student Honors and Awards Program 2018

    Get PDF
    In recognition of students who demonstrate academic excellence and enrich campus life.https://digitalcommons.morris.umn.edu/honorsawards/1025/thumbnail.jp

    2002-2006

    Get PDF
    corecore