• Nenhum resultado encontrado

numerico a, b, c

Inicio

Escrever “Digite o primeiro número” Ler a

Escrever “Digite o segundo número” Ler b Se a > b Entao c := a + b Senao c := a * b Fim_se Escrever c Fim

para a métrica quantidade de estruturas de repetição, verifica-se a quantidade de coman- dos Para-Proximo e Faca-Enquanto, e para a métrica quantidade de funções verifica-se a quantidade de comandos Funcao existentes no algoritmo.

O Algoritmo 5.4 , por exemplo, possui 1 (uma) estrutura condicional, 2 (duas) estruturas de repetição e 2 (duas) funções.

Algoritmo 5.4 Exemplo 4. Variaveis numerico a, b, c, x, y Funcao soma(a, b) Variaveis numerico c Inicio c := a + b Retornar c Fim Funcao subtracao(a, b) Variaveis numerico c Inicio c := a - b Retornar c Fim Inicio

Escrever “Digite o primeiro número” Ler a

Escrever “Digite o segundo número” Ler b

c := soma(a, b) x := 0 y := 0

Para x de 0 ate c Passo 1

y := y + c Proximo Escrever y Se a > b Entao c := subtracao(a, b) Senao c := subtracao(b, a) Fim_se x := 0 y := 0

Para x de 0 ate c Passo 1

y := y + c

Proximo Escrever y Fim

63

Na Tabela 5.1 estas métricas são apresentadas juntamente com uma pontuação correspon- dente à uma possível ocorrência de cada uma delas nos algoritmos submetidos pelos alunos. É importante deixar claro que estas pontuações são passíveis de flexibilização, ou seja, o professor tem autonomia para modificá-las de acordo com sua preferência. No entanto, a fim de explicar como os cálculos para a avaliação automática do fator Algoritmo são realizados, os valores contidos na Tabela 5.1 serão utilizados como exemplo deste ponto do trabalho em diante.

Tabela 5.1: Pontuação para a ocorrência de cada métrica.

Métrica Ponto

por Métrica

Quantidade de Linhas de Código 1 Quantidade de Variáveis Declaradas 2

Quantidade de Instruções 2

Quantidade de Estruturas Condicionais 3 Quantidade de Estruturas de Repetição 5

Quantidade de Funções 10

Fonte: Próprio autor.

Por exemplo, para cada linha de código, atribui-se 1 ponto. Desta forma, um algoritmo com 15 linhas receberá 15 pontos para a métrica quantidade de linhas de código.

Como já explicado anteriormente, nosso objetivo é comparar o algoritmo submetido pelo aluno com o algoritmo-resposta cadastrado na base de dados do AIIP pelo professor, considerado ideal para a resolução do problema em questão.

Assim, em uma situação onde o problema que o aluno resolveu com 15 linhas (15 pontos), o seu algoritmo-resposta cadastrado pelo professor possua 12 linhas (12 pontos), a métrica

quantidade de linhas de código receberia nota zero, pois a quantidade de linhas do algoritmo

do aluno não é igual à quantidade de linhas do algoritmo-resposta cadastrado pelo professor. Para evitar este tipo de problema, atribui-se a cada uma das métricas um intervalo de aceitação (Tabela 5.2).

Tabela 5.2: Intervalo de aceitação das métricas.

Métrica Intervalo

de Aceitação

Quantidade de Linhas de Código 20% Quantidade de Variáveis Declaradas 30%

Quantidade de Instruções 30%

Quantidade de Estruturas Condicionais 20% Quantidade de Estruturas de Repetição 30%

Quantidade de Funções 30%

Este intervalo de aceitação representa um percentual aceitável (para mais e para menos) para a pontuação de cada métrica da solução do aluno, quando comparadas à pontuação de cada métrica do algoritmo-resposta cadastrado pelo professor. Assim, se a pontuação da métrica do algoritmo do aluno encontrar-se dentro do intervalo de aceitação com relação à pontuação da métrica do algoritmo-resposta cadastrado, então a métrica da solução do aluno também pode ser considerada como correta. Assim como a pontuação de cada métrica, estes intervalos também são passíveis de flexibilização, podendo o professor modificá-los de acordo com sua preferência. No entanto, os valores contidos na Tabela 5.2 serão utilizados como exemplo deste ponto do trabalho em diante.

Desta forma, com relação ao exemplo anterior, aplicando o índice de aceitação de 20%, ou seja, se a solução do aluno possuir entre 9 e 15 pontos (neste caso, entre 9 e 15 linhas), pode-se então considerar que o aluno obteve êxito nesta métrica, uma vez que os 12 pontos estão dentro do intervalo de aceitação.

Para cada uma das métricas analisada também atribui-se um peso relacionado à sua importância na formação da nota final do algoritmo do aluno. Estes pesos, assim como os outros dois itens (Pontuação e Intervalo de Aceitação), também são passíveis de flexibilização. No entanto, a fim de explicar os cálculos realizados, os pesos apresentados na Tabela 5.3 serão utilizados como exemplo deste ponto do trabalho em diante.

Tabela 5.3: Peso das métricas no código para a nota final.

Métrica Peso na

Nota Final

Quantidade de Linhas de Código 5% Quantidade de Variáveis Declaradas 10%

Quantidade de Instruções 10%

Quantidade de Estruturas Condicionais 30% Quantidade de Estruturas de Repetição 20%

Quantidade de Funções 25%

Total 100%

Fonte: Próprio autor.

Assim, seguindo ainda o exemplo anterior, observa-se que o peso da métrica quantidade

de linhas de código na atribuição da nota para o algoritmo do aluno representa 5% (ou 0,5

ponto, considerando-se uma nota de 0 a 10). Desta forma, caso o assistente inteligente identifique que para esta métrica o aluno obteve êxito, então a nota máxima para esta métrica é atribuída, neste caso, 0,50 ponto. Caso o assistente identifique no algoritmo do aluno que a pontuação de alguma das métricas não está dentro do intervalo de aceitação, então um cálculo é realizado para a atribuição de uma nota equivalente para a métrica.

Caso a pontuação de uma métrica seja menor que a pontuação mínima aceitável, a nota para esta métrica deve ser calculada da seguinte forma: sua pontuação multiplicada por 10 e

65

dividida pela pontuação mínima aceitável para esta métrica no algoritmo-resposta, com o resultado desta operação multiplicado pelo peso da métrica, conforme pode-se observar na Equação 5.1, onde:

N: nota final da métrica.

P: pontuação da métrica obtida com relação ao código do aluno.

Pmin: pontuação mínima aceitável para esta métrica com relação ao algoritmo-resposta. p: peso da métrica para a atribuição da nota final do algoritmo.

N =

µ

10P

P mi n

p

(5.1)

Caso a pontuação da métrica seja maior que a pontuação máxima aceitável, a nota para esta métrica deve ser calculada da seguinte forma: sua pontuação multiplicada por 10 e dividida pela pontuação máxima aceitável para esta métrica no algoritmo-resposta, subtraindo de 20 o resultado encontrado e depois multiplicando o resultado pelo peso da métrica, conforme mostra a Equação 5.2, onde:

N: nota final da métrica.

P: pontuação da métrica obtida com relação ao algoritmo do aluno.

Pmax: pontuação máxima aceitável para esta métrica com relação ao algoritmo-resposta. p: peso da métrica para a atribuição da nota final do algoritmo.

N =

µ

20 −

10P

P max

p

(5.2)

A subtração por 20 significa que se a pontuação de uma métrica do código do aluno for igual ou maior do que o dobro da pontuação máxima aceitável, a métrica do algoritmo do aluno receberá pontuação zero. Desta forma, se a pontuação da métrica do algoritmo do aluno for maior do que a pontuação máxima aceitável e menor do que o dobro da pontuação máxima aceitável, esta métrica receberá uma pontuação equivalente, que será multiplicada pelo peso da métrica. Será apresentado agora um exemplo prático do funcionamento deste esquema de avaliação automática em função das métricas pré-estabelecidas. Um problema armazenado na base de dados do AIIP (Problema X), e uma suposta solução desenvolvida por um aluno para o problema em questão serão utilizados. Os dados referentes ao problema são:

Enunciado: “O preço de um automóvel é calculado pela soma do preço de fábrica com o preço

dos impostos (45% do preço de fábrica) e a percentagem do revendedor (25% do preço de fábrica). Faça um algoritmo que leia o nome do automóvel e o preço de fábrica e imprima o nome do automóvel e o preço final.”

Algoritmo-Resposta: