Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes.
Autor(a) principal: | |
---|---|
Data de Publicação: | 2010 |
Tipo de documento: | Tese |
Idioma: | por |
Título da fonte: | Biblioteca Digital de Teses e Dissertações da UFCG |
Texto Completo: | http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/6556 |
Resumo: | Tradicionalmente, as disciplinas introdutórias de programação enfatizam o desenvolvimento do raciocínio lógico e a construção de programas mais que qualquer outra habilidade. Nestas disciplinas, problemas bem definidos são recursos utilizados para auxiliar os estudantes na aprendizagem de programação. Entretanto, essa abordagem de ensino apresenta um problema: ela não expõe os estudantes a um processo de resolução de problemas realista, que contempla o espaço do problema (entendimento de problemas e especificação de requisitos) em conjunto com o espaço da solução (construção de programas). Em virtude disto, são freqüentes os relatos da literatura acerca das dificuldades dos estudantes iniciantes em lidar com entendimento de problemas mal definidos e especificação de requisitos. Para tratar o problema apresentado, nós defendemos que as disciplinas introdutórias de programação devem (i) utilizar estratégias de ensino que assumam a programação como parte da Engenharia de Software; e (ii) desenvolver atividades que permitam aos estudantes irem da especificação dos requisitos ao programa, por meio da resolução de problemas mal definidos. Baseados nisto, nós concebemos uma metodologia de ensino denominada Programação Orientada ao Problema (POP). POP caracteriza-se por um conjunto de atividades que podem ser inseridas na disciplina introdutória de programação. Ela é constituída por um ciclo de resolução de problemas que põe em prática atividades típicas da Engenharia de Software, tais como, elicitação e especificação de requisitos, testes e programação. Nós avaliamos POP por meio de estudos de caso e experimentos controlados. Nos experimentos, nós adotamos um conjunto de variáveis que consideramos representativas do bom desempenho dos estudantes para lidar com o espaço do problema em conjunto com o espaço da solução. Das variáveis observadas, em 83;3% delas os estudantes POP foram mais eficientes que os estudantes não-POP. Para exemplificarmos, nos dois experimentos, os estudantes POP documentaram, em média, mais de 79% de requisitos que os estudantes não-POP. Além disso, implementaram 4 versões a menos do programa para atender a todos os requisitos, quando comparados aos estudantes não-POP. Embora os resultados não possam ser generalizados, o tratamento que fizemos das ameaças à validade nos permite aferir a qualidade dos resultados obtidos. |
id |
UFCG_c080e11e2d4f69e4348a01e352a53347 |
---|---|
oai_identifier_str |
oai:localhost:riufcg/6556 |
network_acronym_str |
UFCG |
network_name_str |
Biblioteca Digital de Teses e Dissertações da UFCG |
repository_id_str |
4851 |
spelling |
Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes.Problem-oriented programming: a methodology for problem understanding and specification in the context of beginner programming teaching.Programação de Computadores - EnsinoEngenharia de SoftwareAprendizagem de ProgramaçãoDisciplinas Introdutórias de ProgramaçãoProgramação Orientada ao Problema (POP)Computer Programming - TeachingSoftware EngineeringProgramming LearningIntroductory Programming DisciplinesProblem Oriented Programming (POP)Ciência da ComputaçãoEngenharia de SoftwareTradicionalmente, as disciplinas introdutórias de programação enfatizam o desenvolvimento do raciocínio lógico e a construção de programas mais que qualquer outra habilidade. Nestas disciplinas, problemas bem definidos são recursos utilizados para auxiliar os estudantes na aprendizagem de programação. Entretanto, essa abordagem de ensino apresenta um problema: ela não expõe os estudantes a um processo de resolução de problemas realista, que contempla o espaço do problema (entendimento de problemas e especificação de requisitos) em conjunto com o espaço da solução (construção de programas). Em virtude disto, são freqüentes os relatos da literatura acerca das dificuldades dos estudantes iniciantes em lidar com entendimento de problemas mal definidos e especificação de requisitos. Para tratar o problema apresentado, nós defendemos que as disciplinas introdutórias de programação devem (i) utilizar estratégias de ensino que assumam a programação como parte da Engenharia de Software; e (ii) desenvolver atividades que permitam aos estudantes irem da especificação dos requisitos ao programa, por meio da resolução de problemas mal definidos. Baseados nisto, nós concebemos uma metodologia de ensino denominada Programação Orientada ao Problema (POP). POP caracteriza-se por um conjunto de atividades que podem ser inseridas na disciplina introdutória de programação. Ela é constituída por um ciclo de resolução de problemas que põe em prática atividades típicas da Engenharia de Software, tais como, elicitação e especificação de requisitos, testes e programação. Nós avaliamos POP por meio de estudos de caso e experimentos controlados. Nos experimentos, nós adotamos um conjunto de variáveis que consideramos representativas do bom desempenho dos estudantes para lidar com o espaço do problema em conjunto com o espaço da solução. Das variáveis observadas, em 83;3% delas os estudantes POP foram mais eficientes que os estudantes não-POP. Para exemplificarmos, nos dois experimentos, os estudantes POP documentaram, em média, mais de 79% de requisitos que os estudantes não-POP. Além disso, implementaram 4 versões a menos do programa para atender a todos os requisitos, quando comparados aos estudantes não-POP. Embora os resultados não possam ser generalizados, o tratamento que fizemos das ameaças à validade nos permite aferir a qualidade dos resultados obtidos.Traditionally, introductory programming courses emphasize the development of logical reasoning and the construction of programs, more than any other skill. In theses couses, well-defined problems are resources used to assist students in their learning of programming. However, this teaching approach has a problem: it fails to expose students to a realistic problem solving process, involving the problem space (understanding the problem and requirements specification) along with the solution space (program construction). Thus, there have been too many reports in the literature concerning the novice students’ difficulties in understanding ill-defined problems and requirements specification. To address the problem presented, we defended that introductory programming courses should (i) use teaching strategies that take programming as part of Software Engineering, and (ii) develop activities that enable students to go from requirements specification to the program by solving of ill-defined problems. Based on this, we have designed a teaching methodology called Problem Oriented Programming (POP). POP is characterized as a set of activities that can be inserted to the introductory programming courses. It consists of a cycle of problem solving that puts into practice typical activities of the Software Engineering, such as: requirements elicitation and specification, testing and programming. POP has been evaluated by means of case studies and controlled experiments. For the experiments, we have adopted a set of variables found to be most representative of the students’ performance when dealing with the problem space together with the solution space. In 83:3% of all observed variables, POP students exhibited far greater efficiency than non-POP students. To exemplify this: in both experiments, POP students documented, on average, over 79% of the requirements that the non-POP students. Furthermore, POP students implemented four versions less of the program to meet all the requirements compared with the non-POP students. Despite the fact that the results cannot be generalized, the way we treated the threats to validity allow us to ensure the quality of our results.Universidade Federal de Campina GrandeBrasilCentro de Engenharia Elétrica e Informática - CEEIPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGCOSTA, Evandro de Barros.COSTA, E. B.http://lattes.cnpq.br/5760364940162939GUERRERO, Dalton Dario Serey.GUERRERO, D. D. S.http://lattes.cnpq.br/2050632960242405FIGUEIREDO, Jorge César Abrantes de.MASSONI, Tiago Lima.CHAVEZ, Christina Von Flach Garcia.SOARES, Sergio Castelo Branco.MENDONÇA, Andréa Pereira.2010-11-302019-09-02T18:06:10Z2019-09-022019-09-02T18:06:10Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesishttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/6556MENDONÇA, A. P. Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes. 2010. 203 f. Tese (Doutorado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2010. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/6556porFAPEAMinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCG2022-03-14T17:50:07Zoai:localhost:riufcg/6556Biblioteca Digital de Teses e Dissertaçõeshttp://bdtd.ufcg.edu.br/PUBhttp://dspace.sti.ufcg.edu.br:8080/oai/requestbdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.bropendoar:48512022-03-14T17:50:07Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false |
dc.title.none.fl_str_mv |
Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes. Problem-oriented programming: a methodology for problem understanding and specification in the context of beginner programming teaching. |
title |
Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes. |
spellingShingle |
Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes. MENDONÇA, Andréa Pereira. Programação de Computadores - Ensino Engenharia de Software Aprendizagem de Programação Disciplinas Introdutórias de Programação Programação Orientada ao Problema (POP) Computer Programming - Teaching Software Engineering Programming Learning Introductory Programming Disciplines Problem Oriented Programming (POP) Ciência da Computação Engenharia de Software |
title_short |
Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes. |
title_full |
Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes. |
title_fullStr |
Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes. |
title_full_unstemmed |
Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes. |
title_sort |
Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes. |
author |
MENDONÇA, Andréa Pereira. |
author_facet |
MENDONÇA, Andréa Pereira. |
author_role |
author |
dc.contributor.none.fl_str_mv |
COSTA, Evandro de Barros. COSTA, E. B. http://lattes.cnpq.br/5760364940162939 GUERRERO, Dalton Dario Serey. GUERRERO, D. D. S. http://lattes.cnpq.br/2050632960242405 FIGUEIREDO, Jorge César Abrantes de. MASSONI, Tiago Lima. CHAVEZ, Christina Von Flach Garcia. SOARES, Sergio Castelo Branco. |
dc.contributor.author.fl_str_mv |
MENDONÇA, Andréa Pereira. |
dc.subject.por.fl_str_mv |
Programação de Computadores - Ensino Engenharia de Software Aprendizagem de Programação Disciplinas Introdutórias de Programação Programação Orientada ao Problema (POP) Computer Programming - Teaching Software Engineering Programming Learning Introductory Programming Disciplines Problem Oriented Programming (POP) Ciência da Computação Engenharia de Software |
topic |
Programação de Computadores - Ensino Engenharia de Software Aprendizagem de Programação Disciplinas Introdutórias de Programação Programação Orientada ao Problema (POP) Computer Programming - Teaching Software Engineering Programming Learning Introductory Programming Disciplines Problem Oriented Programming (POP) Ciência da Computação Engenharia de Software |
description |
Tradicionalmente, as disciplinas introdutórias de programação enfatizam o desenvolvimento do raciocínio lógico e a construção de programas mais que qualquer outra habilidade. Nestas disciplinas, problemas bem definidos são recursos utilizados para auxiliar os estudantes na aprendizagem de programação. Entretanto, essa abordagem de ensino apresenta um problema: ela não expõe os estudantes a um processo de resolução de problemas realista, que contempla o espaço do problema (entendimento de problemas e especificação de requisitos) em conjunto com o espaço da solução (construção de programas). Em virtude disto, são freqüentes os relatos da literatura acerca das dificuldades dos estudantes iniciantes em lidar com entendimento de problemas mal definidos e especificação de requisitos. Para tratar o problema apresentado, nós defendemos que as disciplinas introdutórias de programação devem (i) utilizar estratégias de ensino que assumam a programação como parte da Engenharia de Software; e (ii) desenvolver atividades que permitam aos estudantes irem da especificação dos requisitos ao programa, por meio da resolução de problemas mal definidos. Baseados nisto, nós concebemos uma metodologia de ensino denominada Programação Orientada ao Problema (POP). POP caracteriza-se por um conjunto de atividades que podem ser inseridas na disciplina introdutória de programação. Ela é constituída por um ciclo de resolução de problemas que põe em prática atividades típicas da Engenharia de Software, tais como, elicitação e especificação de requisitos, testes e programação. Nós avaliamos POP por meio de estudos de caso e experimentos controlados. Nos experimentos, nós adotamos um conjunto de variáveis que consideramos representativas do bom desempenho dos estudantes para lidar com o espaço do problema em conjunto com o espaço da solução. Das variáveis observadas, em 83;3% delas os estudantes POP foram mais eficientes que os estudantes não-POP. Para exemplificarmos, nos dois experimentos, os estudantes POP documentaram, em média, mais de 79% de requisitos que os estudantes não-POP. Além disso, implementaram 4 versões a menos do programa para atender a todos os requisitos, quando comparados aos estudantes não-POP. Embora os resultados não possam ser generalizados, o tratamento que fizemos das ameaças à validade nos permite aferir a qualidade dos resultados obtidos. |
publishDate |
2010 |
dc.date.none.fl_str_mv |
2010-11-30 2019-09-02T18:06:10Z 2019-09-02 2019-09-02T18:06:10Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/6556 MENDONÇA, A. P. Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes. 2010. 203 f. Tese (Doutorado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2010. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/6556 |
url |
http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/6556 |
identifier_str_mv |
MENDONÇA, A. P. Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes. 2010. 203 f. Tese (Doutorado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2010. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/6556 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.relation.none.fl_str_mv |
FAPEAM |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal de Campina Grande Brasil Centro de Engenharia Elétrica e Informática - CEEI PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO UFCG |
publisher.none.fl_str_mv |
Universidade Federal de Campina Grande Brasil Centro de Engenharia Elétrica e Informática - CEEI PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO UFCG |
dc.source.none.fl_str_mv |
reponame:Biblioteca Digital de Teses e Dissertações da UFCG instname:Universidade Federal de Campina Grande (UFCG) instacron:UFCG |
instname_str |
Universidade Federal de Campina Grande (UFCG) |
instacron_str |
UFCG |
institution |
UFCG |
reponame_str |
Biblioteca Digital de Teses e Dissertações da UFCG |
collection |
Biblioteca Digital de Teses e Dissertações da UFCG |
repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG) |
repository.mail.fl_str_mv |
bdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.br |
_version_ |
1809744391063994368 |