• Nenhum resultado encontrado

Um estudo sobre o uso do mecanismo de dicas no ensino de conceitos básicos de programação

N/A
N/A
Protected

Academic year: 2021

Share "Um estudo sobre o uso do mecanismo de dicas no ensino de conceitos básicos de programação"

Copied!
58
0
0

Texto

(1)

UNIVERSIDADE

TECNOLÓGICA

FEDERAL

DO

PARANÁ

DEPARTAMENTO

ACADÊMICO

DE

COMPUTAÇÃO

CURSO

DE

BACHARELADO

EM

CIÊNCIA

DA

COMPUTAÇÃO

GUSTAVO

CORREIA

GONZALEZ

UM

ESTUDO

SOBRE

O

USO

DO

MECANISMO

DE

DICAS

NO

ENSINO

DE

CONCEITOS

BÁSICOS

DE

PROGRAMAÇÃO

MONOGRAFIA

CAMPO

MOURÃO

(2)

UM

ESTUDO

SOBRE

O

USO

DO

MECANISMO

DE

DICAS

NO

ENSINO

DE

CONCEITOS

BÁSICOS

DE

PROGRAMAÇÃO

TrabalhodeConclusãodeCursodegraduaçãoapresentado

à disciplina de Trabalho de Conclusão de Curso 2, do

Curso de Bacharelado em Ciência da Computação do

DepartamentoAcadêmicodeComputaçãodaUniversidade

TecnológicaFederaldoParaná,comorequisitoparcialpara

obtençãodotítulodeBacharelemCiênciadaComputação.

Orientador: Prof.Dr.MarcoAurélioGraciottoSilva

Coorientador: Prof.Dr.IgorScalianteWiese

CAMPOMOURÃO

(3)

Ministério da Educação

Universidade Tecnológica Federal do Paraná Câmpus Campo Mourão

Curso de Bacharelado em Ciência da Computação

ATA DE DEFESA DO TRABALHO DE CONCLUSÃO DE CURSO

Às 19:30 do dia 23 de novembro de 2017 foi realizada na sala E103 da UTFPR-CM a sessão

pública da defesa do Trabalho de Conclusão do Curso de Bacharelado em Ciência da Computação do(a)

acadêmico(a) Gustavo Correia Gonzalez com o título Um Estudo Sobre o Uso do Mecanismo

de Dicas no Ensino de Conceitos Básicos de Programação. Estavam presentes, além do(a)

aca-dêmico(a), os membros da banca examinadora composta por: Prof. Dr. Marco Aurélio Graciotto

Silva (orientador), Prof. Dr. Igor Scaliante Wiese, Prof. Dr. Rafael Liberato Roberto e

Prof. Dr. Marcos Silvano Orita Almeida. Inicialmente, o(a) acadêmico(a) fez a apresentação do

seu trabalho, sendo, em seguida, arguido(a) pela banca examinadora. Após as arguições, sem a presença

do(a) acadêmico(a), a banca examinadora o(a) considerou na disciplina de Trabalho de

Conclusão de Curso 2 e atribuiu, em consenso, a nota ( ). Este resultado

foi comunicado ao(à) acadêmico(a) e aos presentes na sessão pública. A banca examinadora também

comunicou ao acadêmico(a) que este resultado fica condicionado à entrega da versão final dentro dos

padrões e da documentação exigida pela UTFPR ao professor Responsável do TCC no prazo de onze

dias. Em seguida foi encerrada a sessão e, para constar, foi lavrada a presente Ata que segue assinada

pelos membros da banca examinadora, após lida e considerada conforme.

Observações:

Campo Mourão, 23 de novembro de 2017

Prof. Dr. Igor Scaliante Wiese Prof. Dr. Rafael Liberato Roberto

Membro 1 Membro 2

Prof. Dr. Marcos Silvano Orita Almeida

Prof. Dr. Marco Aurélio Graciotto Silva

Membro 3 Orientador

A ata de defesa assinada encontra-se na coordenação do curso.

Câmpus Campo Mourão Via Rosalina Maria do Santos, 1233 CEP 87301-899 Caixa Postal: 271 Campo Mourão - PR - Brasil

(4)

Agradeçoprimeiramenteaomeuorientador,oProf.Dr. MarcoAurélio,pelaorientação,apoioe

empenho.Agradecimentostambémaocoorientador,Prof.Dr. IgorWiese,pelasreuniõesiniciais

paraaelaboraçãodestetrabalhoesuaorientaçãonoTCC1,juntocomoProf.Dr.MarcoAurélio

queeraocoorientador.

Meus agradecimentosaos amigos JoãoMartins, Felipe Fronchetti e Vinicius Morais,

companheirosdetrabalhosedegrandesdebatespararesolverastarefasdauniversidade,sendo

irmãosnaamizadequefizerampartedaminhaformação.

AgradeçoaosmeuspaisEstabaneAngela,peloamor,carinhoepaciêncianessesanos

queestiveforadecasa. Pornãomediremesforçosparaqueeupudesselevarmeusestudosadiante

epelaconfiançaquetiveramaopermitircursarumauniversidadetãodistante.Agradecimentos

aomeuirmãoGuilherme,quesempremeapoiouedivertiuemmomentosdifíceis.

Porfim,meuseternosagradecimentosaIsabele,minhanamorada.Porestarsempreao

meu lado,meapoiare animaremtodasas dificuldadesdessesanos. Agradeço aDeus porter

colocadonomeucaminhoumamulhertãoespecialqueamomuitoepordarforçasparaenfrentar

(5)

Resumo

Gonzalez,Gustavo.UmEstudoSobreoUsodoMecanismodeDicasnoEnsinodeConceitosBásicos

de Programação. 2017. 56. f. Monografia(Cursode BachareladoemCiênciadaComputação),

UniversidadeTecnológicaFederaldoParaná.CampoMourão,2017.

Contexto:Oelevadoníveldereprovaçãoemdisciplinasemquesãoensinadosconceitosbásicos

de programação,emqualquer graudeensino,é umproblemaenfrentadopormuitosalunos e

tem sidoalvodeváriaspesquisas. Existeumconjuntoderazõesqueestãorelacionadascom a

origemdoproblema,comoométododeensinoeaprendizagem,afaltadealgumascompetênciase

interesseporpartedosalunos,eaprópriadificuldadedotema. Paratrataresseproblema,sistemas

queauxiliamoaprendizadocomdicasvêmsendoutilizadosparaajudarosalunosnarealização

deexercícios.

Objetivo: Oobjetivodestetrabalhofoidesenvolverumsistemadedicasdecódigoabertopara

auxiliarosalunosnaaprendizagemdeconceitosbásicosdeprogramação,maisespecificamente

nostópicosdeestruturadecondiçãoelaçoderepetição.

Método:OsistemadedicasfoidesenvolvidocomoframeworkdedesenvolvimentoLaravel.Ele

foi avaliadoemum estudo com alunose profissionais daáreadaComputaçãoa partir de um

conjuntodeexercíciospreviamentedefinidos.Oestudofoidivididoem3etapas,sendoàsduas

primeirasdestinadasaopreenchimentodabasededicasdosistema.Nessasetapas,participaram

alunosquejárealizaramasmatériasdealgoritmoseestruturasdedadoseprofissionaisdaáreade

Computação.Naterceiraetapadoestudo,alunosdoprimeiroperíodoutilizaramosistemapara

resoluçãodeexercícioscomauxíliodasdicaspreviamentecadastradas.Apósarealizaçãodestas

etapas,pormeiodosdadoscapturadosnassubmissões,foramextraídasasmedidasreferentesaos

códigoseutilizaçãodasdicaspararesoluçãodosexercícios.Osalunosdaterceiraetapatambém

responderamumquestionáriosobreousodaferramenta.

Resultados: Foramcriadas79dicase realizadas243submissões noestudo. Considerando os

participantes daterceira etapa do estudo, observam-se indícios de queas dicasforamúteis à

resoluçãodosprimeirosexercícios.Osresultadosdoquestionárioindicamqueaexperiênciada

utilizaçãodosistemadedicasfoipositivaequeasdicasforamúteisparaodesenvolvimentodos

exercícios. Noentanto,aquantidadedeparticipanteseexercíciosresolvidosparaaúltimaetapa

(6)

características e avaliando-o com alunos e profissionais da áreade Computação. Apartir da

avaliaçãorealizadaapósaaplicaçãodoestudo,foipossívelidentificarindíciosdequeautilização

do mecanismode dicasajudaram os alunos naresolução de exercícioque abordamconceitos

básicosdeprogramação.

(7)

Abstract

Gonzalez,Gustavo.AStudyontheUseoftheMechanismofHintsforTeachingBasicProgramming

Concepts. 2017. 56. f. Monograph (Undergradute Program in Computer Science), Federal

UniversityofTechnology–Paraná.CampoMourão,PR,Brazil,2017.

Context:Thehighlevelofreprobationinsubjectswherebasicprogrammingconceptsaretaught

atanylevelofeducationisaproblemfacedbymanystudentsandhasbeenthesubjectofanumber

ofresearches.Thereareanumberofreasonsthatarerelatedtotheoriginoftheproblem,suchas

theteachingandlearningmethod,thelackofsomeskillsandinterestonthepartofthestudents,

andthedifficultyofthesubjectitself. Toaddressthisproblem,systems thataidlearningwith

hintsarebeingusedtohelpstudentsperformexercises.

Objective: Theobjectiveofthisworkwastodevelopanopensourcehintssystemtohelpstudents

learnbasicprogrammingconcepts,morespecificallyonconditionstructureandlooprepetition

topics.

Method:Thehintssystem,callediHint,wasdevelopedwiththeLaraveldevelopmentframework.

ItwasevaluatedinastudywithstudentsandprofessionalsoftheComputingareafromasetof

previouslydefinedexercises. Thestudywasdividedin3stages,beingthefirsttwodestinedtofill

thebaseofhintsofthesystem.Inthesestages,studentswhoalreadydidthesubjectsofalgorithms

anddatastructuresandprofessionalsoftheComputingareaparticipated.Inthethirdstageof

thestudy, studentsof thefirstperiod usedthe systemtosolve exercisesusing thepreviously

registeredhints.Aftercompletingthesesteps,throughthedatacapturedinthesubmissions,the

measuresrelatedtothecodesandtheuseofthehintsforresolvingtheexerciseswereextracted.

Thethirdstagestudentsalsoansweredaquestionnaireabouttheuseofthetool.

Results: 79hintswerecreated and243submissionsweremadeinthestudy. Consideringthe

participantsof thethirdstageofthestudy, thereareindications thatthehintswereuseful to

solvethefirstexercises.Theresultsofthequestionnaireindicatethattheexperienceofusingthe

systemofhintswaspositiveandthatthehintswereusefulforthedevelopmentoftheexercises.

However,thenumberofparticipantsandexercisessolvedforthelaststageofthestudydoesnot

allowamorerigorousevaluationoftheresultsandthetool.

Conclusions:Inthiswork,asystemofhintswasdeveloped,reportingitsmaincharacteristics

andevaluatingitwithstudentsandprofessionalsoftheComputing area.Fromtheevaluation

(8)

conceptsofprogramming.

(9)

Lista

de

figuras

3.1 Visãogeraldosistemadedicas. . . 19

3.2 RepositoryPattern. . . 21

3.3 ExemplodeSaídaGeradaPeloCCCC. . . 24

3.4 Visãogeraldosistemadedicas. . . 25

3.5 AcessodoAdministrador. . . 26 3.6 AcessodoAluno. . . 26 3.7 CadastrodoAdministrador.. . . 27 3.8 CadastrodoAluno. . . 27 3.9 DashboarddoAdministrador. . . 28 3.10 DashboarddoAluno. . . 28 3.11 ListadeUsuários. . . 29 3.12 ExercíciosCadastrados. . . 29 3.13 CadastrodeExercício. . . 30

3.14 ListasdeExercíciosCadastradas. . . 30

3.15 CadastrarLista. . . 31 3.16 ListadeRespostas.. . . 32 3.17 ListadeExercícios. . . 33 3.18 RealizarExercício. . . 33 3.19 CadastrarDica. . . 34 3.20 UtilizaraDica. . . 35

4.1 FluxoparaCriaçãodasDicas. . . 41

4.2 VisãoGeraldasSubmissõesRealizadas. . . 42

4.3 SubmissõesporEtapasdoEstudo. . . 43

4.4 SubmissõesCertaseErradasporEtapa. . . 44

4.5 SubmissõesErradasnasEtapas. . . 45

4.6 DicasUtilizadaspelosUsuários. . . 46

4.7 DicasUtilizadasnoPrimeiroExercício. . . 46

(10)

3.1 TabelasGeradaspeloCCCC . . . 22

3.2 MedidasExibidasnaAnálise . . . 23

4.1 VoluntáriosdoEstudo. . . 39

4.2 DicasCriadasporEtapa. . . 41

4.3 DicasCriadasporExercício. . . 42

(11)

Sumário

1 Introdução 11

2 ReferencialTeórico 13

2.1 SistemasdedicasparaáreasdistintasdeProgramação . . . 13

2.2 SistemasdedicasparaoensinodeProgramação . . . 15

2.3 ConsideraçõesFinais . . . 16 3 SistemadeDicas 18 3.1 Tecnologias . . . 18 3.1.1 LinguagemPHP . . . 18 3.1.2 MVCeArquitetura . . . 19 3.1.3 Framework. . . 20 3.1.4 FrameworkLaravel . . . 20

3.1.5 RepositoryDesignPattern. . . 21

3.1.6 GerenciadordeDependências . . . 21

3.1.7 Ferramentaparaextraçãodemedidas. . . 22

3.2 Implementação . . . 24

3.2.1 AtividadesdoAdministrador . . . 28

3.2.2 AtividadesdoAluno . . . 32

3.2.3 ExemplodeCódigo . . . 35

3.3 ConsideraçõesFinais . . . 38

4 Estudo,ResultadoseDiscussão 39 4.1 Estudo . . . 39 4.2 Resultados . . . 41 4.2.1 SubmissõesRealizadas . . . 43 4.2.2 SubmissõesErradas. . . 44 4.2.3 DicasUtilizadas . . . 45 4.2.4 MedidasdoCódigo . . . 47 4.2.5 Questionário . . . 48 4.3 AmeaçasaValidade . . . 48

(12)

Referências 52

Apêndices 54

A TermodeConsentimento 55

(13)

Capítulo

1

Introdução

O ensino de linguagens de programação visapropiciar aosalunos o desenvolvimento de um

conjuntodecompetênciasnecessáriasparaconceberprogramasesistemascomputacionaiscapazes

deresolverproblemasreais. Areprovaçãodosestudantesemdisciplinasdeprogramaçãoéum

temaquetemsidoalvodealgunsestudos(BOSSE;GEROSA,2015;CUKIERMAN,2015).

O problema do insucesso é evidenciado por Lahtinen et al. (2005), que realizaram

uma pesquisa com diferentes universidadespara estudar as dificuldades na aprendizagemde

programação.Comoresultado,foipercebidoqueasquestõesmaisdifíceisnaprogramaçãosão: a

compreensãodecomoprojetarumprogramapararesolverumatarefadeterminada;dividiras

funcionalidadesemprocedimentos;eencontrarerrosdeseusprópriosprogramas.

Estasdificuldadescontribuem paraobaixorendimentodosalunos nasdisciplinasde

programação.Porissoospesquisadoresestãoutilizandováriosmétodosesoftwaresparaminimizar

esseproblema.Portanto,autilizaçãodesistemasdedicas,tutoresinteligenteseferramentasde

apoioaosalunosestãosendoaplicadosemváriasescolaseuniversidades.

Opresentetrabalhofocaemsistemasdedicas,noqualéreproduzidoocontatoqueo

alunoteriacomumapessoamaisinstruídaquandoprecisatirarumadúvidaoupedirumauxílio

pararealizarumexercício.

Observa-se,naliteratura,queamaioriadaspesquisasapresentasoluçõesquesebaseiam

na utilizaçãode inteligência artificial ou a interferência dosprofessores na criação dasdicas

(ELKHERJ;FREUND,2014;RAZZAQ;HEFFERNAN,2010;PRICE,2015;ANTONUCCIetal.,2015;

PAQUETTEetal.,2012). Porexemplo,comanecessidadede proverumsuportepersonalizado

aosalunos,ElkherjeFreund(2014)criaramumsistemadedicasquepermiteaoprofessorenviar

umadicapersonalizadaapós verificarqueoaluno realizouváriastentativas pararesolverum

exercício.Entretanto,comoaumentodonúmerodealunosutilizandoosistema,osprofessores

nãoconseguemoferecersuporteatodoseles.Assim,utilizaçãodessaabordagemnaconstruçãodo

sistemadedicasapresentalimitaçõesemrelaçãoàquantidadedealunosrealizandoosexercícios.

(14)

O objetivo desse trabalho foi criar um software de código aberto para auxiliar na

aprendizagemdeconceitosbásicosdeprogramação,implementandoumsistemacolaborativode

dicasescritaspelosprópriosusuários.

Esteestudoaplicouomecanismodedicasparaqueapenasosalunosestejamenvolvidos

na criação das dicas, assim possibilitando maior aprendizado do conteúdo dos exercícios. O

métodoaplicadoparaaimplementaçãodosistemaéolearnersourcingapresentadoporGlassman

et al. (2016), que gerencia as atividades dos alunos por meio de uma interface que coleta os

dadosdeaprendizagemdosusuários,suasavaliaçõesdeexplicaçõeseelicitaageraçãodenovas

respostasparafuturosalunos.Destaforma,osalunospodem,mediantedesuaprópriaexperiência

resolvendoexercícios,criardicasúteisdeacordocomimplementações,gerandosugestõespara

colegascombaseemseuconhecimento.

Paraavaliarosistemadedicas,foirealizadoumestudoorganizadoem3etapas,

aplicando-se7exercíciosdeprogramaçãonalinguagemCabordandoestruturadecondiçãoelaçoderepetição.

Sendo assim,a primeiraetapa foirealizadacomalunos experientesdagraduaçãodo cursode

BachareladoemCiênciadaComputação(BCC)daUniversidadeTecnológicaFederaldoParaná

nocampusCampoMourão(UTFPR-CM),visandoopreenchimentodabasededicasdosistema.

Asegundaetapatambém teveo objetivode preenchera basede dicas,masfoirealizadocom

profissionaisdaáreadaComputação.Posteriormente,aterceiraetapafoirealizadacomosalunos

doprimeirosemestredocursodeBCCdaUTFPR-CM,queutilizaramosistemacomoauxíliodas

dicascriadasnosestudosanteriores. Nessaetapa,osalunostambémrealizaramacriaçãodedicas

conformeaprimeiraesegundaetapadoestudo.Pararealizaraavaliaçãodaferramenta,foram

utilizadosdadosreferentesàssubmissõesdosalunosdaterceiraetapaequestionáriorespondido

poressesalunos.

Os próximoscapítulos estão organizadosda seguinteforma. O Capítulo 2apresenta

o referencial teórico e os trabalhos relacionados. O Capítulo 3 apresenta o sistema de dicas

desenvolvidonestetrabalho. OCapítulo4apresentaoestudoexecutadoparaavaliaraabordagem

proposta,osresultadosobtidoserespectivadiscussão.Porfim,oCapítulo5apresentaaconclusão

(15)

Capítulo

2

Referencial

Teórico

Nestecapítuloapresentamosumarevisãodaliteraturademodoafundamentaraconstruçãodeste

trabalho. ASeção2.1tratasobreossistemasdedicasaplicadosemáreasdistintasdoconhecimento.

Porfim,naSeção2.2sãoapresentadosostrabalhossobreaaplicaçãodosistemadedicasparao

ensinodeprogramação.

2.1.

Sistemas

de

dicas

para

áreas

distintas

de

Programação

Esta seção aborda sobre sistema de dicas que estão sendo desenvolvidos em outros âmbitos

educacionais,nosquaisospesquisadoresestãoutilizandorecursoscomputacionaisparamelhorar

oaprendizadodealunos.

Elkherje Freund(2014)apontamqueas sugestõesquesãoapresentadaspelosistema

de aprendizagemsemoalunorequisitareantesquerealizeastentativas,nãodependendodas

tentativas malsucedidas queo estudante tenharealizado, limitam severamentea eficáciadas

sugestões.

Destaforma,elesdesenvolveramumsistemaalternativoparadardicasaosestudantes.A

principaldiferençaéque,aoinvésdeapenasapresentarasdicasparaosalunos,osistemapermite

queuminstrutorenvieumadicaparaumestudanteapósesteterfeitováriastentativasfalhaspara

resolveroproblema. Depoisdeanalisaroserrosdoaluno,oinstrutorémaiscapazdeentendero

problemanopensamentodoalunoeenviarumadicamaisútil.Osistemafoiimplantadoemum

cursodeprobabilidadeeestatísticacom176alunos,obtendofeedbackmuitopositivodosalunos.

Noentanto,umdesafioqueosautoresenfrentaramfoicomoescalarefetivamenteosistemade

formaquetodososalunosqueprecisamdeajudaobtenhamdicaseficazes.Atualmente,comuma

grandequantidadedealunos,ficariaexaustivoparaosinstrutoresavaliaremcadasubmissãodos

exercíciosdecadaalunopararetornaremumadicaespecíficadoerrocometido.Entãoelescriaram

(16)

umbancodedadosdedicaquepermitequeosinstrutoresreutilizem,compartilhememelhorema

partirdesugestõesescritasanteriormente.

Cumminsetal.(2016)investigaramousodedicaspara4,652usuáriosqualificadosem

umambientedeaprendizagemon-linedegrandeescalachamadoIsaac,quepermiteaosusuários

responderaperguntasdeFísicacomatécincodicas.Foiinvestigadoocomportamentodousuárioao

usardicas,engajamentodosusuárioscomdesvanecimento(oprocessodetornar-segradualmente

menosdependentesdasdicasfornecidas)eestratégiasdedicasincluindodecomposição,correção,

verificaçãooucomparação. Comoresultadosobtidos,osalunosapresentaramestratégiasparaas

resoluçõesdosexercícios,sendoamaiscomuméveroconceitodadicapararealizaradecomposição

doproblemae,emseguida,enviarumarespostacorreta.Aoutraestratégiaéusarosconceitosda

dicaparadeterminarseaperguntapodeserrespondida.Noentanto,umagrandeproporçãodos

usuáriosqueutilizaramessaestratégiaacabounãotentandoresponderapergunta.

Razzaq e Heffernan (2010) realizaram uma pesquisa para avaliar a melhor formade

apresentarasdicasparaosestudantes.Existemmuitossistemasquepermitemaosalunospedir

sugestõesquandoprecisamdeassistênciapararesolverproblemas,masmuitosalunosapresentam

dificuldades emsaberquandopedir umadica. Então os pesquisadoresavaliaramse é melhor

darumadicaquandoumalunocometeumerroouesperaratéqueoalunopeçaumadica. Foi

utilizadooAssessmentSystemqueéusadoprincipalmenteporprofessoresdoensinomédioem

Massachusetts queestãopreparandoestudantesparaotestedoSistemadeAvaliaçãoIntegralde

Massachusetts(MCAS).Essesistemaéutilizadoemaulasregularesdematemáticaeparatrabalhos

decasa.

CadadicaoferecidapeloAssessmentSystemmostraumamensagemcomasinformações

esugestõespararesolverumproblemaespecíficoefazpartedeumasequênciadesugestõesde

3a5dicas. Paracadasequênciadesugestões,aúltimadica indicaaoalunoexatamenteoque

fazeroudáarespostacorreta.Oestudofoidivididoemdoistipos:sugestõessobdemandaedicas

proativas.Assugestõessobdemandaapresentaramaosalunosumadicaapenasquandoclicaram

nobotãodedicaeas dicasproativasapresentaramaosalunosumadicasemprequecometiam

umerro.Comisso,ospesquisadoresaplicaramoestudoemumaturmadaoitavasériecom72

alunos,cujosalunosreceberamquatroproblemasmatemáticoseosistemaforneceusugestõessob

demandaouproativasdeformaaleatóriaparaosalunos.

Foi descoberto que os estudantes melhoraram significativamente com sugestões sob

demandaemrelaçãoàquandoosistemamostravaumadicaquandoocorreuumerro. Osalunos

que tendem a pedir uma grandequantidade de dicas aprendem significativamente maiscom

sugestõessobdemanda,masparaestudantesquepediramumnúmerobaixodedicas,nãohouve

diferençasignificativaentreasduascondições.

Glassmanetal.(2016)criaramumsistemadedicaschamadoDearBetaparaauxiliarna

criação de projetode circuitos digitaisque exigemmaisexperiência dosalunos. Aplicandoo

(17)

15

de aprendizagem, beneficiando-sepedagogicamente daprópria tarefa de realizarexercícios e

produzirdicas.Noestudorealizadopelospesquisadores,9dos226alunosdocursodearquitetura

decomputadoresparticiparamdoestudo. Estesalunosforamrecrutadosatravésdeumfórum.

Esseestudo foirealizadopara estudar aeficácia dasdicasparaotimizar os circuitospara que

usassemmenostransistores.

Apósalgumassemanasde estudo, o númerode voluntáriosaumentou e chegoua 20

alunos,masnaúltimasemanadoestudoonúmerodeusuáriosregistradosnosistemaDearBeta

aumentoulinearmentede20para166. Nos9diasentreolançamentodoDearBetaeadatade

vencimentodoestudodelaboratório,osusuáriosadicionaram76errosdeverificaçãoe57sugestões

comoumarespostaaesseserros.Metadedoserrosrecebeupelomenosumadica.Osresultados

doestudodeimplantaçãoesubsequenteestudodelaboratóriodemonstramaviabilidadedesses

fluxosdetrabalhoeindicamqueasdicasgeradaspeloalunosãoúteisparaosalunos.

2.2.

Sistemas

de

dicas

para

o

ensino

de

Programação

Esta seção mostra as pesquisas focadas no ensino de programação. Os pesquisadores estão

aplicando diversas abordagens, na maioria doscasos,com alunosiniciantes de disciplinasde

Programação.

Price(2015)utilizouumsistemadetutoresinteligentes(STI)paraauxiliarosalunosna

ausência de instrutores, fornecendo sugestõese advertênciaspara osalunos que precisamde

ajuda. Alémdisso,astécnicasbaseadasemdadospodemgerarfeedbackautomaticamenteapartir

detentativasderesoluçãodeumproblema. Essefeedback écriadoatravésdabasededadosde

submissõesrealizadaspelosalunosduranteautilizaçãodosistema.

Antonuccietal.(2015)desenvolveramferramentasetécnicasquesuportam

automati-camenteestudantesnaresoluçãodeexercíciosdeprogramação,visandofomentaraadoçãode

cursoson-lineeMOOCsparaoaprendizadodeprogramação.Elesdesenvolverameavaliaram

umsistemadedicaincrementalparaexercíciosdeprogramação. Estesistemareageaopedido

do alunopelasdicas,apresentandoumasérie desugestõessobrecomoabordaresolucionaro

problema. Essassugestõessãocriadasantecipadamenteapartirdocódigofontedasoluçãocorreta,

podendoinclusiverevelarpartesdocódigodasolução.Tambémexisteummodomanual,emque

oprofessorpodepersonalizaradica.

Osistemafoiavaliadoduranteocursodeintroduçãoa programação,queofereceum

móduloon-line paracomplementaroaprendizadodosestudantes.ParaissofoiutilizadooMoodle

integradocomoCodeboard2,quepermiteaosalunosescrever,compilar,testareenviarprogramas

apartirdonavegador.Dessemodo,38alunosutilizaramosistemadedicase,comaanáliserealizada

pelospesquisadores,foiobservadoqueosalunosquenãousaramasdicasapresentaramsoluções

corretasquasesempre(99,5%). Quantoaosalunosqueutilizaramas dicas,apenas63%criaram

(18)

soluções incorretas(37%)precisariamdemaisassistência. Umamaneirade alcançarissoseria

a adiçãodemais níveisdesugestãoeexplicações dentrodasdicasAntonuccietal. (2015). Os

estudantestambémpreencheramumquestionáriosobreautilizaçãodossistemasdedicas,sendo

que 16 alunos (42%)utilizaram o sistema de dica em pelo menosum exercício. Entre eles, 5

estudantes(33%)descobriramqueosistemadedicaeramuitodifícildeusar,enquantoqueparao

restantedeles(66%)afirmouqueerafácildeusar.Antonuccietal.(2015)constataramque,demodo

geral,73%dosalunosqueutilizaramosistemadedicasacharamútile80%afirmaramqueonível

degranularidadedasdicaseramapropriados. Foiconcluídoqueosistemafoicapazdeprocessar

todososexercíciossubmetidospelosalunos,produzindosugestõessatisfatórias.Comotambém

semprequenecessário,osprofessorespoderiamfacilmenteredefinirapolíticadeprocessamento,

definindoumatabeladedicaspersonalizada.Osdadoscoletadosusandoquestionáriosedados

deusosugeremqueosistemadedicafoiumaadiçãobenéficaàplataformadeprogramaçãode

ensinonanuvem.

Paquetteetal.(2012)desenvolveramoframeworkASTUS,quemodelaarepresentação

doconhecimentodopontodevistadeprofessoresapartirdastarefasdeprogramação.Omodeloé

geradousandoconhecimentosemânticonecessárioparaarealizaçãodeexercícios.Cadaconceito

quecompõeesteconhecimentodefineumconjuntodecaracterísticasessenciaisquepodemse

referiraoutrosconceitosouvaloresprimitivos(inteiro,número,decimal,símbolo,booleano).Para

cadatarefa,oASTUScriaummodeloúnico,definindoasestruturasqueoalunoprecisamanipular.

Assim,épossívelgerarautomaticamentedicasparaauxiliaroestudanteparaopróximopassoda

realizaçãodatarefa.

Osistemaoferecedicasapartirdoavançodoalunonarealizaçãodatarefa.Acadapasso

atingidodatarefa,osistemaapresentaumadicaquereferenciaopassoseguinteaserrealizado.

Asdicasoferecidassãodivididasentre:dicasobreaestrutura(independentedatarefa)esobreo

conteúdo(específicoparaatarefa).Foramdefinidasasestruturasdasdicascomomodelosdetexto

aserempreenchidoscomoconteúdoespecíficodatarefaextraídodasunidadesdeconhecimento

definidasnomodelodatarefa.

ParaavaliaroASTUS,Paquetteetal.(2012)aplicaramestudoscomdoisgruposdealunos.

Oprimeirogrupoteveaparticipaçãodeprofessoresqueauxiliaramosalunosquandonecessário,

enquantoosegundogrupoobteveoacessoaotutorprojetadousandooASTUS.Osresultados

mostraramqueassugestõesgeradaspeloASUTSpodemsertãoeficientesquantoasdeautoria

dosprofessores.

2.3.

Considerações

Finais

Muitospesquisadoresestãoestudandoeaplicandodiferentesestratégiasparamelhoraroensinoe

desenvolvermelhorashabilidadesdosalunosemresolverproblemas.Esteestudoadotacomobase

(19)

17

sistemadedicasparaauxiliarprojetosdecircuitosdigitaisnocursodearquiteturadecomputadores.

Destemodo,foiconstruídoumsistemaquediferedoapresentadoporElkherjeFreund(2014),em

queoprofessorapresentaumadicaemtemporealaumalunoquetenharealizadováriastentativas

pararesolverumexercício. Essetipodesistemanãoéescalávelparaumagrandequantidadede

usuários.Oobjetivoécriarumsistemaquenãosejanecessárioqueumprofessorcriedicaspara

osalunos.Assim,osprópriosalunoscriamdicasparaajudaroutroscolegase,concomitantemente,

(20)

3

Sistema

de

Dicas

Este capítulodescrevetodasas etapasparao desenvolvimentodo sistemadedicasfeitoneste

trabalho,disponibilizadocomoaplicaçãoWeb1,emantidonoGitHub2sobalicençaMIT.ASeção3.1

apresentaastecnologiasutilizadasnaimplementaçãoegestãodosistemaeaSeção3.2explicaas

funcionalidadesqueosistemapossui.

3.1.

Tecnologias

Estaseçãoapresentaastecnologiasutilizadasnestetrabalho. ASeção3.1.1descreveas

característi-casdalinguagemdeprogramaçãoutilizada.ASeção3.1.3mostraumadefiniçãoeascaracterística

deumframework.ASeção3.1.2apresentaaarquiteturaMVC,utilizadapelamaioriadosatuais

frameworksweb. ASeção3.1.4apresentaoframeworkutilizadonodesenvolvimentodosistema

dedicas.ASeção3.1.5refere-seaopadrãodeprojetoRepositoryDesignPattern,acrescentadoao

MVC.ASeção3.1.6mostraogerenciadordedependênciasutilizado. Porfim,aSeção3.1.7mostra

comoserealizouaextraçãodasmedidasdoscódigossubmetidos.

3.1.1.

Linguagem

PHP

OPersonalHomePage (PHP)éumalinguageminterpretada,geralmenteusadaparao

desenvolvi-mentodeaplicaçõesnoladodoservidor,capazdegerarconteúdodinâmiconaWeb(PHPGROUP,

2017b).OcódigoéinterpretadonoladodoservidorpelomóduloPHP,quetambémgeraapágina

webaservisualizadanoladodocliente. OPHPtempassadoporumagrandeevoluçãonosúltimos

anos,consolidando-seentreaslinguagensmaisimportantesparaodesenvolvimentoweb,sendo

utilizadoporgrandesempresaseprojetosdecódigoaberto.

1Aaplicaçãoestádisponívelem<http://138.197.124.212/>. 2<https://github.com/gustavoCorreiaGonzalez/iHint>

(21)

19

Atualmente, ele conta com umasólida basede orientação a objetos,funcionalidades

como closures, generators e traits, iniciativas de padronização de código com o PHP-FIG e as

PSRs,ferramentascomoComposer paraogerenciamentodedependências,umvastoeconfiável

repositóriodebibliotecascomooPackagist eumacomunidadebastanteativa.

Uma das mudanças mais importante para o amadurecimento do PHP foi a sólida

implementação do paradigma orientado a objetos. O PHP nasceu procedural e ao longo do

tempofoisetornandoorientadoaobjetos.Umadasmaioresvantagensdaprogramaçãoorientada

a objetosé permitir umaadequada representação de um problema, com melhor organização

e alto reaproveitamento de código. Conceitos como classes, métodos, propriedades, herança,

namespaces,instânciasentreoutrosfazempartedovocabuláriodeumalinguagemorientadaa

objetos(PHPGROUP,2017a).

3.1.2.

MVC

e

Arquitetura

OModel-view-controller (MVC)éumpadrãodearquiteturadesoftwarequepermiteorganizaro

projetoemcomponentes,separandoalógicadenegóciodalógicadeapresentação. Ofluxode

funcionamentodoMVC,apresentadonaFigura3.1,ésimples:ocontroller recebeasrequisições,

solicitaasinformaçõesnecessáriasparaomodel eenviaasinformaçõesparaavieworganizare

apresentaroconteúdo.

Figura3.1.Visãogeraldosistemadedicas. Fonte:Reenskaug(1979).

Comestaorganizaçãoemcomponentes,asresponsabilidadesficammelhorseparadas.O

controller apenasrecebearequisiçãoeretornaumresultado.Elenãosabesecomunicarcomo

bancode dadoseissonãoédesuaresponsabilidade. Eleapenasrepassaestatarefaparaoseu

responsável. Omodel éresponsávelpelalógicado negócioepelacomunicaçãocoma basede

dados. Apósrealizarassuastarefas,omodelretornaosdadosparaocontroller,quenãosabesobre

comoapresentaroconteúdoe,porsuavez,retornaestesdadosparaaview.Aviewéresponsável

(22)

3.1.3.

Framework

FrameworkssãodescritosporBoschetal.(2000)comoumconjuntodeclassesqueincorporaum

designabstratoparasoluçõesparaumafamíliadeproblemasrelacionados. Tambémofereceum

conjuntodefuncionalidades,realizandoresponsabilidadesparasubsistemastípicosdodomínio

dasaplicações(FAYAD;SCHMIDT,1997),taiscomoacessoabancodedados,gerenciamentode

sessões,validaçãodedados,geraçãodecódigo,internacionalização daaplicação,autenticação,

dentreoutros.

Umframeworkwebéutilizadoparasolucionarumtipoespecíficodeproblemaqueéa

criaçãodeaplicaçõesweb. Costumaterumaarquiteturaeorganizaçãopré-definidadecorrente

dedecisõesdeprojetoamplamentediscutidasedaexperiênciadeseuscriadoresecolaboradores.

Por exemplo, frameworks webgeralmenteimplementar o padrão arquitetural MVC,dada sua

adequaçãoaodomíniodeaplicaçõesWeb.

Um framework web é visto como um esqueleto de uma aplicação. Ele possui partes

fixas que são implementadas pelo framework e partes variáveis que são implementadas pelo

programadorparaespecificarasfuncionalidadesdesuaaplicação.Existemdiversosframeworks

webemPHP,comooZendFramework3,Symfony4eLaravel5,sendoqueesteúltimofoiescolhido

parautilizaçãonestetrabalho.

3.1.4.

Framework

Laravel

Para o desenvolvimento do sistema de dicas,foi escolhido oframework Laravel porcausa do

conhecimentopréviodalinguagemPHPedoframework. AarquiteturautilizadaéaMVC,que

auxiliaodesenvolvedoracriaraplicaçõesseguraseperformáticasdeformarápida,comcódigo

limpoesimples,inclusiveutilizandoopadrãoPSR-2comoguiaparaestilodeescritadecódigo.O

FrameworkLaraveléfeitoemPHPeatualmenteestáemsuaversão5.5.

Para acriação deinterface gráfica,oLaravelutiliza umaEnginede templatechamada

Blade, que forneceferramentasqueauxiliamna construçãode interfacesfuncionais deforma

rápidaeajudamaevitaraduplicaçãodecódigo.

AcomunicaçãocomobancodedadosérealizadaatravésdebibliotecaEloquentORM,

quepermiteconsultaremanipulardadosdeumbancodedadosusandoumparadigmaorientado

aobjetos.Portanto,oEloquentORMencapsulaocódigonecessárioparamanipularosdados,de

modoquenãoseutilizaalinguagemSQL,masalinguagemdeprogramaçãoqueestáutilizando

paradesenvolverosistema.

3<https://framework.zend.com/> 4<https://symfony.com/> 5<https://laravel.com/>

(23)

21

3.1.5.

Repository

Design

Pattern

Alémde utilizar o padrão de arquiteturaMVC implementado peloLaravel, também se teve a

necessidade de adicionar um padrão de projeto para complementar a arquitetura, visando a

organizaçãoereaproveitamentodecódigo.Portanto,foiadicionadooRepositoryDesignPattern,

quecompõeacamadadeserviçosemqueseconcentramasregrasdenegócio. Énessacamada

que ocorreoacessoaosdados eentidadesdo sistemaquese localizamnacamadamodels. Os

repositóriospermitemqueoacessoeainteraçãocomosmodelsnãosejamfeitosdiretamenteem

outraspartesdosistema,conformeapresentadonaFigura3.2.

Figura3.2.RepositoryPattern. Fonte:Evans(2004).

Com autilizaçãodosrepositórios, foipossívelalcançaras seguintes característicano

desenvolvimentodaaplicação:

• Centralizarregrasderecuperaçãoepersistênciadedados.

• AbstrairautilizaçãodeORMs,possibilitandoatrocaporoutrosORMs

• Abstrairotipodebancodedados,que,assimcomoORMs,podesertrocado.

• Devolverdadosemumformatoagnóstico(arrayouStdClass),semacoplamentoaoORM.

ApesardautilizaçãodoRepositoryDesignPatternnãoseressencialparaofuncionamento

daaplicaçãodesenvolvidanestetrabalho,opadrãodeprojetoemquestãofoiescolhidoporoferecer

umcódigomaislimpoelegível,facilitandoamanutenção. Eletambémpossibilitouaorganização

dasregrasdenegócioque,deoutraforma,ficariamespalhadasnosmodels.

3.1.6.

Gerenciador

de

Dependências

Asdependênciassãoospacotesoubibliotecasdequeoprojetodependeparaoseufuncionamento.

Autilizaçãodepacotespermitequeodesenvolvedorsepreocupesomentecomalógicadenegócio

dasuaaplicação,deixandotarefascomovalidaçãode formulários,acessoabanco dedadosou

(24)

dependênciasemPHP.Elepermitedeclararasdependênciasdoseuprojetoefazerogerenciamento

(instalaçãoeatualização)delasdeformasimpleseautomatizada.Alémdisto,oComposerpossui

acessoaumvastorepositóriode pacotes,denominadoPackagist,ondevocêpodeconsultarou

publicarpacotes.

3.1.7.

Ferramenta

para

extração

de

medidas

PararealizaraextraçãodasmedidasdoscódigosemCqueforamsubmetidasaosistemadedicas

pelosalunos,foiutilizadaaferramentadeanáliseCandC++CodeCounter(CCCC)(LITTLEFAIR,

1998). OCCCC processacadaumdosarquivosespecificadosna linhadecomando. Paracada

arquivo,examina-seaextensãodonomedoarquivoe,seaextensãoforreconhecidacomouma

linguagemsuportada,oanalisadoréexecutadonoarquivo. Àmedidaquecadaarquivoéanalisado,

oreconhecimentodecertasconstruçõesfarácomqueosregistrossejamescritosemumbancode

dadosinterno.Quandotodososarquivosforamprocessados,umrelatórioégeradonoformato

HTML.

Por padrão, o relatório HTML principal é gerado para o arquivo cccc.htm em um

subdiretóriochamado.ccccdodiretóriodetrabalhoatual,comrelatóriosdetalhadosparacada

módulo (ou seja, classe C++ ou Java) identificados pela análise. Além dosrelatórios HTML,

contendoosdadoslistadosnaTabela3.1,aexecuçãodoCCCCproduzrelatóriosresumidosem

formatoXML.

Tabela3.1.TabelasGeradaspeloCCCC NomedaTabela Descrição

Resumodoprojeto Apresentavaloresresumidosdeváriasmedidassobreocorpodocódigo-fonte submetido.

ResumoProcedural Apresentavaloresdemedidasproceduraissomadosparacadamódulo identifi-cadonocódigoenviado.

DetalhesProcedurais Apresentavaloresdasmesmas medidasprocessuaiscobertasnorelatóriode resumoprocedural,masdestavezdivididoemcadamódulonascontribuições decadafunçãomembrodomódulo.

ResumoEstrutural Apresentacontagensderelacionamentosdefan-inefan-outparacadamódulo identificadoeumamétricaderivadachamadamedidaHenry/Kafura/Shepperd, queécalculadacomooquadradodoprodutodascontagensdefan-inefan-out. DetalhesEstruturais Apresentalistasdosmódulosquecontribuemparaascontagensde

relaciona-mentorelatadasnoresumoestrutural.

ExtensõesRejeitadas Apresentaumalistaderegiõesdecódigoqueoanalisadornãoconseguiuanalisar. Fonte:Littlefair(1998).

ATabela3.2apresentaaspossíveismedidasqueoCCCCpodeextrairdosalgoritmos.

Paraodesenvolvimentodosistemadedicas,foramutilizadasasmedidasLOCeMVG,conforme

(25)

23 Tabela3.2.MedidasExibidasnaAnálise

Sigla Nomedamedida LOC LinhasdeCódigo

MVG ComplexidadeCyclomaticdeMcCabe COM Linhadecomentários

L_C,M_C LOC/COM FO,FOc,FOvFI,FIc,FIc Fan-out,Fan-in

HKS,HKSv,HKSc MedidadeHenry-Kafura/Shepperd NOM Númerodemódulos

WMC Métodosponderadosporclasses REJ Linhasrejeitadas

Fonte:Littlefair(1998).

• LinhasdeCódigo(LOC):Estacontagemsegueopadrão daindústriadecontarlinhasde

código-fontenãoembranco,semcomentários.Aslinhasdopré-processadorsãotratadas

comoembranco.Asdeclaraçõesdeclasseefunçãosãocontadas,masasdeclaraçõesdedados

globaissãoignoradas.Podeocorrerumaduplacontagemdelinhasnasdefiniçõesdeclasse,

poisoalgoritmotrataototalsobreummódulocomoasomadaslinhaspertencentesao

própriomóduloeaslinhaspertencentesàsfunçõesdomembro(asdeclaraçõesedefinições

dasfunçõesdomembronocorpodaclassecontribuiráparaambasascontagens).

• ComplexidadeCiclomáticadeMcCabe(1976)(MVG):Adefiniçãoformaldacomplexidade

ciclomáticaéacontagemdecaminhoslinearmenteindependentesatravésdeumgrafode

fluxodecontrolederivadodeumsubprograma. Umaaproximaçãopragmáticaaestamedida

podeserencontradacontandopalavras-chavedelinguagemeoperadoresqueintroduzem

resultadosdedecisão.Issopodesermostradocorretamentenamaioriadoscasos.Nocaso

deC,acontageméincrementadaparacadaumdosseguintestokens: “if”,“while”,“for”,

“switch”,“break”,“&&”,“||”.

Essas medidas foram consideradas pois, para os problemas apresentados no estudo,

nosquais sãoaplicados exercíciosqueabordamconceitosde estruturascondicionaiselaçode

repetição,asrespostassãoconstruídasutilizandomódulosecaminhoscriadospelousodessas

estruturas. Amedida MVG está relacionada aos caminhoscompletos distintos do programa,

diretamenterelacionadocomestruturascondicionaiselaçosderepetição.Aquantidadedelinhas

estárelacionadacomaeficáciadoalunonaimplementaçãodassoluções.

Para realizar a captura dosdados para o sistemade dicas,foi necessáriorealizar um

parsingdoXMLgeradopeloCCCC.FoiprecisoutilizaropacoteXMLDocumentParser doLaravel,

(26)

Figura3.3.ExemplodeSaídaGeradaPeloCCCC. Fonte:Littlefair(1998).

3.2.

Implementação

Esta seção descreve o sistema de dicas desenvolvido. O casode uso da Figura 3.4 apresenta

as partes que compõem o software. Apreocupação com a utilização de todas as tecnologias

descritasnaSeção3.1levouaodesenvolvimentode umsistemaflexíveledefácilmanutenção,

(27)

25

Figura3.4.Visãogeraldosistemadedicas.

Osistemaapresentafuncionalidadesdeacessoeregistro,emqueousuáriopoderáse

cadastrarescolhendoaopçãodealunoouadministrador. Oalunorealizaexercíciosdisponíveis

no bancode dadosdo sistema,criadicasparacadaexercícioepode consultardicasdeoutros

usuários. Oadministradorpodegerenciarusuários,consultarsubmissõesedicasrealizadaspelos

alunosecriarlistasdeexercícios.Ousuáriopodenavegaratravésdosmenusdatelainicial,que

contémasopçõesdecadastroeacessodosistemadedicas:

AcessarSistema:móduloresponsávelpelaentradadosusuáriosnosistema.Éatravés

destemóduloqueousuáriotemacessoàsfuncionalidadeshabilitadasparaseuníveldeusuário.A

Figura3.5representaateladeacessodoadministradoreaFigura3.6representaateladeacesso

(28)

Figura3.5.AcessodoAdministrador.

Figura3.6.AcessodoAluno.

Cadastro:móduloresponsávelpelocadastrodousuário,noqualsãocoletadososdados

dousuáriocomoalunooucomoadministradordosistema.Nocasodoadministrador,osistema

exigequecadastreumnome,e-mailesenhaparafinalizarocadastro. Paraopapeldealuno,o

usuáriodeveinformaronome,e-mail,universidade,curso,semestre,experiênciacomprogramação

antesdagraduação,setrabalhaoutrabalhoucomprogramaçãoeasenha.AFigura3.7representa

(29)

27

Figura3.7.CadastrodoAdministrador.

Figura3.8.CadastrodoAluno.

Após autenticação no sistema, o usuário habilitado pode navegar através do menu

principal,quecontémofluxooperacionaldosistema. Ofluxoirádependerdotipodousuário:

(30)

Figura3.9.DashboarddoAdministrador.

Figura3.10.DashboarddoAluno.

3.2.1.

Atividades

do

Administrador

O administrador gerencia os usuários do sistema, podendo consultar seus dados e realiza o

gerenciamentodeexercícios,tiposdeexercíciosaseremdisponibilizadoselistasdeexercíciosa

seremoferecidasaosalunos. Alémdisso,eletemacessoàsrespostasedicascriadaspelosalunos

nosistema.

GerenciarUsuários: AFigura3.11apresentaalistadeusuárioscadastradosnosistema.

(31)

29

Figura3.11.ListadeUsuários.

GerenciarExercícios: Nomódulodeexercícios,oadministradoracessaaosexercícios

cadastradosnosistema,apresentadapelaFigura3.12,quemostraoenunciado,tipodoexercícioe

suaresposta.

Figura3.12.ExercíciosCadastrados.

Casoqueira cadastrarum novo exercício, é precisoclicarno botão“NovoExercício”,

queredirecionaoadministradorparaateladecadastrodeexercício.AFigura3.13exibeoqueé

necessárioparacriarumnovoexercício:enunciado,tipodoexercício,respostasgeradasapartir

deumaentradaqueasubmissãodeveprocessar.Nocaso,épermitidaainserçãodeváriasentradas

(32)

Figura3.13.CadastrodeExercício.

GerenciarLista deExercícios: Cadaexercíciocadastrado pode seragregado auma

listadeexercíciosqueoadministradortenhacadastradoanteriormente,assimeleconseguecriar

listasdeexercíciospersonalizadas.AFigura3.14mostraatelaqueapresentatodasaslistascriadas

peloadministrador.

Figura3.14.ListasdeExercíciosCadastradas.

NaFigura3.15éapresentadaatelaemqueoadministradorrealizaocadastrodeumalista

deexercícios,informandoonomedalistaeosexercíciosquedesejaadicionar. Osexercíciossão

adicionadosapartirdaconsultanobancodedadosdeexercícios: osistemaretornaumacoleção

deexercícioscadastradosnosistema,daqualoadministradorescolheosexercíciosquedeseja

(33)

31

Figura3.15.CadastrarLista.

ConsultarRespostas:Oadministradorécapazdevisualizartodasasrespostas

submeti-dasnosistemadedicas. AFigura3.16indicaosexercíciossubmetidospelosalunos,apresentando

(34)

Figura3.16.ListadeRespostas.

Consultar Dicas: O administradorpode realizar amudança do tipode experimento

atravésdomenu“MododoExperimento”visívelnaFigura3.9,osmodosdisponíveissão:

ModoColeta: Osistemapossuidoismodos de operação,permitindo a realizaçãode

estudosacadêmicosaocontrolarousoeavaliaçãodedicas.NoModoColeta,osalunospreenchem

abasededicasparaque,posteriormente,noModoExperimento,osalunosqueestiveremutilizando

osistemapossamteracessoaalgumasdicaspararealizarosexercícios.Nestemodo,osalunos

nãorecebemnemavaliamdicas.

Modo Experimento: O sistema funciona na sua forma original, em que os alunos

resolvemosexercícios,utilizandodicasparaauxiliarnarealizaçãodosexercícios,ecriamnovas

dicasparaosistema.

3.2.2.

Atividades

do

Aluno

O aluno apenastem acesso ao módulo de exercícios, em que realiza exercícios, submetendo

soluçõeseusandodicas,ecriadicasparaosistema.

UtilizarListadeExercícios:móduloqueapresentaalistadeexercícioscadastradapelo

administrador,representadapelaFigura3.17.Oalunopodeescolherqualquerexercíciodalista

(35)

33

Figura3.17.ListadeExercícios.

RealizarExercício:Apósaescolhadoexercício, osistemaapresentaatelaemqueo

alunoconseguerealizaroexercício,apresentadapelaFigura3.18. Nestatelaousuáriotemacesso

aoenunciadoeaoformulárioparaenviodeumasolução,oquedeveserefetuadoatravésdoenvio

(upload)deumarquivonalinguagemCpararesoluçãodoexercício.

Figura3.18.RealizarExercício.

ConjuntamenteàFigura3.18,oalunotemacessoàsdicasproduzidasporoutrosalunos

paraoexercícioescolhido,podendoutilizá-lasemtodasassubmissõesquerealizaratéqueresolva

oexercício.

Emseguida,ousuáriopodetrabalharemsuasoluçãoesubmeteraosistemaparacorreção.

Se estivercorreta, osistema redireciona ousuário paratela de cadastrodadica, mostrado na

(36)

usuáriopossarealizaroutrassubmissõesatéqueconsigaobtersucessonaresoluçãoourequisitar

umadicaparaosistemaauxiliá-lonaconstruçãodaresposta.

Ascorreçõesdosexercíciossãorealizadasautomaticamente,utilizando-seasrespostas

cadastradasparacadaexercício,conformeilustradonaFigura3.13. Paracadaexercício,podem

estarcadastradasmaisdeumatupladeentradaesaídaparatestarassoluçõesenviadaspelosalunos.

OsistemautilizaométodoexecdoPHP,quepossibilitaaexecuçãodeprogramasexternos. Assim,

pararealizaravalidação doexercício, éexecutadoocomandoGNU CompilerCollection(GCC)

paracompilaro exercíciosubmetido,cujoresultadoé executadocom asentradascadastradas,

comparando-seoretornocomarespostacadastradanoexercício.

Figura3.19.CadastrarDica.

Cadasubmissão, tanto corretaouincorreta, é armazenadanobanco de dados, sendo

registradososdados: identificadordousuário,identificadordoexercício,validaçãodaresposta

(VerdadeiroouFalso),códigosubmetidopelousuário,númerodelinhasdaresposta,complexidade

ciclomática,dataehoradasubmissão.

Utilizar Dicas: Quando o aluno requisitar umadica, clicando em uma dica da lista

apresentada(Figura3.18),osistemaexibeaconteúdodadica.Apóssualeitura,oalunorealizaa

(37)

35

Figura3.20.UtilizaraDica.

3.2.3.

Exemplo

de

Código

ParaexemplificarocódigodosistemadedicaimplementadocomoframeworkLaravel,foiescolhida

afuncionalidadeapresentada naFiguras3.14e3.15,emqueoadministradorrealiza ogerenciamento

delistadeexercícios.Paraagilizarodesenvolvimento,oLaravelpossuiumaferramentadelinha

decomandochamadaArtisan,quetratadageraçãodasclassesdisponibilizadaspeloframework.

Aseguirsãomostradasasetapasrealizadasparaodesenvolvimentodessafuncionalidade.

Aprimeiraetapaconsisteemcriaromodeloeorepositóriodanossaaplicação.

Primeira-mentecria-seatabeladobancodedados,executando-seocomandophpartisanmake:migration

create_exerciselists_table. Nestecaso, aclasse demigraçãoCreateExerciselistsTable écriada,

possibilitando a configuraçãodo schema databelado banco de dados utilizandoa linguagem

PHP,conformemostradonoCódigo-fonte3.1.Nesseexemplo,sãocriadososatributosid,topic

e exercises. Observa-se que todo códigogerado pelo Artisan está no padrão de escrita PSR-2

facilitandoamanutençãoeentendimentodocódigo.Posteriormente,executa-seocomandophp

artisanmigrateparasincronizaraclasseeoesquemadobancodedados.

  class CreateExerciselistsTable e x t e n d s M i g r a t i o n { p u b l i c f u n c t i o n up() { Schema::c r e a t e(’exercise_lists’, f u n c t i o n (B l u e p r i n t $ t a b l e) { $ t a b l e−> i n c r e m e n t s(’i d’); $ t a b l e−>string(’t o p i c’); $ t a b l e−>string(’exercises’); $ t a b l e−>timestamps(); }); } p u b l i c f u n c t i o n down()

(38)

{

Schema::dropIfExists(’exercise_lists’); }

}

 

Código-fonte3.1.MigraçãoGerada

Nasegundaetapa,écriadoomodeloparaatabelaexercise_lists,executandoocomando

phpartisanmake:modelExerciseList.Omapeamentoentreomodeloeamigraçãoérealizado

pelonomedomodeloinformado.Porpadrão,oLaravelassumequeamigraçãodevesercriadano

pluraleomodelonosingular. OCódigo-fonte3.2apresentaomodelocriado,emqueénecessário

criarumalistacomosnomesdoscamposdescritosnamigração,permitindoqueoORMatribua

osvaloresqueserãoinseridosnatabela.

 

class ExerciseList e x t e n d s Model implements Transformable { use T r a n s f o r m a b l e T r a i t; p r o t e c t e d $fillable = [ ’t o p i c’, ’exercises’ ]; }  

Código-fonte3.2.ModeloGerado

Comomodelocriado,parautilizaroRepositoryDesignPatternéprecisocriarum

reposi-tórionoLaravelutilizandoocomandophpartisanmake:repositoryExerciseListRepository,

quegeraoCódigo-fonte3.3,noqualrealizaomapeamentodomodeloatravésdafunçãomodelda

classeExerciseListRepositoryEloquent.   class E x e r c i s e L i s t R e p o s i t o r y E l o q u e n t e x t e n d s B a s e R e p o s i t o r y implements ExerciseListRepository { p u b l i c f u n c t i o n model() { r e t u r n ExerciseList::class; } p u b l i c f u n c t i o n boot() { $ t h i s−> p u s h C r i t e r i a(app(R e q u e s t C r i t e r i a::class)); } }  

Código-fonte3.3.RepositórioGerado

Aterceiraetapaconsistenacriaçãodaclassedecontrolequerealizaacomunicaçãoda

viewcomomodel,validaeenviaosdadosparaosmodeloscorrespondentes.Foirealizadaacriação

domodeloparagerenciarofluxodedadosdafuncionalidade,executandoocomandophpartisan

(39)

37   class ExerciseListController e x t e n d s C o n t r o l l e r { p r i v a t e $ r e p o s i t o r y; p u b l i c f u n c t i o n _ _ c o n s t r u c t(ExerciseListRepository $ r e p o s i t o r y) { $ t h i s−> r e p o s i t o r y = $ r e p o s i t o r y; } p u b l i c f u n c t i o n index() { $exerciselists = $ t h i s−> r e p o s i t o r y−> p a g i n a t e();

r e t u r n view(’admin.exerciselist.index’, compact(exerciselists)); } p u b l i c f u n c t i o n s t o r e(A d m i n E x e r c i s e L i s t R e q u e s t $ r e q u e s t) { $ d a t a = $ r e q u e s t−>all (); $ t h i s−> r e p o s i t o r y−> c r e a t e($ d a t a); r e t u r n redirect()−>r o u t e(’admin.exerciselist.index’); } . . .  

Código-fonte3.4.ControleGerado

OCódigo-fonte3.4mostraapenasacriaçãodoconstrutordorepositório,dafunçãoindex

queconsultanobancoaslistascadastradas,utilizandoométodopaginatepararealizarapaginação

dosdados, edafunçãostore, quevalidaos dadosatravésdafunçãoAdminExerciseListRequest,

recuperandotodososdadosdarequisiçãoutilizandoométodoalle,porfim,realizandoainserção

nobancodedadoscomométodocreatedisponibilizadapeloconstrutordorepositório.

Naquartaeúltimaetapa,énecessáriaacriaçãodaview,utilizando-seaEnginedetemplate

Blade. Nessecaso,oLaravelnãodisponibilizaumcomandoparaageraçãodetemplates,poisa

utilizaçãodoBladenãoéobrigatória. OCódigo-fonte3.5mostraqueoBladepermiteainserçãode

HTMLutilizandoocomando@extends.Destaformaépossívelreutilizarcódigosemtodasastelas

dosistema.TambémépossíveladicionarformuláriosebotõesutilizandooFormdisponibilizado

peloLaravel,quepermitecriartodosostiposdeinputsqueoHTMLsuporta.

 

@extends(’admin.l a y o u t.auth’)

@section(’c o n t e n t’) < d i v class= "c o n t a i n e r" >

<h3>E x e r c i c i o s</ h3>

(40)

{!! Form::open([’r o u t e’ =>’admin.exerciselist.s t o r e’, ’class’ =>’form’]) !!}

@include(’admin.exerciselist._form’)

< d i v class= "form−group" >

{!! Form::submit(’C r i a r Lista’, [’class’ =>’btn btn−primary’]) !!} </div>

{!! Form::c l o s e() !!} </div>

@endsection

 

Código-fonte3.5.ViewGerada

Finalmente, noForm::open éprecisopassar arotaque mapeiaa funçãostore queestá

nocontrollerExerciseListController.Comisso,quandoousuárioclicarnobotãopararealizaro

cadastro,oLaravelfazumarequisiçãoPOST comosdadosqueestãonoformulárioparaarota

especificada.Dessemodo,ocontroladorreconhecearequisição,passapelafunçãoquerealizaa

validaçãoearmazenanobanco.

3.3.

Considerações

Finais

Neste capítulo foi apresentado o desenvolvimento do sistema de dicas. Foi explicado sobre

o Framework utilizado, suas características e arquitetura. Também foram apresentadas as

funcionalidadesdesenvolvidasecomoseriaofluxodeatividadesrealizadasporcadausuário.A

próximaseçãomostraráosestudosrealizadoseosresultadosobtidospelaabordagemproposta

(41)

Capítulo

4

Estudo,

Resultados

e

Discussão

Estecapítulodescreveoestudorealizadoparaavaliarosistemadedicasdescritonestetrabalho.A

Seção4.1apresentacomoforamexecutadasasetapasdoestudo.NaSeção4.2sãomostradosos

resultadosobtidoseadiscussão.

4.1.

Estudo

Apósaimplementaçãodosistemade dicasapresentadanoCapítulo3,foirealizadoumestudo

paraavaliarosistema. Oprimeiropasso foia definiçãode umalistadeexercícios. Foipreciso

preencherabasededadosdeexercíciosapartirdeexercíciosselecionadosparadiferirdaqueles

realizadosnadisciplinadealgoritmosoferecidapelocursodeBCCdaUTFPR-CM.Aseleçãotevea

finalidadedeprevenirqueosparticipantesdoestudojátenhamrealizadoosexercícios.Chegou-se

aoconjuntodeexercíciosmostradonaApêndiceB.

Apósopreenchimentodabasedeexercícios,prosseguiu-separaarealizaçãodoestudo,

organizadoemtrêsetapas,conformeapresentadonaTabela4.1.Asprimeirasetapastiveramcomo

objetivoacriaçãodedicasparaosistema,permitindoaavaliaçãodosistemaimplementadoemum

cenárioemqueexisteumconjuntoútil,porémlimitado,dedicas.Estasetapasforamexecutadas

noModoColetadaferramenta.Naterceiraetapa,osalunospodiamresolverexercícios,usar,criar

eavaliardicas,utilizandointegralmenteasfuncionalidadesdosistema.

Tabela4.1.VoluntáriosdoEstudo.

Estudo QuantidadedeVoluntários Semetre 1ªEtapadoEstudo 6 8 2ªEtapadoEstudo 3 -3ªEtapadoEstudo 7 1 Total: 16

(42)

Todasasetapastiveramduraçãomédiade3horas.Noiníciodecadaetapa,foiaplicadoo

termodeconsentimento,apresentadonoApêndiceA,paraqueosparticipantesficassemcientes

sobreousodosdadosqueseriamgeradosduranteautilizaçãodosistemaesobreagarantiade

anonimatodosdados.

AprimeiraetapaocorreunaUTFPR-CM,emmeadosdoprimeirosemestrede2017,com

aparticipaçãode6estudantesdooitavoperíododocursodeBCC.Asegundaetapafoirealizada

com3profissionaisdaindústrianaáreadeComputação,nomeiodosegundosemestrede2017.

Porfim,aterceiraetapaaconteceuemdoisdiasdistintosnomêsdeoutubrode2017,comalunos

doprimeiroperíododocursodeBCCdaUTFPR-CM.

Aprimeiraesegundaetapadoestudoutilizaramo“ModoColeta”dosistemaapresentado

naSeção3.2.1,poisessesestudostiveramoobjetivodeisolaracriaçãodasdicasrealizadaspelos

participantes.Assimfoipossíveldividirasdicascriadasporacadêmicoseprofissionaisdaindústria

daáreadacomputação, paraque,apósa últimaetapa, pudesseserrealizadaacomparaçãodo

desempenhodasdicasdessesdoistiposdeparticipantes.

No final da terceira etapa, utilizou-se o “Modo Experimento”do sistema descrito na

Seção3.2.1,ondeosparticipantespuderamrealizarosexercícios,consultarecriardicas.Osalunos

puderamconsultardicascriadasnaprimeiraesegundaetapadoestudo,mastambémtiveram

acessoàsdicascriadasporoutrosparticipantesdaterceiraetapaqueestavamrealizandoalista

de exercíciojuntamente. No término da terceiraetapa, foiaplicado um questionário para os

participantesavaliaremautilizaçãodosistemaeaimportânciaqueasdicastiveramdurantea

execuçãodosexercícios.

NaFigura4.1éapresentadoofluxoqueosparticipantesseguiramnosistemapararealizar

asoluçãodeexercícioseacriaçãodasdicas.Ofluxoéiniciadoquandoousuáriorecebeumalista

deexercíciosparaserrealizada.Osistemaapresentaumexercíciodalistaparaserresolvidoeo

usuáriopodecomeçararealizarasolução.Nocasodaterceiraetapa,ovoluntáriopodeconsultar

algumasdicas. Destemodo,osistemaapresentaasdicasdisponíveisparaoexercícioqueestá

sendorealizado,asquaisousuáriopodeconsultarpararealizarsuasolução.Cabedestacarque,

paraasetapas1e2desteestudo,afuncionalidadedeconsultaàsdicasestádesabilitada(Modo

Coleta).

Apósa solução serconcluída, o usuáriosubmete a solução paravalidação, o sistema

executaasoluçãodoexercícioeverificaseestácorretaounão.Casoasoluçãonãoestejacorreta,

osistemaredirecionaparaaetapaderealizaçãodesoluçãoparaqueoparticipantepossarealizar

umanovatentativa. Casoasoluçãoestejacorreta,osistemaredirecionaousuárioparaatelaem

(43)

41

Figura4.1.FluxoparaCriaçãodasDicas. Fonte:AdaptadodeGlassmanetal.(2016).

4.2.

Resultados

Apósaexecuçãodoestudo,realizou-seaanáliseapartirdosdadoscapturadosnassubmissõese

dicasutilizadaspelosparticipantes. Nototal,foramrealizadas243submissõesdeexercíciosno

sistemadedicas,sendoque191ocasionaramemerrose52emacertos. Conformemencionado

anteriormente, paracadasoluçãocorretaefetuada,os alunospodiamcriardicasreferentesao

exercíciosubmetido.ATabela4.2mostraaquantidadededicascriadasemcadaetapadoestudo

realizado.

Tabela4.2.DicasCriadasporEtapa.

Etapas QuantidadedeDicasCriadas 1°Etapa 40

2°Etapa 21 3°Etapa 18 Total 79

(44)

Tabela4.3.DicasCriadasporExercício.

Exercício QuantidadedeDicasCriadas 1°Exercício 13 2°Exercício 12 3°Exercício 12 4°Exercício 12 5°Exercício 11 6°Exercício 9 7°Exercício 10 Total 79

AFigura4.2apresentaassubmissões,nocasoseparadaspelasetapasdoestudoexecutado.

Aprimeiraetapa,emqueocorreuacriaçãodedicas,obteveumtotalde136enviosdeexercícios,

contendo 47tentativas certase 89erradas. Na segundaetapade criaçãode dicas,os usuários

realizaram43submissões,com24certase19erradas.Nasprimeiraesegundaetapas,osusuários

não utilizaramafuncionalidade deconsultardicas,poisoobjetivo dessasetapaseramapenas

criarasdicasqueseriamutilizadasfuturamentenaterceiraetapa.Naúltimaetapa,osusuários

realizaramosexercícioscomoapoiodasdicas,temumtotalde64submissões,contendo28certas

e36erradas.

Figura4.2.VisãoGeraldasSubmissõesRealizadas.

AFigura4.2apresentaindíciosqueosusuáriosdaterceiraetapativerammaiorfacilidade

emresolverosexercíciospelofatodautilizaçãodasdicas,comparandoosresultadosdaprimeira

(45)

43

issopodeestarrelacionadoaofatodosparticipantesdessaetapaseremprofissionaisdaáreade

computaçãoqueapresentammaiorexperiênciacomaresoluçãodeproblemas.

4.2.1.

Submissões

Realizadas

Efetuou-seaseparaçãodosdadosparaapresentarototaldesubmissõesefetuadaspelos

partici-pantesemcadaexercício. Inicialmente,nasetapasdoestudoapresentadonaFigura4.3,amédia

dassubmissõesnas etapas1e 2,nas quaisosusuáriosnão consultaramdicaspararesolveros

exercícios,foide15,29e5,28respectivamente.

Figura4.3.SubmissõesporEtapasdoEstudo.

Posteriormente,naterceiraetapa,amédiadesubmissõesfoide9,14porexercício.Em

relaçãoaosresultadosdaprimeiraetapa,comalunosexperientes,épossívelencontrarindicativos

queautilizaçãodasdicaspararesolverexercíciosnosistemaajudouosparticipantesdaterceira

etapa.Cabeobservaraindaque,paraaterceiraetapa,nãofoipossívelrealizaraaplicaraterceira

etapa doestudocom umaturmacompletadoprimeirosemestredadisciplinade algoritmose,

portanto,analisarosresultadosquantoàparticipaçãodealunosdebaixo,médioealtodesempenho.

NaFigura4.4émostradaacomparaçãoentreaquantidadedesubmissõescertaseerradas

realizadas nas três etapas do estudo. Embora os primeiros exercícios sejam mais simples e

consequentementesujeitosaumaquantidademenordesubmissõesincorretas,épossívelobservar

queelesapresentamumaquantidadeelevadadetentativaserradasentreosalunos. Issosedeve,

em parte, à necessidade de adaptação dosusuáriospara começar autilizar o sistema, pois os

usuáriostiveramqueadequaraformadecompilaçãodosexercíciosqueosistemautilizavaeo

(46)

Figura4.4.SubmissõesCertaseErradasporEtapa.

Observa-setambémqueoexercício6apresentouumnúmeromuitoelevadodesubmissões

naprimeiraetapa. Investigandoessecomportamento,foipossívelapontarqueamaiordificuldade

dosparticipantesestavarelacionadacomumadasregrasqueoexercícionecessitava:amaioria

dopensamentoconstruídopelosparticipantespararealizaroexercícioestavacorreta,masuma

regranãoestavabemdesenvolvidanocódigo,exigindováriosajustesetestesparaqueoexercício

ficassecorreto. Nocasodoexercício7,alinguagemCrealizavaumarredondamentoaoutilizar

oconversoratof,querealizaaconversãodeumastringparaumvalorflutuante,oqueacabava

atrapalhandonasoperações.

Nasegundaetapa,osparticipantesnãotiveramproblemasnarealizaçãodosexercícios.

Masnosexercícios6e7,passarampelosmesmosproblemasdosparticipantesdaprimeiraetapa.

Porfim,naterceiraetapaosusuáriospuderamacessarasdicascriadaspelosparticipantes

da primeira e segunda etapa que passaram pelos problemas citados. No entanto, apenas os

usuários13e14realizaramosexercícios6e7,nãosendopossívelverificarseasdicasajudaram

nodesenvolvimentodessesexercícios.

4.2.2.

Submissões

Erradas

Aprofundandonaanálisedassubmissões,naFigura4.5foifeitoumagrupamentodosdadosda

primeira,segundaeterceiraetapademodoaexibirarelaçãoentreaquantidadedesubmissões

erradas por usuário em cada exercício, com o objetivo de investigar em quais exercícios os

(47)

45

Figura4.5.SubmissõesErradasnasEtapas.

Oprimeiroexercíciorealizadonosestudosfoioqueapresentouamaiorconcentraçãode

participantes,sendorealizadoportodososusuários.Verificou-seque,nesseexercício,onúmero

detentativaserradasseconcentrouentre1e4porparticipante.

Na Figura 4.5,observa-se quenas três etapas,os exercícios com maior número de tentativas

erradasforamo6eo7.Noexercício6,grandepartedosparticipantesprecisaramde5tentativas

namédiaparaacerta-lo.Noentanto,esseexercícioapresentouumagrandevariaçãodonúmerode

submissõeserradas,noqualumusuáriorealizouapenasumatentativaerradaeoutroqueefetuou

8tentativas.Oexercício6tambémapresentaomaioroutlier doestudo,noqualumparticipante

executou18tentativas paraconseguiracertaroexercício. Noexercício7,onúmeromédiode

submissõestambémfoimaiorqueosdemaisexercícios,sendomenorapenasqueoexercício6.

Noentanto,apenas2participantesdaterceiraetaparealizamesseexercício,assimessegráfico

mostroumaisosdadosdaprimeiraesegundaetapa.

Nosexercícios3,4e5osparticipantesnãoapresentaramdificuldades,sendoqueamaioria

dassubmissõeserradasestãoentre1e2tentativas.Novalmente,amaioriadosparticipantesda

terceiraetapanãorealizouessesexercícios,assimsóobservamosastentativasdosparticipantes

quenãoutilizaramasdicasdosistema.

4.2.3.

Dicas

Utilizadas

Foi realizado um mapeamento das dicasutilizadas. Conforme apresentado na Figura 4.6, no

primeiroexercícioexisteumaamplautilizaçãodasdicasemcomparaçãoaosdemaisexercícios.

Pode-se considerar queas dicasutilizadas noprimeiroexercício játenhamabordado

assuntosquepoderiamcontribuircomosparticipantesnosdemaisexercícios,dadoaofatoque

(48)

Figura4.6.DicasUtilizadaspelosUsuários.

deutilizarprecedênciasentreoperadoresaritméticosduranteas operaçõesmatemáticas”.Elas

tambémapresentamlembretesimportantessobreautilizaçãodosistema,como:“Nãoesqueçade

imprimirasaídaconformeexemplificado”,“Convertatodasasentradasparainteiro”.Essasdicas

podemseraplicadasemtodososexercícios,tendoemvistaquetodososexercíciospassarampela

mesmaformadecorreçãoesãoexercíciosbásicosqueenvolvemcontas,utilizaçãodecondicional

elaçoderepetição.

Considerandoqueoprimeiroexercícioteveumusoexpressivodedicasequetodosos

participantesdaterceiraetapaorealizaram,naFigura4.7émostradooboxplot daquantidade

de dicasutilizadaspelos participantesparaesseexercício. Percebe-sequea medianadedicas

utilizadasporusuárioé2,variando-seentreautilizaçãode1a3dicas.Porém,temosumoutlier

queutilizou7dicaspararealizaroprimeiroexercício.

(49)

47

Finalmente,foirealizadoumaanáliseparaclassificaras dicasconforme autilizaçãoe

avaliaçãoproduzidaspelosusuários.Cadaparticipantepodeconsultarquantasdicasacreditasse

sernecessáriaspararealizarassubmissõeseavaliá-laapósouso,emumaescalade1a5,sendo1

umadicadepoucautilidadee5umadicaexcelente. NaFigura4.8,épossívelobservarosindícios

doefeitoqueasdicastiveramsobreosusuários. Desconsideramososexercícios2,5e6pornão

conteremdadossuficientesparaanálise.Percebe-seoefeitodaqualidadedasdicasnoprimeiro

exercício,oqualteveamaiorutilizaçãodedicas,conformediscutidoanteriormente.Neleforam

utilizadas 11dicas,sendo4,5ovalor damedianadessasdicas. Com isso,pode-sesupor que a

utilizaçãodasdicasajudaramosparticipantesnarealizaçãodosexercícios. Oresultadoésimilar

quanto às dicaspara os exercícios 3e 7. Observa-se que, parao exercício3, a quantidadede

submissõeserradasnaterceiraetapafoibaixa,oquepodeserumaconsequênciadaqualidadedas

dicas.

Figura4.8.AvaliaçãodasDicasporExercício

Poroutrolado,oexercício7foirealizadoporapenasdoisusuárioseas dicastiveram

boasavaliações,masnãoépossívelverificarseasdicasrealmenteajudaramosparticipantespor

causadafaltadedados.Nosétimoexercícioousuário13realizou9tentativaserradaseanotas

dasdicassãoaltas,comissonãosepodeafirmarqueasdicasajudaramdefatoousuárionosétimo

exercício.

4.2.4.

Medidas

do

Código

Osistemarealizouaextraçãodasmedidasdelinhasdecódigoecomplexidadeciclomáticados

exercíciosrealizados.Comisso,foirealizadoumamédiadecadamedida,sendoamédiadelinhas

decódigoecomplexidadeciclomáticaseparadaporexercícioparacadausuáriodasetapas.Em

todososexercícios,amédiadaslinhaspermaneceuquaseiguaisparacadausuário,assimnãofoi

(50)

ciclomáticamédiadosexercíciosrealizadospelosparticipantes,semantevequasenomesmovalor

emtodososexercícios.Nessaanálise,pode-seconstatarqueosexercíciosescolhidosnãopossuiam

muitasformasdeseremrealizados,porseremexercíciosbásicosdeprogramação.Assim,asmédias

nasduasmedidasapresentaramosmesmospadrõesdevalores.

4.2.5.

Questionário

Aplicou-seoquestionáriodeavaliaçãodosistemadedicasaofinaldaterceiraetapa,paracapturaras

opiniõesqueosparticipantestiveramaoutilizarosistema.ATabela4.4apresentaopreenchimento

realizado por dois participantes. Infelizmente, os outros participantes da terceira etapa não

preencheramoquestionário. Todavia,foramessesdoisusuáriosquerealizaramtodososexercícios

daterceiraetapa.

Tabela4.4.QuestionárioAplicado

Respostas

Perguntas Usuário13 Usuário14 Foifácilutilizaro

SistemadeDicas? Sim Sim Precisoudoapoiodeoutra

pessoaparautilizarosistema? Sim Não Osistemaoferecetodasasinformações

necessáriasparacompletarastarefas? Sim Não Omecanismodedicasajudou

naresoluçãodeexercícios? Sim Sim Foifácilacessarasdicaspelosistema? Sim Sim

Asdicasforamapresentadasde

formaclaraeobjetiva? Sim Sim Algumaobservaçãosobreo

sistemaouoestudo? Legal,asdicasajudamdemais.

Talvezpoderiadeixarasdicas semprevisíveis

Oquestionáriopreenchidomostraque,paraosdoisusuários,aexperiênciadautilização

dosistemadedicasfoipositiva,ressaltandoqueousuário14tevequepedirauxílioaoaplicador

doestudo.Noentanto,nasperguntasreferenteaomecanismodedicas,osdoissinalizaramqueas

dicasforamúteisparaodesenvolvimentodosexercícios.

4.3.

Ameaças

a

Validade

Umaimportanteameaçaavalidadedonossoestudofoiabaixaquantidadedeparticipantes.Não

foipossívelaplicartestesestatísticosparaaprofundarasanálisesdosdados.Outralimitaçãofoia

(51)

49

com passagem de parâmetros (conforme requeridopelo avaliadorautomático). Narealização

dosestudos, algunsdosparticipantesalegaram que nuncatinhamrealizadoacompilaçãodos

Referências

Documentos relacionados

Esta dissertação teve como objetivo descrever e analisar os principais desafios da Coordenadoria Regional e dos gestores das escolas estaduais de Careiro da

No início do ano letivo de 2015, as coordenadoras do PAAE da SRE de Uberlândia oferecerão, na sede da regional, uma capacitação com duração de 4 horas voltada para

No entanto, como discorre Oliveira (2012), pesquisas nacionais e internacionais têm demonstrado que treinamentos de curta duração não são capazes de suprir

Ressalta-se que mesmo que haja uma padronização (determinada por lei) e unidades com estrutura física ideal (física, material e humana), com base nos resultados da

[r]

O caso de gestão estudado discutiu as dificuldades de implementação do Projeto Ensino Médio com Mediação Tecnológica (EMMT) nas escolas jurisdicionadas à Coordenadoria

Assim, vem cumprindo o seu objetivo: a unificação do homem em seus pensamentos, palavras e ações, propondo que os cinco VALORES HUMANOS básicos do AMOR, da VERDADE, da AÇÃO

escola particular.. Ainda segundo os dados 7 fornecidos pela escola pública relativos à regulamentação das atividades dos docentes participantes das entrevistas, suas atribuições