Atualmente, a maioria dos estudantes que entram na faculdade demonstram uma grande deficiência em quesitos como raciocínio lógico e criatividade. Tal fato, na maioria das vezes resulta em alunos e professores sem motivação, baixíssimo nível de aprendizagem e, consequentemente, alto índice de evasão e reprovação. A programação de computadores é uma disciplina que faz parte do currículo dos cursos da área de computação, que consiste na resolução de problemas que requer o domínio de uma linguagem de programação, o conhecimento do conteúdo que está sendo tratado, e criatividade. Ao observar os alunos da graduação programando, podemos notar que a estratégia que foi utilizada pela maioria deles é a de escrever o programa, ou uma parte dele, e compilar com o intuito de realizar uma busca por eventuais erros. Geralmente, os alunos entram em um ciclo alterar-compilar o programa sem a devida reflexão sobre as alterações que realizam antes de uma nova compilação. Para que seja possível obter melhores resultados de aprendizagem o autor acredita que é fundamental que os alunos se envolvam com os problemas que estão resolvendo. Fazendo com que o aprendizado seja um processo ativo, fazendo com que os alunos possam “colocar a mão na massa”. Este processo se dá de forma especialmente efetiva em um contexto onde o aluno está conscientemente engajado em construir um produto público e de interesse pessoal. O autor acredita que o método de aprendizagem via projetos, no qual se baseia na ideia de que elaborar um produto (concreto ou abstrato), é um bom contexto para que ocorra aprendizado, e possui características que favorecem totalmente a ocorrência do ciclo descrição-execução-reflexão-depuração. Segundo o autor, diversas são as características que tornam a atividade de desenvolvimento de projetos educacionalmente interessante, entre elas: o aluno torna-se um participante ativo no processo de aprendizagem, tendo controle e responsabilidade sobre o mesmo; reflexão e discussão são