Pular para o conteúdo

A Universidade Estadual de San José, na Califórnia, Estados Unidos, ajuda os alunos a aprenderem sozinhos os conceitos básicos de programação

Com capacidade limitada de máquina virtual, o departamento de ciência da computação da Universidade Estadual de San José precisava ampliar os recursos para os alunos poderem fazer exercícios de programação ilimitados.

Quando os alunos estão aprendendo a programar em cursos introdutórios de ciência da computação, muitos têm dificuldade de aplicar os conceitos fundamentais. Cay Horstmann, professor de ciência da computação na Universidade Estadual de San José (SJSU, na sigla em inglês), queria ajudar os alunos a praticar programação por conta própria, para que pudessem melhorar as habilidades com mais rapidez. Infelizmente, como os problemas de codificação eram muitas vezes reutilizados ano após ano, os alunos conseguiam encontrar facilmente as soluções on-line. Cay precisava oferecer mais prática sem facilitar a visualização das respostas.

"No domingo à noite, quando os alunos estão fazendo o dever de casa, cerca de 20 máquinas virtuais estão em execução. Quando a carga de trabalho muda, as máquinas são automaticamente ativadas e desativadas."

Cay Horstmann, professora de ciência da computação, Universidade Estadual de San José

Treinamento prático e no mundo real para todos os alunos

Como os alunos de outras áreas, como biologia e direito, estão cada vez mais interessados em programação para ajudar nas pesquisas e aumentar a produtividade, a criação de um sistema de autoaprendizagem é essencial. A programação não é mais apenas para os futuros desenvolvedores.

Segundo Cay, "Os departamentos de ciência da computação precisam se preparar para atender à demanda da programação. Os alunos de outras áreas buscam aulas dessa disciplina para adquirir mais produtividade. Como há falta de instrutores na área, eles precisam conseguir aprender por conta própria".

Cay conheceu o programa Incentivos à educação do Google Cloud pelo SIGCSE (Grupo de interesse especial no ensino de ciência da computação) e se inscreveu para um incentivo à pesquisa e conseguir créditos do Google Cloud. Ele recebeu os créditos para usar em qualquer produto do Google Cloud e usou as ferramentas para desenvolver o CodeCheck, um autoavaliador com centenas de exercícios para os estudantes praticarem programação.

O CodeCheck é um programa baseado na Web, desenvolvido para ajudar a ensinar os alunos a programar em qualquer linguagem. Os professores podem personalizar os problemas de programação para que os alunos tenham que criar soluções próprias sem encontrar as respostas on-line. Como os servidores do departamento de ciência da computação já estavam trabalhando com capacidade máxima, Cay criou o CodeCheck usando o Google Compute Engine, máquinas virtuais com capacidade computacional ilimitada. Ele escolheu o Stackdriver para monitoramento, geração de registros e diagnóstico, e o Cloud SQL pela facilidade de uso e escalonabilidade.

Segundo Cay, "No domingo à noite, quando os alunos estão fazendo o dever de casa, cerca de 20 máquinas virtuais estão em execução. Quando a carga de trabalho muda, as máquinas são automaticamente ativadas e desativadas".

Agora, os professores de ciência da computação na SJSU podem usar ferramentas de computação em nuvem para ensinar programação sem se preocupar com a capacidade dos servidores da instituição. Dessa forma, é mais fácil acomodar um número maior de alunos, incluindo aqueles que não estudam ciência da computação. Eles aprendem sobre gerenciamento de sistema remoto, escalonamento de cargas de trabalho, geração de registros e implantação automatizada.

Incentivando os alunos a aprender por conta própria

O CodeCheck fornece aos alunos feedback em tempo real sobre a codificação, para que eles saibam imediatamente se a solução está correta ou não. O CodeCheck não informa aos alunos o que está errado: eles precisam descobrir sozinhos. No passado, os alunos só recebiam feedback sobre o trabalho semanas após a entrega e, muitas vezes, já haviam esquecido o processo que seguiram para chegar à resposta.

Resultados de pesquisas mostram que os alunos acham importante ter um recurso para prática on-line. Eles não ficam constrangidos se cometerem um erro e não se sentem pressionados a terminar em um prazo específico.

Segundo Cay, o CodeCheck também melhora a aprendizagem e o desempenho dos alunos nas provas. Em um curso sobre Java para alunos de outras graduações com dois grupos, o grupo que usou o CodeCheck apresentou desempenho 50% mais alto do que o grupo de controle. Em uma turma de linguagens de programação, o grupo que usou o CodeCheck pontuou 20% mais alto nas perguntas sobre programação em linguagem Scheme do que o grupo de controle. Para uma pergunta que não havia sido abordada nas questões sobre prática, os dois grupos tiveram a mesma pontuação. Em uma turma de linguagem C++ para alunos transferidos de outras instituições, onde todos precisavam resolver problemas de prática, o número médio de tentativas por problema caiu um terço entre o começo e o fim do curso, e o tempo médio de resolução caiu pela metade.

Ensino de programação para todos

Os alunos estão se tornando usuários nativos da nuvem, e as ferramentas educacionais precisam evoluir para atender tanto os alunos que estudam ciência da computação quanto os de outras graduações. Por exemplo, quando eles passam de problemas básicos baseados em imagens para a criação de loops, há um enorme salto conceitual, já que o loop precisa funcionar com todas as entradas de dados. Muitos alunos entendem o conceito, mas aplicá-lo é muito mais difícil. Depois que aprendem um padrão, eles começam a entender como aplicar o conceito ao código.

Com o autoavaliador, os alunos podem começar devagar, com cinco linhas de código. Quando eles precisarem escrever 200 linhas de código para uma tarefa em sala de aula, as cinco linhas podem parecer muito pouco, mas o objetivo é que eles aprendam em partes e, gradualmente, apliquem o que aprenderam às tarefas mais complexas.

Segundo Cay, "Programar é uma habilidade do século XXI para empresários, cientistas, advogados, jornalistas, para qualquer pessoa que trabalhe com dados. Se o modelo tradicional aula-laboratório-dever de casa gera muitos problemas com turmas de ciência da computação, esse modelo também não funcionará com os alunos de outras graduações. Por isso eu uso o método consagrado de repetição".

"Programar é uma habilidade do século XXI para empresários, cientistas, advogados, jornalistas, para qualquer pessoa que trabalhe com dados."

Cay Horstmann, professora de ciência da computação, Universidade Estadual de San José

Executando o autoavaliador com operações de back-end contínuas

O Stackdriver tem recursos avançados de monitoramento e diagnóstico que permitem que Cay solucione problemas e tenha certeza de que os alunos estão usando o autoavaliador corretamente. Por exemplo, se um aluno tentar executar um programa que apague outros programas ou que desligue a máquina, o autoavaliador bloqueia esse tipo de comando. No passado, Cay gastava horas depurando programas para descobrir a causa de um problema.

O objetivo principal do CodeCheck é diminuir as dificuldades para todos os alunos que querem praticar programação. Eles não precisam se inscrever ou fazer login para usar o autoavaliador. Os professores podem integrar o CodeCheck ao sistema de gerenciamento de aprendizagem. Os alunos trabalham diretamente no sistema, e o autoavaliador informa as pontuações deles. O Cloud SQL registra o tempo que o aluno trabalhou em uma tarefa e automaticamente faz backup disso. Com essa integração, os alunos podem clicar em "Registrar minha pontuação" para enviar uma tarefa, facilitando e agilizando o envio de programas para alunos e professores.

Segundo Cay, "Os departamentos de ciência da computação precisam se adaptar para que os alunos aprendam no próprio ritmo, já que a programação não é mais uma habilidade apenas de desenvolvedores, mas futuramente de todos. Com o CodeCheck, eles podem se desafiar a continuar aprendendo fora da sala de aula".

Inscreva-se aqui para receber atualizações, insights, recursos e muito mais.