686 research outputs found
SOLVING CONTEST PROBLEMS \ud VIA FORMAL PROGRAM VERIFICATION\ud
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
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
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
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
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
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
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
In recognition of students who demonstrate academic excellence and enrich campus life.https://digitalcommons.morris.umn.edu/honorsawards/1025/thumbnail.jp
- …