Usando Python para a introdução à programação em cursos universitários. Carla A. D. M. Delgado Departamento de Ciência da Computação - UFRJ

Documentos relacionados
Computação com Mídias na Aprendizagem de Programação Orientada a Objetos em um Curso Técnico de Informática

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Sobre a Disciplina Programação Imperativa. Prof. Alberto Costa Neto DComp/UFS

05/11/2018. Linguagem de Programação e Estruturada

Algoritmos e Programação

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO

Visão Geral do Curso. Prof. Alberto Costa Neto Introdução à Ciência da Computação (Programação em Python)

Fundamentos de programação

Visão Geral do Curso. Prof. Alberto Costa Neto Introdução à Ciência da Computação (Programação em Python)

Aula 06 Introdução à Programação com a Linguagem Python

4. PÚBLICO ALVO Alunos que queiram conhecer os fundamentos de programação de computadores com a linguagem Python.

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE UBERLÂNDIA

Introdução à programação em C#

Estrutura de Dados e Lógica de Programação. Cátia Alves Marcelo Nunes 102 h/a 17/08/2015 a 12/12/2015

Informática para Engenharia

PLANO DE UNIDADE DIDÁTICA- PUD

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE UBERLÂNDIA

Eng. Alimentos PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO CÓDIGO DISCIPLINA PRÉ-REQUISITOS

Computação II - Python Aula 1 - Apresentação do curso e revisão de programação modular

PLANO DE ENSINO CURSO: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS. DISCIPLINA: Programação Orientada a Objetos

Algoritmos e Programação

Algoritmos e Programação

Utilização da Linguagem Python e dos conhecimentos em Matemática no Ensino da Lógica de Programação. Karla Pereira Mestre em Informática (IComp-UFAM)

MÓDULO 3: Programação Estruturada

Lista de Exercícios AV1

Valdex Santos. 09 de junho de 2011

Programação Estruturada Aula Plano de Disciplina

Linguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE UBERLÂNDIA

FACCAT Sistemas de Informação. Estruturas de Dados

Programação Estruturada Orientada a Objetos

Lógica de Programação para Jogos

PLANO DE ENSINO CURSO: BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Programação de Computadores

Computação Básica. Prof. Tiago Alves. Universidade de Brasília Campus Gama

Unidade 5: Introdução à Programação com Python Prof. Daniel Caetano

Introdução a Orientação a Objetos

Oficina de Programação em Python com Jogos

Professor: Rodrigo Rocha Curso: Engenharia Civil Aula 1

Ensino Técnico Integrado ao Médio FORMAÇÃO PROFISSIONAL. Plano de Trabalho Docente 2014

Lógica de Programação. Tecnologia em Redes de Computadores IFSULDEMINAS Campus Inconfidentes Prof. Kleber Rezende

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Laboratório de Programação 1 Aula 07

Computação Científica com MATLAB. Melissa Weber Mendonça

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Abaixo iremos pormenorizar cada um de seus atributos:

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO

Linguagens de Programação

CÓD CURSO DE ENGENHARIA DE COMPUTAÇÃO MATRIZ CURRICULAR Currículo nº1

Algoritmos Fundamento e Prática

Aula 4 Objetivos if/else while

Programação: Vetores

Ferramentas de Suporte

Correção Ortográfica. Processamento Estatístico da Linguagem Natural. Correção de Erros. Distância Mínima de Edição. Distância Mínima de Edição

Programação Orientada a Objetos

Introdução à linguagem Python Minicurso Aula 1 Prof.º Alexandre C. Andreani

Oficina de Programação de Drones Fundamentos de Python Prof. Me. José Carlos Perini

IV SEMANA TECH Outubro / 2017 PROGRAMA 1. Tema TI para a sociedade e Site. 2. Cronograma geral. semanatech.com.

Programação de Computadores

PROGRAMA - Disciplinas Lecionadas

Computação 1 - Python Aula 10 - Teórica: Estrutura de Dados - Dicionário. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

Python 3.x Estrutura de Repetição while

Linguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo

Plano de Trabalho Docente 2017 Ensino Técnico

LINGUAGEM C: ARRAY: VETORES E MATRIZES

A pesquisa no ensino de computação. Práticas de ensino de algoritmos (Hazzan, Cap. 4) Péricles Miranda

Universidade Federal de Uberlândia Faculdade de Computação. FACOM49010(V) Algoritmos e Programação de Computadores Engenharia Mecatrônica

Capítulo 8. Estruturas de Controle no Nível de Sentença

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Programação de Computadores LAÇOS E LISTAS

CONTEÚDO PROGRAMÁTICO

Rodrigo de Barros Paes

CURSO TÉCNICO DE NÍVEL MÉDIO EM INFORMÁTICA - PLANO DE DISCIPLINA 2015 LINGUAGEM DE PROGRAMACAO 1 LP1

Algoritmos e Técnicas de Programação

A palavra ALGORITMO teve origem com um Matemático Persa, al. Khawarizmi. O seu trabalho mais famoso foi Al-jabr walmuquabalah,

CONSIDERANDO que o art. 28 das Normas Gerais da Graduação vigentes dispõe sobre o Plano de Ensino;

FUNDAÇÃO UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO

Uma Intervenção Metodológica para Auxiliar a Aprendizagem de Programação Introdutória: um estudo experimental

Visão Geral do Curso. Prof. Alberto Costa Neto Introdução à Ciência da Computação (Programação em Python)

Programação Aplicada à. Engenharia de Alimentos

Métodos de Ensino. Práticas de ensino de algoritmos (Hazzan, Cap. 7) Péricles Miranda

Fundamentos de Programação em Python

Computação 1 - Python Aula 9 - Teórica: Interferindo no fluxo de repetição: Break e Continue Laços Aninhados

Linguagens de Programação

Lógica de Programação

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Apresentação da disciplina

SUBGERÊNCIA DE GESTÃO EDUCACIONAL PLANO DE CURSO

Programação de Computadores

Aula 10: Introdução a Vetores e Matrizes

TREINAMENTO PARA COMPETIÇÕES DE PROGRAMAÇÃO: Estudo de caso nas turmas do técnico em informática integrado do Câmpus Muzambinho RESUMO

CONTROLE DE FLUXO. Algoritmos e Programação. Prof. Alceu Britto Slides cedidos pelo Prof. Edson J. R. Justino (PUCPR) Aula 9 e 10

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Água: composição, propriedades e importância para os seres vivos. Estruturas celulares nas células eucariotas e sua interrelação na fisiologia celular

Transcrição:

Usando Python para a introdução à programação em cursos universitários Carla A. D. M. Delgado Departamento de Ciência da Computação - UFRJ

Introdução à programação na universidade: CS1 e CS2 Cursos introdutórios de programação são de fundamental importância para qualquer estudante na área de ciências exatas. Porém estes cursos sofrem com: Altas taxas de abandono e reprovação Falta de motivação Curva de aprendizado não linear Medo, pânico e trauma rondam o aprendizado de programação :-(

Como ensinar programação para os novatos? Uma ampla discussão já se estendo por anos Comece com: Opção 1) Programação imperativa estruturada Obstáculo: ausência de uma linha mestra que guie o processo de programação Risco: baixa motivação, incapacidade de construir programas maiores Opção 2) Programação Orientada a objetos (POO) Obstáculo: alto nível de abastração, sintaxe extensa Risco: ofuscar conceitos básicos, dificultar o entendimento

Nossa proposta (Delgado et al, WEI-CSBC 2016) Alinhada com a ideia de voltar ao básico, enfatizando: Resolução de problemas Decomposição em procedimentos Domínio de skills básicas Através de: CS1 baseado na abordagem imperativa-estruturada, focando na construção de módulos concisos de código e deixando POO para CS2

O que fazemos Adoção de Python como linguagem de programação Iniciamos com a construção de funções em Python Usamos modularização como estratégia de programação Deixamos interação com o usuário para o final do curso Restringimos o uso de comandos de entrada e saída à função principal do programa

Slides utilizados na primeira semana

Benefícios Mais tempo para praticar o conceito de funções Mais tempo para conhecer as particularidades da linguagem de programação sendo utilizada Conexão com habilidades e conhecimentos pré existentes: Os estudantes já foram previamente expostos ao conceito de funções matemáticas Permite trabalhar melhor tarefas cognitivas relacionadas ao desenvolvimento de programas desenho de soluções, legibilidade, reutilização)

Outros benefícios Noções de entrada e saída de um algoritmo são tratadas conceitualmente e não confundidas com entrada e saída via console (ou por outros meios). Podemos praticar o desenvolvimento e chamada e funções incrementalmente, sem a preocupação de escrever um programa completo. Funções pequenas são mais simples de tester e debugar.

Curso de CS1 semana a semana 1 O que é programação; Funções 7 Comando de repetição - while 2 Funções 8 Comando de repetição- for 3 Tipos de Dados, Strings Estrutura de decisão - if 9 Loops aninhados; Matrizes 4 Variáveis e atribuição 10 Dicionários 5 Manipulação de String, tuplas, listas 11 Entrada e saída básica 6 Listas 12 Construção de programas complexos Material coberto a cada semana de curso. Uma prova intermediária acontece entre as semanas 6 e 7, e as provas finais ocorrem após a semana 12.

htpp://ladybugcodingschool.com

Conclusões A ênfase na construção e uso de funções desde o início de um curso introdutório, associado ao uso de uma linguagem ao mesmo tempo simples e poderosa como o Python reduz o tempo e esforço necessários para desenvolver as habilidades de programação; proporciona uma base sólida para a futura construção de outras habilidades em estágios futuros Estudo de caso: projeto algpedia

Outras Conclusões Altas taxas de reprovação e abandono, dúvidas quanto à qualidade dos cursos CS1 e CS2 são problemas relacionados à mudanças nos cenários do ensino superior, e a solução está fora do alcance de cada professor isoladamente! Mudanças de turma, reprovações e a preservação da continuidade do aprendizado são demandas importantes. É necessário repensar os fundamentos destes cursos: objetivos, conteúdo, linguagem de programação, estratégias de ensino e material de referência.

Collaborative Encyclopedia of Algorithms AlgPedia http://algpedia.dcc.ufrj.br/ Thais N. Vianna, Carla A. D. M. Delgado Programa de Pós Graduação em Informática PPGI - UFRJ João Carlos P. Silva, Carlos Eduardo da S. Martins, Fernando R. Gouvêa Departamento de Ciência da Computação - UFRJ

Python+Django

Trabalhos futuros Analisar as notas dos estudantes antes e depois desta abordagem ser adotada. Nossa análise preliminar revelou um fenômeno interessante: a polarização das notas foi atenuada, o que sugere que a curva de aprendizado esteja mais suave. Obrigada pela atenção