Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/6556
Title: Programação orientada ao problema: uma metodologia para entendimento de problemas e especificação no contexto de ensino de programação para iniciantes.
Other Titles: Problem-oriented programming: a methodology for problem understanding and specification in the context of beginner programming teaching.
???metadata.dc.creator???: MENDONÇA, Andréa Pereira.
???metadata.dc.contributor.advisor1???: COSTA, Evandro de Barros.
???metadata.dc.contributor.advisor2???: GUERRERO, Dalton Dario Serey.
???metadata.dc.contributor.referee1???: FIGUEIREDO, Jorge César Abrantes de.
???metadata.dc.contributor.referee2???: MASSONI, Tiago Lima.
???metadata.dc.contributor.referee3???: CHAVEZ, Christina Von Flach Garcia.
???metadata.dc.contributor.referee4???: SOARES, Sergio Castelo Branco.
Keywords: 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)
Issue Date: 30-Nov-2010
Publisher: Universidade Federal de Campina Grande
Citation: 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
???metadata.dc.description.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.
Abstract: 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.
Keywords: 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)
???metadata.dc.subject.cnpq???: Ciência da Computação
Engenharia de Software
URI: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/6556
Appears in Collections:Doutorado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
ANDRÉA PEREIRA MENDONÇA – TESE (PPGCC) 2010.pdfAndréa Pereira Mendonça - Tese ( PPGCC) 20102.41 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.