ARTIGOS

PROGRAMAÇÃO COMPETITIVA EM UM PROJETO DE EXTENSÃO PARA O ENSINO TÉCNICO EM INFORMÁTICA

COMPETITIVE PROGRAMMING IN AN EXTENSION PROJECT FOR TECHNICAL EDUCATION IN COMPUTER TECHNOLOGY

Ana Elisa Tozetto Piekarski
Universidade Estadual do Centro-Oeste - Unicentro, Brasil
Mauro Miazaki
Universidade Estadual do Centro-Oeste - Unicentro, Brasil
Alexandro Luis da Rocha Junior
Universidade Estadual do Centro-Oeste - Unicentro, Brasil
Eric Patrick Militão
., Brasil
João Vitor Pieczarka da Silva
., Brasil

PROGRAMAÇÃO COMPETITIVA EM UM PROJETO DE EXTENSÃO PARA O ENSINO TÉCNICO EM INFORMÁTICA

Revista Conexão UEPG, vol. 19, núm. 1, pp. 01-15, 2023

Universidade Estadual de Ponta Grossa

Recepción: 15 Noviembre 2022

Aprobación: 05 Julio 2023

Resumo: Este trabalho descreve os treinamentos em programação de computadores para os alunos do curso Técnico em Informática, como atividades de extensão, realizadas no período de 2016 a 2022. Os treinamentos, destinados à preparação para a Olimpíada Brasileira de Informática (OBI), são oferecidos no âmbito do projeto “Treinamento em Lógica e Programação de Computadores para o Ensino Técnico” (TL&PC), vinculado ao Departamento de Ciência da Computação (Decomp) da Universidade Estadual do Centro-Oeste (Unicentro), destinados aos alunos do Curso Técnico em Informática do Colégio Estadual Francisco Carneiro Martins (CEFCM), em Guarapuava, PR. O artigo apresenta um histórico das ações realizadas, os conceitos de programação competitiva, competições de programação e os ambientes de treinamento, descreve as atividades realizadas e apresenta os principais resultados desses sete anos de parceria.

Palavras-chave: Olimpíada Brasileira de Informática, Programação de Computadores, Extensão Universitária, Ensino Médio.

Abstract: This work describes the training in computer programming for students of the Computer Technician course, as extension activities, carried out from 2016 to 2022. The training, aimed at preparing for the Brazilian Informatics Olympiad (OBI), is offered at scope of the project “Training in Computer Logic and Programming for Technical Education” (TL&PC), linked to the Department of Computer Science (Decomp) of the State University of the Midwest (Unicentro), intended for students of the Technical Course in Computer Science at the Francisco Carneiro Martins State College (CEFCM), in Guarapuava, PR. This article presents a history of the actions carried out, the concepts of competitive programming, programming competitions and the training environments, describes the activities carried out and presents the main results of these seven years of partnership.

Keywords: Brazilian Olympiad in Informatics, Computer Programming, University Extension, High School.

Introdução

Desde 2014, ações de extensão vinculadas ao Departamento de Ciência da Computação (Decomp) da Universidade Estadual do Centro-Oeste (Unicentro) são realizadas em parceria com a coordenação do Curso Técnico em Informática do Colégio Estadual Francisco Carneiro Martins (CEFCM). As atividades vinculadas ao projeto “Treinamento em Lógica e Programação de Computadores para o Ensino Médio” (TL&PC) visam apoiar conteúdos da grade curricular ou oferecer formação complementar aos alunos do curso técnico. O objetivo do projeto é melhorar as habilidades em lógica e programação de computadores por meio de resolução de problemas computacionais.

A partir de 2016, atividades de treinamento que visam preparar os alunos do curso técnico para a participação na Olimpíada Brasileira de Informática (OBI) vêm sendo realizadas. Em geral, os treinamentos ocorrem no contraturno ou aos sábados, nas dependências do Decomp, sempre com participação voluntária dos alunos. As atividades são conduzidas pela equipe de execução do projeto, formada por docentes e discentes (monitores) do Bacharelado em Ciência da Computação da Unicentro.

O projeto é delineado considerando que a extensão universitária constitui-se em “processo interdisciplinar, político educacional, cultural, científico, tecnológico, que promove a interação transformadora entre as instituições de ensino superior e os outros setores da sociedade, por meio da produção e da aplicação do conhecimento, em articulação permanente com o ensino e a pesquisa” (MINISTÉRIO DA EDUCAÇÃO, 2018).

Neste artigo estão descritas as atividades do projeto TL&PC destinadas aos alunos do curso Técnico em Informática do CEFCM, mais especificamente os treinamentos em programação competitiva, destinados à preparação para a participação na OBI. É apresentado um histórico das ações realizadas e os conceitos de programação competitiva, incluindo as competições de programação e os ambientes de treinamento. As atividades realizadas no período de 2016 a 2022 são descritas, bem como as adaptações em relação à metodologia e às ferramentas utilizadas. São apresentadas as considerações finais, ressaltando os aspectos extensionistas do projeto.

Histórico

A coordenação do curso técnico em informática do CEFCM sempre manteve contato com o Decomp, convidando para palestras ou outras atividades no colégio.

A parceria intensificou-se a partir de 2014, quando foram oferecidas várias oficinas sobre temas envolvendo segurança na Internet, utilizando como material de apoio a “Cartilha de Segurança para Internet” e seus fascículos, desenvolvida pelo Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil (CERT.BR) (PIEKARSKI et al., 2016). Em 2014 e 2015, essas oficinas fizeram parte da programação da Semana de Estudos do curso técnico. Em 2015, a coordenação incentivou os alunos do curso técnico a participar da Olimpíada Brasileira de Informática (OBI).

No âmbito do Decomp, o projeto de extensão “Ensino Extracurricular de Programação de Computadores” (E2PC) iniciou em 2011, com o objetivo de viabilizar a participação de times da Unicentro na Maratona de Programação da Sociedade Brasileira de Computação (SBC). Um objetivo transversal do projeto era desenvolver ações para apoiar alunos de ensino médio interessados em disputar a OBI. Então, em 2016, foram iniciadas atividades de treinamento em programação competitiva, visando o estímulo à participação dos alunos do curso técnico na OBI (PADILHA et al., 2016; PIEKARSKI et al., 2018a; GARDIN et al., 2019). Essas ações se mantêm até o presente momento.

Paralelamente, outras oficinas, destinadas a melhorar as habilidades em lógica e programação de computadores foram realizadas, utilizando plataformas lúdicas, tais como Greenfoot, a plataforma Code e desenvolvimento web com Python (PIEKARSKI et al., 2018b; PRESTES et al., 2019; PRESTES et al., 2020).

Durante a pandemia de Covid-19, foram feitas atividades remotas envolvendo conteúdos de oficinas que já haviam sido realizadas de modo presencial. Embora se tratassem de atividades em contexto lúdico, os alunos do curso técnico estavam reticentes em participar, dada a sobrecarga das atividades à distância, conforme relatado em MILITÃO et al. (2021) e ROCHA JUNIOR et al. (2021).

Com o retorno às atividades presenciais em 2022, foi possível retomar os treinamentos em programação competitiva, da forma que eram feitas antes da pandemia. No entanto, novos desafios surgiram, decorrentes das restrições do ensino remoto. Nesse contexto, estão sendo oferecidas oficinas de reforço em programação, e, extrapolando os conteúdos abordados até então, foram iniciadas também atividades de apoio em Matemática, abrindo novas perspectivas para o caráter multidisciplinar do projeto.

Programação competitiva

A programação competitiva é um esporte mental, na qual os praticantes dedicam-se a resolver problemas computacionais utilizando dois principais tópicos: o projeto e a implementação do algoritmo. O projeto do algoritmo se preocupa em criar algoritmos eficientes que sejam capazes de resolver um determinado problema, os algoritmos são criados combinando conhecimentos lógicos e matemáticos. Já a implementação do algoritmo se refere a traduzir o projeto do algoritmo para uma linguagem de programação (LAAKSONEN, 2018).

Os problemas enunciados são de níveis de dificuldade diversos e envolvem diferentes técnicas da computação. Há problemas simples, cujo objetivo é exercitar os conceitos introdutórios de programação de computadores, como a entrada e saída de dados, estruturas de condição e repetição, chamados de problemas ad hoc, até problemas complexos, cuja solução envolve grafos, geometria computacional e paradigmas computacionais (tais como busca binária e gulosa, programação dinâmica, otimização combinatória) (AREFIN, 2006; SKIENA, 2013).

O processo de avaliação da solução implementada utiliza sistemas de julgamento automático, denominados juízes, com base em conjuntos de dados de entrada e saída para cada problema, tempo de execução da solução e quantidade de memória utilizada na execução, conforme os parâmetros de cada problema.

Nos enunciados dos problemas, são disponibilizados exemplos da entrada e saída dos dados. A implementação da solução deve ser rigorosa quanto a esses formatos, pois o sistema de avaliação compara os conjuntos de teste com as saídas geradas pela solução submetida e, caso seja diferente, a submissão é julgada incorreta. Os juízes automáticos retornam diferentes respostas para a corretude da solução, ou para situações em que a solução extrapola as restrições de tempo ou de memória ao ser executada.

Em uma prova de programação competitiva, é entregue aos competidores um caderno de provas com diversos problemas, para que implementem soluções em um tempo predefinido. Essas competições podem ser individuais ou em times.

Dentre as competições de programação competitiva mais conhecidas no Brasil, estão a OBI e a Maratona de Programação, ambas promovidas pela Sociedade Brasileira de Computação. Essas duas provas são etapas seletivas para as competições internacionais International Olympiad in Informatics (IOI) e International Collegiate Programming Contest (ICPC), respectivamente. Além dessas, mundialmente conhecidas, existem competições realizadas por organizações privadas, tais como HackerRank, CodeForces e Code Jam1 da Google.

Para os treinamentos em programação competitiva, há uma série de plataformas disponíveis, tais como HackerRank, BeeCrowd e CodeForces.

OBI

A Olimpíada Brasileira de Informática (OBI) é uma competição de programação realizada anualmente, desde 1999, promovida pela Sociedade Brasileira de Computação (SBC). A OBI tem como objetivo despertar nos alunos o interesse pela Computação e por Ciências em geral, bem como promover a introdução do raciocínio computacional e técnicas de programação de computadores nas escolas de ensino médio e fundamental, além de buscar proporcionar novos desafios aos estudantes (OBI, 2022).

A prova tem duas modalidades, conforme a fase escolar dos participantes: (i) Iniciação, destinada aos alunos do quarto ao nono ano do ensino fundamental, a qual consiste em problemas de lógica, envolvendo conhecimentos prévios para projeto de algoritmos; e (ii) Programação, que permite a participação dos alunos de qualquer série do ensino fundamental e do médio, além de estudantes do quarto ano de cursos técnicos de nível médio e alunos que estejam cursando pela primeira vez o primeiro ano de um curso superior, a qual requer a implementação de soluções computacionais para os problemas propostos. A modalidade Iniciação possui três níveis: Nível Júnior, Nível 1 e Nível 2. Já a modalidade Programação, possui quatro níveis: Nível Júnior, Nível 1, Nível 2 e Nível Sênior. Ambas as modalidades são divididas em três fases: Local, Estadual e Nacional. Os melhores participantes do seu respectivo nível e modalidade avançam para a próxima fase (OBI, 2022).

Plataformas de treinamento

Há diversas plataformas de treinamento em programação competitiva, que buscam auxiliar os maratonistas a desenvolver melhor suas habilidades, tais como Coderbyte2, Project Euler3, CodeChef4, HackerRank5, TopCoder6 e CodeForces7. No entanto, essas plataformas disponibilizam seus conteúdos apenas em inglês, o que se torna um problema para os competidores iniciantes.

O site da OBI8 disponibiliza uma plataforma própria de treinamento, na qual se pode acessar problemas de provas anteriores e submeter soluções para o sistema de julgamento automático. No entanto, seu repositório é limitado aos problemas de edições anteriores da competição.

Nesse contexto, a Universidade Regional Integrada (URI) disponibilizou o URI Online Judge, que é uma plataforma que disponibiliza um vasto repositório de problemas em língua portuguesa (problemas tradicionais das outras plataformas traduzidos, problemas de OBIs e Maratonas passadas) e um mecanismo de avaliação automática. Além disso, possui outros recursos complementares, como competições, fóruns e o Beecrowd Academic, que possibilita criar disciplinas para que o professor acompanhe a evolução dos participantes. O URI Online Judge funcionou de janeiro de 2013 até outubro de 2021, quando passou a ter novo nome: plataforma Beecrowd (BEECROWD, 2021).

Atividades realizadas

As primeiras atividades destinadas aos treinamentos para a OBI tiveram como objetivo introduzir o formato da prova, tanto em relação aos enunciados quanto ao formato de entrada e saída dos dados, pois os critérios de avaliação das soluções não são familiares aos alunos do curso técnico. Os treinamentos eram destinados aos alunos do 3º e 4º ano do curso técnico, que já tinham cursado disciplinas de programação de computadores.

Em 2016, foi elaborada e disponibilizada uma plataforma de treinamento no Moodle da Unicentro (PADILHA et al., 2016), com os tópicos iniciais de programação. Semanalmente um novo tópico era disponibilizado no Moodle, contendo um vídeo explicativo, seguido de um exercício de desafio, que os alunos deveriam resolver e submeter a resolução. Um vídeo com a resolução do desafio estava disponível, depois da postagem da resolução, bem como outros exercícios sobre o tópico. Todo esse conteúdo foi elaborado com o intuito de ser reutilizado em atividades futuras.

Todas as resoluções postadas eram avaliadas pela equipe de coordenação do projeto, que testava e dava retorno sobre possíveis melhorias e/ou falhas da solução. Além das atividades a distância, foram disponibilizados atendimentos semanais para apoio à resolução dos exercícios propostos e foi realizado um simulado da prova, conforme o material de divulgação da Figura 1.

Figura 1: Material de divulgação da atividade preparatória para a OBI
Figura 1: Material de divulgação da atividade preparatória para a OBI
Fonte: Os autores (2016).

Dos 25 alunos que estavam participando do treinamento, 16 participaram do simulado, realizado uma semana antes da primeira fase da OBI. Dos 24 alunos que realizaram a prova, uma aluna foi selecionada para a 2ª fase. Para essa aluna, foram feitos atendimentos presenciais para apoiar a resolução de exercícios. Dos participantes, 20% avaliaram o treinamento como “Muito bom”, 72% avaliaram como “Bom” e 8% avaliaram como “Ruim”.

Em 2017, a primeira atividade realizada com os alunos interessados em participar dos treinamentos para a OBI foi uma prova simulada, utilizando a linguagem que haviam aprendido no curso técnico (Pascal). Com isso, foi possível identificar a falta de prática com a linguagem de programação (sintaxe das instruções) e o uso adequado das funções de entrada e saída. Utilizando a plataforma do Moodle desenvolvida no ano anterior, os monitores acompanharam os acessos, postagens e dúvidas. Às vésperas da realização da OBI, foi oferecida uma atividade presencial, destinada a elucidar dúvidas. A maioria dos inscritos não acessou a plataforma no Moodle. Dos dez participantes que prestaram a primeira fase da OBI, três foram selecionados para a segunda fase. A coordenação do curso técnico solicitou, então, apoio para o treinamento desses selecionados, com prazo bastante restrito. Foram realizadas duas monitorias nas dependências do Decomp, destinadas a aprimorar as habilidades dos alunos na resolução dos problemas, com conteúdos que eles já dominavam. Em cada uma dessas monitorias presenciais, foram resolvidos os problemas que já haviam sido propostos na plataforma disponibilizada no Moodle. Desses três, um dos participantes foi selecionado para a fase nacional da prova. A organização da OBI, em 2018, criou o Nível Sênior na modalidade Programação, possibilitando a participação dos alunos do 4º ano do curso técnico. Com isso, no primeiro semestre de 2018, os treinamentos foram continuados, seguindo a mesma metodologia e utilizando as mesmas plataformas e ferramentas de apoio do ano anterior. Foram ofertadas duas turmas, uma para os iniciantes (alunos do 3º ano) e outra para os que já haviam participado no ano anterior. Oito alunos disputaram a 1ª fase (sendo quatro no Nível 2 e três no Nível Sênior), dos quais cinco foram selecionados para a segunda fase.

No segundo semestre de 2018, foram iniciados treinamentos em linguagem C. No curso técnico, a linguagem utilizada é Pascal, então o treinamento teve como objetivo a “tradução” das instruções de uma linguagem para outra. Além disso, foram realizadas atividades que reforçaram a lógica de programação, necessária à resolução dos exercícios propostos. Foram quatro encontros, com seis participantes, sendo que dois eram alunos de outro colégio da cidade.

Em 2019, o treinamento destinado à preparação dos interessados em disputar a primeira fase da OBI teve que passar por mudanças. A plataforma de treinamento oficial da OBI, utilizada nos anos anteriores, estava fora de operação, sendo reformulada. Com a impossibilidade de utilizar o sistema de julgamento automático da OBI, decidiu-se por utilizar a plataforma URI Online Judge.

O destaque desse treinamento, que totalizou 20 horas, foi a quantidade de participantes em relação às ofertas anteriores: dos 19 inscritos, 10 tiveram mais de 70% de frequência. Outro diferencial foi a participação de um aluno do primeiro ano do Bacharelado em Ciência da Computação. A fim de deixar a experiência dos participantes mais lúdica e proporcionar um engajamento maior dos alunos, outra novidade foi a utilização da ferramenta Kahoot!9. Através da modalidade Quiz, foi possível ter um feedback imediato após o final de cada encontro, possibilitando reforçar os conteúdos que não haviam sido bem assimilados pelos participantes (GARDIN et al., 2019).

Seguindo o calendário oficial da OBI, as provas foram aplicadas pela equipe executora do projeto nas dependências do Decomp. Cinco alunos realizaram a prova, dos quais quatro foram selecionados para a segunda fase, e um dos alunos passou para a terceira fase.

Durante esses treinamentos, os conteúdos, antes disponibilizados no Moodle, foram reestruturados e disponibilizados na plataforma Wiki da Unicentro. Para cada um dos tópicos iniciais (entrada e saída de dados, estruturas de seleção e estruturas de repetição) foram disponibilizados exemplos de código (em Pascal, C e C++) e uma lista de problemas do URI Online Judge.

Para dar continuidade a essas ações, em outubro do mesmo ano, foi realizada uma oficina introdutória de programação competitiva como parte da Semana Pedagógica do curso técnico. Foi apresentado o formato dos problemas, explorando as principais restrições quanto à entrada e saída de dados. Foram explicadas as instruções de entrada e saída na linguagem C++ (cin e cout), bem como ambientes online para edição, compilação e testes dos códigos (cpp.sh10 e onlinegdb11). Foram propostos 11 problemas da plataforma URI, envolvendo entrada e saída de dados e estruturas de seleção. A oficina teve duração de 4 horas-aula e 19 participantes.

No início do período letivo, em 2020, foram realizadas atividades curtas (2 horas-aula) no CEFCM com os alunos do 3º e 4º ano do curso técnico, seguindo o mesmo modelo da oficina (introdução aos ambientes utilizados e às instruções de entrada e saída em C++), a fim de motivá-los para os treinamentos da OBI, que ocorreriam a partir de meados de março. No entanto, devido à suspensão das atividades em decorrência da pandemia por Covid-19, não foi possível cumprir o cronograma previsto.

Durante a pandemia (2020 e 2021), algumas das atividades do projeto foram viabilizadas por meio de ações remotas. Outras, no entanto, não puderam ser realizadas, devido às alterações do calendário universitário e falta de interesse dos alunos dos cursos técnicos em participar de treinamentos de forma virtual (especificamente, a preparação e a participação na OBI).

Atendendo a solicitações da coordenação, que buscava por atividades que contribuíssem para a introdução e fixação dos conceitos de programação de computadores, a equipe do projeto propôs oficinas utilizando a Plataforma Code.org (CODE.ORG, 2021), por disponibilizar atividades lúdicas, e por permitir o acompanhamento remoto do desenvolvimento das atividades. Além disso, a plataforma Code possibilita seu uso por meio de aparelho celular12. As atividades síncronas foram realizadas via Google Meet e as avaliações via Google Forms e Kahoot!. Grupos de WhatsApp foram criados para cada oficina, como canal para avisos e esclarecimentos de dúvidas das atividades.

Para a retomada das ações presenciais em 2022, o primeiro passo foi visitar o colégio, a fim de convidar os alunos do 3º ano do curso técnico para os treinamentos em programação competitiva, visando incentivar sua participação na OBI.

Os treinamentos iniciaram-se em abril, aos sábados. A previsão era que cada encontro tivesse duração de uma hora e meia; no entanto, atendendo a solicitação dos participantes, que se mostraram muito interessados e participativos, a duração dos encontros foi estendida para duas horas.

Seguindo o roteiro dos anos anteriores, no primeiro encontro, o objetivo foi apresentar o formato dos problemas de OBIs passadas e propor a sua implementação das soluções em linguagem C, com algumas funções de C++ (que facilitam, principalmente, a entrada e saída de dados). Novamente, a introdução a C/C++ foi realizada de forma comparativa à linguagem Pascal.

No segundo encontro, os participantes foram orientados a realizar o cadastro na plataforma Beecrowd. A partir disso, novos conteúdos foram abordados a cada encontro, conforme o roteiro do projeto. Listas de exercícios foram disponibilizadas em tarefas da plataforma Beecrowd, que eram acompanhadas pela coordenação. A disciplina criada para o treinamento na plataforma é mostrada na Figura 2. Ao todo, foram nove encontros, de abril a junho, sempre com a presença da coordenação e alternância dos monitores. Além das atividades presenciais, os participantes deveriam continuar os exercícios propostos e, em caso de dúvidas, contatar a equipe do projeto por meio do grupo de WhatsApp criado para esse fim. O treinamento totalizou 20 horas.

Figura 2: Disciplina do Treinamento na Plataforma Beecrowd
Figura 2: Disciplina do Treinamento na Plataforma Beecrowd
Fonte: Página da Disciplina no Beecrowd Academic13.

O material de apoio com os conteúdos abordados no treinamento, antes disponível na plataforma Wiki da Unicentro, foi reorganizado, complementado e disponibilizado no site do projeto (https://e2pc.unicentro.br/), conforme os conteúdos iniciais de programação: entrada e saída de dados, estruturas de seleção, estruturas de repetição e vetores (FORBELLONE; EBERSPÄCHER, 2022; MANZANO; OLIVEIRA, 2016; SOFFNER, 2013). A tela da Figura 3 mostra o índice dos conteúdos. Para cada conteúdo, é apresentado o conceito, a sintaxe em várias linguagens, um exemplo de resolução de problema e uma lista de exercícios da plataforma utilizada.

Figura 3: Página do Projeto com o roteiro dos conteúdos.
Figura 3: Página do Projeto com o roteiro dos conteúdos.
Fonte: Página do Projeto E2PC13.

De modo complementar, foi proposto o uso do VSCode (MICROSOFT, 2022) como ferramenta de desenvolvimento, em substituição aos ambientes online comumente utilizados. Para isso, foi disponibilizado um tutorial no site do projeto com as instruções para instalação e configuração do VSCode e do MinGW (necessário para a compilação dos programas), que constituem uma plataforma de desenvolvimento estável, mais adequada para os propósitos em questão e mais próxima das ferramentas utilizadas profissionalmente.

Dos oito participantes que iniciaram o treinamento em abril, três realizaram a prova da Fase 1, realizada em junho nas dependências do Decomp, a pedido da coordenação do curso técnico, pois o colégio não dispunha de laboratório disponível para aplicar a prova.

Os três alunos que participaram da OBI, em 2022, responderam, por meio do Google Forms, uma avaliação sobre o treinamento. Nas opiniões sobre as contribuições da atividade, ressaltaram o aprendizado de uma nova linguagem, a melhoria nas habilidades de raciocínio lógico e programação, e melhor desempenho nas disciplinas do curso técnico. Dois afirmaram ter tido excelente nível de esforço com as atividades propostas, e um deles disse que o nível de esforço foi satisfatório. Os métodos, conteúdos, ferramentas e plataformas foram bem avaliados, conforme é possível ver no Gráfico1. Os estudantes foram unânimes ao afirmar que recomendariam o treinamento para os colegas.

Gráfico 1: Avaliação do Treinamento
Gráfico 1: Avaliação do Treinamento
Fonte: Os Autores (2022).

Síntese das atividades

No Quadro 1, estão sintetizadas as principais informações sobre os treinamentos no período de 2016 a 2022, incluindo a linguagem de programação utilizada, onde o material de apoio foi disponibilizado, o formato das atividades, a série que os participantes cursavam, a quantidade de inscritos e de concluintes nos treinamentos, e a quantidade de alunos que disputou cada fase da OBI.

Até 2019, o projeto vinha conseguindo, de forma consistente, conquistar participantes comprometidos, que conseguiam avançar nas fases da OBI. Porém, com a mudança para o formato de aulas remotas durante a pandemia e a não possibilidade de continuidade dos treinamentos, a cultura que vinha sendo desenvolvida se perdeu. A participação dos alunos na retomada do projeto em 2022 foi bastante tímida, mas com resultados qualitativos satisfatórios, considerando as dificuldades técnicas resultantes do período de atividades remotas.

Durante esses sete anos do projeto, três docentes do Decomp e onze discentes do Bacharelado em Ciência da Computação estiveram envolvidos na equipe executora. Alguns discentes participaram em mais de um ano (dois participaram em dois anos do projeto, e três em três anos). A composição da equipe por ano consta do Quadro 2.

Para os monitores envolvidos, o projeto propicia experiência como tutores dos participantes. Inicialmente, isso representa um desafio, intensificado pela diversidade na oferta das ações (formato remoto e presencial), até que consigam interagir de forma satisfatória com os participantes e perceber que havia progressos no desenvolvimento das atividades. Participar do projeto contribui para a formação acadêmica, “pois tudo o que você acha que sabe é colocado em prática, (...) às vezes explicar mais de uma vez o mesmo conteúdo de formas diferentes (...) reforça todos os seus conhecimentos, e às vezes acaba aprendendo algo a mais¨.

Todos os monitores envolvidos consideram a experiência muito gratificante. Segundo um dos monitores, ¨a colaboração entre universidade e comunidade promovida pela extensão serve de estímulo tanto para o extensionista buscar, compreender e aplicar conhecimentos naquele domínio, quanto para o público alvo da ação, que nesse sentido objetiva desenvolver/aprimorar habilidades de resolução de problemas seguindo os moldes da Olimpíada Brasileira de Informática. O caráter prático e empírico do projeto de extensão proporciona ao extensionista a responsabilidade de contribuir ativamente junto às demandas da comunidade e a possibilidade de refinar a metodologia utilizada a fim de alcançar os objetivos da ação.¨

Quadro 1: Síntese dos treinamentos
Quadro 1: Síntese dos treinamentos
Fonte: Os Autores (2022).

Quadro 2: Equipe executora do projeto por ano
Quadro 2: Equipe executora do projeto por ano
Fonte: Os Autores (2022).

Considerações Finais

Os treinamentos foram realizados nas dependências do Decomp, no contraturno das aulas ou aos sábados, o que depende do comprometimento dos participantes em deslocar-se até o Campus Cedeteg. Portanto, a participação dos alunos do CEFCM nas atividades descritas foi significativa, considerando as dificuldades de locomoção e conflito de horários com outros compromissos. Outras atividades nos horários dos treinamentos é sempre apontada como a principal razão para a não participação ou desistência.

Nas poucas atividades que foram realizadas nas dependências do colégio, a equipe executora enfrentou dificuldades em relação à infraestrutura disponível, envolvendo softwares, internet e equipamentos. A equipe contou com a boa vontade dos professores do colégio que acompanharam as atividades e resolveram as pendências, mas, infelizmente, essas questões comprometem o desenvolvimento das atividades, tornando-as lentas, e dificultando ainda mais o envolvimento de alguns alunos.

No início de cada período de treinamento, o desafio é contextualizar os participantes com os conceitos de programação competitiva. Embora os alunos compreendam a lógica para resolver o problema, deparam-se com a dificuldade em compreender as exigências quanto ao formato de entrada e saída dos dados e ao sistema de julgamento automático. Nesse sentido, a adoção da plataforma URI (agora Beecrowd) foi uma mudança importante nos treinamentos, pois a dinâmica de testar a solução contribui para que os treinandos se adaptem mais rapidamente às restrições do formato. De modo geral, os participantes se adaptaram muito bem à plataforma, sendo que alguns passaram a resolver muitos outros problemas disponíveis.

Os participantes apresentam dificuldades conceituais, que comprometem o desenvolvimento das atividades. A carga horária reduzida e a linguagem abordada na disciplina de programação no curso técnico são aspectos importantes nesse contexto. No entanto, é perceptível o ganho daqueles que se engajam, que agradecem com frequência à equipe do projeto pelo apoio, disponibilidade e incentivo.

Os feedbacks obtidos, quer sejam por meios estruturados de avaliação, quer seja pelo contato com os participantes, demonstra a satisfação com o projeto, tanto em relação à adequação dos métodos e materiais utilizados quanto às melhorias em suas habilidades em lógica e programação de computadores. Portanto, ao contribuir com a formação técnica dos envolvidos, o projeto atende o objetivo da extensão universitária, na linha de educação de qualidade.

Sob o ponto de vista das diretrizes extensionistas (PROEX, 2012), o projeto cumpre seu papel, pois contempla a interação dialógica e a transformação social, por estar em contato com a coordenação e os alunos do curso técnico, buscando atender demandas de formação complementar, compartilhando conhecimentos técnicos com a comunidade externa; a indissociabilidade ensino-pesquisa-extensão, pois requer constante atualização com relação aos métodos e conteúdos utilizados; o impacto na formação acadêmica, a interdisciplinaridade e a interprofissionalidade, pois possibilita a complementação da formação dos discentes envolvidos, que atuam propositivamente na elaboração e execução das ações, estando em contato com a comunidade e realizando práticas que requerem habilidades didático-pedagógicas distintas daquelas da área de formação de bacharel.

No contexto das atividades do projeto, há diversas possibilidades para contemplar ações de curricularização da extensão, que deverão ser implantadas no curso, a partir de 2023. Os discentes, em contato com os alunos do curso técnico e enfrentando eventuais dificuldades nos treinamentos, encontram oportunidades de identificar demandas e propor novos projetos ou ações, sendo protagonistas desse processo. Essas ações serão contempladas no Currículo Pleno do Bacharelado em Ciência da Computação como “outros componentes curriculares”, ou seja, não vinculadas a disciplinas.

Ainda, o projeto busca aproximar os estudantes do ensino médio do espaço universitário, despertando a possibilidade de ingressar na universidade. Destaca-se que o projeto iniciou para atender a uma demanda apontada pela coordenadora do curso: a necessidade de melhorar a qualificação dos seus alunos para a OBI. Mas, além disso, os participantes percebem ganhos em sua formação quanto à resolução de problemas e programação de computadores.

A pedido da coordenação do curso técnico, foram também iniciadas atividades de apoio em programação de computadores e matemática para os alunos do segundo ano do curso técnico, que estavam com defasagem de aprendizado nesses conteúdos (notadamente devido ao período de atividades remotas durante a pandemia). Paralelamente, está sendo iniciado o treinamento para a OBI do próximo ano, com os alunos do 2º ano interessados.

Agradecimentos

Os autores agradecem à Fundação Araucária as bolsas de iniciação à extensão universitária, por meio do Programa Institucional de Apoio a Inclusão Social – Pesquisa e Extensão (PIBIS) e do Programa Institucional de Bolsas de Extensão (PIBEX) da Unicentro.

Referências

AREFIN, A. S. Art of Programming Contest, 2ª edição. Bangladesh: Gyankosh Prokashoni, 2006.

BEECROWD. Beecrowd, 2021. Página inicial. Disponível em: https://www.beecrowd.com.br/judge/pt. Acesso em: 20 set. 2022.

FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de programação: a construção de algoritmos e estrutura de dados, 4ª edição. Porto Alegre: Bookman, 2022.

GARDIN, H.; URTADO, J. V. M.; PRESTES, M. A.; PIEKARSKI, A. E. T.; MIAZAKI, M., Quizz como Ferramenta de Avaliação nos Treinamentos de Programação de Computadores para o Ensino Técnico. In: VI Semana de Integração Ensino, Pesquisa e Extensão - SIEPE, 2019, Guarapuava. Anais do 12º Encontro Anual de Extensão e Cultura, EAEX. Guarapuava: Unicentro, 2019.

LAAKSONEN, A. Guide to Competitive Programming: Learning and Improving Algorithms Through Contests, 1ª edição. Finland, 2018.

MANZANO, J. A. N. G; OLIVEIRA, J. F. de. Algoritmos: lógica para desenvolvimento de programação de computadores. São Paulo: Érica, 2016.

MICROSOFT. Visual Studio Code, 2022. Página inicial. Disponível em: https://code.visualstudio.com. Acesso em: 3 out. 2022.

MILITÃO, E. P.; SILVA, J. V. P.; ROCHA JUNIOR, A. L.; PIEKARSKI, A. E. T.; MIAZAKI, M. Oficinas Remotas com a Plataforma Code.org para o Ensino Técnico em Informática. In: XIV EAEX - Encontro Anual de Extensão da UNICENTRO, 2021, Online. Anais…, 2021.

MINISTÉRIO DA EDUCAÇÃO. Câmara de Educação Superior do Conselho Nacional de Educação. Resolução nº 7/2018, de 18 de dezembro de 2018. Estabelece as Diretrizes para a Extensão na Educação Superior Brasileira e regimenta o disposto na Meta 12.7 da Lei nº 13.005/2014, que aprova o Plano Nacional de Educação - PNE 2014-2024 e dá outras providências. Brasília: Ministério da Educação, 2018. Disponível em: https://normativasconselhos.mec.gov.br/normativa/view/CNE_RES_CNECESN72018.pdf. Acesso em: 17 jun. 2023.

OBI. Olimpíada Brasileira de Informática. Disponível em: https://olimpiada.ic.unicamp.br. Acesso em: 20 de set. 2022.

ONLINEGDB. OnlineGDB, c2016. Página inicial. Disponível em: https://www.onlinegdb.com. Acesso em: 20 set. 2022.

PADILHA, L.; DIDUR, L. F.; HILD, T. A.; MIAZAKI, M.; PIEKARSKI, A. E. T., Plataforma de apoio ao treinamento para a Olimpíada Brasileira de Informática. In: IX Salão de Extensão e Cultura, 2016, Guarapuava. Anais…, 2016. v. 5.

PIEKARSKI, A. E. T.; HILD, T. A.; MIAZAKI, M.; BINI, E. M.; GARDIN, H.; URTADO, J. V. M.; PRESTES, M. A. Programação de computadores no ensino médio: o estímulo da Olimpíada Brasileira de Informática. In: 8º Congresso Brasileiro de Extensão Universitária, 2018, Natal. Anais… Natal: SEDIS-UFRN, 2018a. v. 2. p. 4679-4695.

PIEKARSKI, A. E. T.; HILD, T. A.; MIAZAKI, M.; GARDIN, H.; URTADO, J. V. M.; PRESTES, M. A. Extensão para os cursos Ténicos de Informática em Guarapuava/PR: O caso das oficinas de Greenfoot. In: 8º Congresso Brasileiro de Extensão Universitária, 2018, Natal. Anais… Natal: SEDIS-UFRN, 2018b. v. 2. p. 2416-2429.

PIEKARSKI, A. E. T.; MIAZAKI, M.; HILD, T. A.; BINI, E. M. Smart-me: Disseminação e Uso de TICs (Tecnologias da Informação e Comunicação). In: IX Salão de Extensão e Cultura, 2016, Guarapuava. Anais…, 2016. v. 5.

PRESTES, M. A.; GARDIN, H.; URTADO, J. V. M.; PIEKARSKI, A. E. T.; MIAZAKI, M. Oficinas de Greenfoot no Ensino Técnico de Informática. In: VI Semana de Integração Ensino, Pesquisa e Extensão – SIEPE, 2019, Guarapuava. Anais do 12º Encontro Anual de Extensão e Cultura, EAEX. Guarapuava: Unicentro, 2019.

PRESTES, M. A.; ROCHA JUNIOR, A. L.; PIEKARSKI, A. E. T.; MIAZAKI, M. Programação em Blocos: A Experiência do Projeto “Treinamento em Lógica e Programação de Computadores”. In: XIII EAEX - Encontro Anual de Extensão da UNICENTRO, 2020, Online. Anais…, 2020. v. 3.

PROEX. Política Nacional de Extensão Universitária, 2012. Página Dísponivel em: https://proex.ufsc.br/files/2016/04/Política-Nacional-de-Extensão-Universitária-e-book.pdf. Acesso em: 13 nov. 2022.

ROCHA JUNIOR, A. L.; MILITÃO, E. P.; SILVA, J. V. P.; PIEKARSKI, A. E. T.; MIAZAKI, M. Proposta de Oficina de Desenvolvimento Web com Python para o Ensino Técnico em Informática. In: XIV EAEX - Encon- tro Anual de Extensão da UNICENTRO, 2021, Online. Anais…, 2021.

SKIENA, S.; REVILLA, M. Programming Challenges: The Programming Contest Training Manual. Texts in Computer Science. Springer, 2003.

SOFFNER, R. K. Algoritmos e Programação em Linguagem C. São Paulo: Editora Saraiva, 2013.

Notas

10 https://cpp.sh/
12 Os alunos tinham restrições quanto aos dispositivos disponíveis para a participação nas atividades remotas: a maior parte contava apenas com um celular, o que restringia a realização de tarefas que necessitam de ferramentas com mais requisitos mínimos.
13 Disponível em: https://e2pc.unicentro.br/. Acesso em: 13 nov. 2022.
HTML generado a partir de XML-JATS4R por