Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

45
LABORATÓRIO DE INTRODUÇÃO AO PROCESSAMENTO DE IMAGENS E RECONHECIMENTO DE PADRÕES UTILIZANDO A LINGUAGEM PYTHON/NUMPY Curso à distância online aberto e gratuito Compartilhando experiências Roberto A Lotufo Palestra EAE (Ensino e Aprendizado em Engenharia) FEEC-Unicamp, 28 nov 2013 http://youtu.be/jTnD1XOWKiw : Vídeo desta apresentação

description

Vou procurar compartilhar minha experiência recente no oferecimento de um curso com 1750 inscritos que oferecemos por 5 semanas numa plataforma web de programação colaborativa que desenvolvemos há mais de 5 anos. Este curso pode ser classificado como MOOC (massive online open course) e teve os desafios típicos desta modalidade de curso. O objetivo desta palestra é orientar os professores candidatos a oferecerem cursos nesta categoria para listar os principais pontos que precisam ser cuidados para o sucesso deste tipo de curso. Iremos falar também das motivações que nos levaram a oferecer este curso, as ferramentas computacionais que foram utilizadas, os resultados alcançados e os principais aprendizados. Veja também a apresentação http://www.slideshare.net/RobertoLotufo/cursopynumpy-2ed que mostra a experiência no oferecimento da 2a. edição do curso. Roberto A Lotufo é professor titular da FEEC-Unicamp com área de interesse em processamento de imagens e reconhecimento de padrões com aplicações na área médica, visão por computador, biometria e monitoramento por vídeo. Próximo curso inscrições abertas até 7 de março 2014: http://adessowiki.fee.unicamp.br/adesso/wiki/main/cursonumpypirp/view/

Transcript of Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Page 1: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

LABORATÓRIO DE INTRODUÇÃO AOPROCESSAMENTO DE IMAGENS E RECONHECIMENTO DE PADRÕESUTILIZANDO A LINGUAGEMPYTHON/NUMPY

Curso à distância online aberto e gratuito

Compartilhando experiências

Roberto A LotufoPalestra EAE (Ensino e Aprendizado em Engenharia) – FEEC-Unicamp, 28 nov2013

http://youtu.be/jTnD1XOWKiw: Vídeo desta apresentação

Page 2: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Plano de Apresentação

• Introdução

• Metodologia

• Dados estatísticos

• Avaliação

Page 3: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Motivações do curso

• Ensinar um grande número de alunos

• Ensinar uma atividade de programação avançada não

trivial, com maior nível de abstração e eficiência

• Identificar e atrair bons alunos para fazerem mestrado e

doutorado

• Ajudar na preparação curso de programação

matricial/paralela para Proc. de Imagens

• Testar o Adessowiki (atendimento muitos usuários)

• Divulgar o Adessowiki

• Ganhar experiência em cursos estilo MOOC

Page 4: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Histórico

• 1990 – 1995: Khoros, Un. Novo México• Ambiente gratuito visual de processamento de imagens

• Toolboxes desenvolvidas: Morfologia e Visualização de ImagensMédicas

• DIP – Digital Image Processing Course, um dos primeiros disponíveisna Internet, 1995

• 1995 – 2002: MATLAB• Toolbox morfologia

• Projeto Adesso, parceria com CTI-Renato Archer

• Wiki, 2001

• 2002 – 2007: MATLAB e Python• 2002: Toolbox Proc. Imagens para Python

• 2007: wiki do DCA – MATLAB

• 2008 – hoje : Python – Numerical Python• Adessowiki, 2008

Page 5: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Adessowiki

• Projeto desenvolvido junto com CTI-Renato Archer

• Plataforma colaborativa para escrita e programação

científica

• Usado em cursos desde 2008

• Vídeo demonstrativo:

• http://www.youtube.com/watch?v=FcMVtx-3_Ek

Page 6: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Fatores diferenciais do Adessowiki para

ensino• Programação colaborativa

• Dados, Programas, Ambiente todos na nuvem

• Tarefa passada para os alunos

• Durante a semana discussão lista email

• Programas feitos e compartilhados

• Discussão baseada na experiência e criatividade das soluções dos

alunos

Page 7: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Objetivos do curso

• Ensino de programação no estilo matricial paralelo

utilizando pacote NumPy (poderia ser MATLAB ou suas

versões equivalentes)

• Ensino de conceitos iniciais de processamento de

imagens e reconhecimento de padrões

Page 8: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Plano de Apresentação

• Introdução

• Metodologia

• Dados estatísticos

• Avaliação

Page 9: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Ferramentas Principais

• Lista Google groups, inscrição e comunicação

• Adessowiki:

• Tutoriais e exercícios de programação.

• Ambiente colaborativo de programação científica desenvolvido pela Unicamp e CTI-Renato Archer e em uso em várias instituições desde 2008

• Google Forms: testes múltipla escolha, usando script de correção automática (Flubaroo)

Page 10: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Oferecimento (estilo MOOC)

• Pela Extecamp: curso de difusão

• Sem certificado

• Gratuito

• Aberto a qualquer um (sem critério de seleção)

• Período: 5 semanas, 8 de setembro a 12 de outubro 2013

Page 11: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Metodologia e formato do curso

• Dividido em 4 partes:

• 1. Introdução Adessowiki, Python e NumPy

• 2. Criação de imagens, transformação de intensidade e

transformação geométrica

• 3. Filtros espaciais, convolução e filtros de ordem

• 4. Classificador k-vizinho mais próximo

Page 12: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Metodologia e formato do curso

• Três tipos de atividades:

• 1. Treinamento em programação utilizando Adessowiki e

lendo pequenos tutoriais explicativos

• 2. Testes múltipla escolha on-line (google forms)

• 3. Programas com correção automática (Adessowiki)

• Praticamente não houve vídeos, as instruções para

realização das atividades eram todas escritas e

realizadas no Adessowiki.

Page 13: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Metodologia e formato do curso

• Tanto testes múltipla escolha como programas a serem

submetidos tinham prazo de entrega.

• Testes com 10 questões múltipla escolha

• Programas conceituais de solução típica com 5 a 20

linhas de programação

• Foi possível entregar fora do prazo, porém não foi

considerado no cômputo da avaliação.

• Gabarito dos testes era discutido logo após o prazo de

entrega.

Page 14: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Metodologia e formato do curso

• Roteiros (atividade de edição livre)

• Mini-tutoriais (leitura)

• Biblioteca didática de funções (leitura)

• Programas para correção automática (avaliação)

• Testes Múltipla Escolha – 10 questões (avaliação)

Page 15: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

7 Testes e 9 Programas

• Parte I (2 semanas)

• 3 testes: 1.1, 1.2, 1.3

• 2 programas: Quadrados, Xadrez

• Parte II (1 semana)

• 2 testes: 2.1, 2.2

• 3 programas: Rampa, Normalização, Transformação geométrica

• Parte III (1 semana)

• 1 teste: 3.1

• 1 programa: Filtro ordem (max, min, mediana)

• Parte IV (1 semana)

• 1 teste: 4.1

• 3 programas: Vizualização, Distância, PCA

Page 16: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Objetivo dos testes

• Servir de roteiro de estudos

• Roteiro para experimentar comandos de programação

• Verificar quem fez de fato os programas

• (Os programas entregues podem ser copiados)

Page 17: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Exemplo de questão teste

• Seja o comando

i,j = np.indices((5,3))

Assinale a alternativa correta:

a) i é uma matriz de 5 linhas e 5 colunas

b) i é um escalar de valor 5

c) i e j tem as mesmas dimensões

d) j é uma matriz quadrada

e) Nenhuma das anteriores

Page 18: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Exemplo de programa

• Image estilo xadrez, pixels 0 e 1

• [[0,1,0,1,0,1],

• [1,0,1,0,1,0],

• [0,1,0,1,0,1]]

• 6 formas de programar:

• Estilo C

• Fatiamento da matriz (slice)

• Matriz de índices

• Ladrilho

• Redimensionamento

• Replicação

• Lista

Page 19: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Nove Programas – tamanho típico

• 1a. parte: Programação NumPy

• 1.1. Quadrados de Cinza: 13 linhas

• 1.2. Xadrez parametrizado: 9 linhas

• 2a. parte: Transformações Intensidade e Geométrica

• 2.1. Rampa: 3 linhas

• 2.2. Normalização: 12 linhas

• 2.3. Transformação geométrica: 28 linhas (modificar um existente)

• 3a. parte: Filtragem

• 3.1. Filtro ordem: 26 linhas (o mais difícil de todos)

• 4a. Parte: Classificadores

• 4.1. Vizualização amostra: 2 linhas

• 4.2. Distância a k-vizinhos: 8 linhas

• 4.3. PCA: 8 linhas (o mais difícil do ponto de vista teórico)

Page 20: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Metodologia de Notas para programas

p =Tmin

T

p indica uma percentagem do tempo de execução do programa mais rápido em relação ao tempo do seu programa

Nota do programa é normalizada entre 10.0 e 5.0relativas aos programas certos entre o índice p=1 e o menor índice p.

Desafio é conseguir uma nota que reflita um bom programa. No caso, para ficarmais fácil usou-se o critério de tempo de execução do programa que estejacorreto.

Estou procurando sugestões de como fazer esta atribuição automática de nota.

Page 22: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Plano de Apresentação

• Introdução

• Metodologia

• Dados estatísticos

• Avaliação

Page 23: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Inscritos: 1750

Inscrições por dia

Page 24: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Perfil dos inscritos

Page 25: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Expectativa

Page 26: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

N. de usuários editaram programas por dia

0

50

100

150

200

250

300

8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12

Semana 1.1 Semana 1.2 Semana 2 Semana 3 Semana 4

1.1

1.2

1.3 2.1

2.23.1

4.1

Entregas

setembro outubro

Page 27: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Funil dos cursos MOOC

• The first MITx course, Circuits and Electronics, attracted

over 150,000 participants, but ―fewer than half look at the

first problem set‖, and only 7,157 passed, or about 5%

• Inscritos: 1750

• Acessaram o sistema com senha: 1202 (68%)

• Editaram alguma página: 655 (37%)

• Fizeram primeiro teste: 511 (29%)

• Fizeram primeiro programa: 137 (7,8%)

• Completaram com 50% de aproveitamento: 41 (30% do

índice anterior) ou (2,3% dos inscritos)

Page 28: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Funil dos

testes e

programas

0

100

200

300

400

500

600

1.1 1.2 1.3 2.1 2.2 3.1 4.1

Testes Múltipla Escolha

Testes Múltipla Escolha

0

20

40

60

80

100

120

140

160

Programas Correção Automática

Programas Correção Automática

Page 29: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

0

10

20

30

40

50

60

70

80

90

100

0 10 20 30 40 50 60 70 80 90 100

dia

Te

ste

s

Média Programas

Correlação Notas Programas e Testes

Page 30: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Plano de Apresentação

• Introdução

• Metodologia

• Dados estatísticos

• Avaliação

Page 31: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Aprendizados

• Lançamento de curso é momento bastante estressante –

igual a organizar um evento onde chegarão milhares de

pessoas, tudo tem que estar funcionando

• Ferramentas de comunicação são primordiais

• É importante ter ferramentas de acompanhamento do

desempenho individualizado do aluno

• Conteúdo e instruções precisam ser testados e revisados.

Se existe alguma chance de má interpretação, ela vai

acontecer com um bom número de alunos

• É preciso experiência de professor no controle da classe

• Necessidade de acompanhamento em tempo integral

Page 32: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Comentário de participante

• ―O Ensino à Distância (EAD) apresenta algumas

vantagens em relação ao Ensino Presencial. Por sua

própria natureza, os mentores do curso acabam se

obrigando a manter um conteúdo bem estruturado, o que

muitas vezes não acontece em cursos presenciais. Um

sistema bem estruturado, que hospede todo o material

usado em sequência, assim como todo o histórico de

troca de mensagens, funciona como um GUIA DE

ESTUDOS, apontando oportunamente para referências

externas.‖

Muito verdade

Page 33: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Principais dificuldades

• Como corrigir erros feitos pelos alunos (sem ser

necessário acompanhamento individualizado)

• Lista de discussão foi moderada o tempo todo

• Curso foi muito intensivo, principalmente na primeira

semana

• Curso é inerentemente difícil, envolve conhecimentos

avançados e maturidade em programação

• Primeira semana do curso é crucial – é quando os

objetivos e expectativas são consolidados

Page 34: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Pontos altos do curso

• Teste múltipla escolha forte correlação com o estudantes

que faziam melhores programas

• Sistema de compartilhamento de soluções bastante

apropriado (todos vêm as soluções de todos)

• Sistema de visualização dos programas classificados por

tempo de execução foi desafio motivacional para os

participantes

• Comprovação do ambiente Adessowiki para ensinar

programação

Page 35: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Comentário de aluno

• Gostei muito do curso e gostei bastante da ideia de editar

e executar o código diretamente pelo browser. O curso

ajuda bastante com a prática de código matricial. Foi uma

experiência bastante interessante.

• Seria muito bom ter cores no editor de código e talvez

complemento de código (como nas IDEs).

• Faz falta ferramentas para debug.

• Gostaria de ter visto mais conteúdo sobre processamento

de imagens e reconhecimento de padrões.

Page 36: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Comentário de aluno

O ajuste de prazo de entrega para os finais de semana

ajudou bastante. Talvez o sistema de cálculo de

porcentagem de acerto das atividades de programação

possa evoluir mais. Não sei da responsabilidade legal que

um professor tem ao emitir um certificado, tenho certeza

que um certificado simples, em formato digital mesmo iria

motivar mais as pessoas a concluírem o curso. A

existência de um ranking público para esse tipo de curso

também é polêmico :D afinal pode ser tanto motivante

quanto desmotivante. É o primeiro curso a distância que eu

faço, e foi uma experiência bem interessante.

Page 37: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Comentário de colega

(antes de iniciar o curso)

• Oi Lotufo,

• Esses cursos online costumam ter uma taxa de evasão

grande, então não deixe isso lhe desanimar: eu acho

sempre mais produtivo pensar ao contrário — ao invés de

dizer entraram X e ficaram apenas Y, é preciso pensar

"quantas turmas convencionais eu precisaria oferecer

para formar Y" ?

• Eduardo Valle

Muito verdade

Page 38: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Peculiaridades do curso

• Primeiro colocado foi aluno anônimo

• Um caso de plágio recorrente

• Apenas 3 mulheres entre os 41 finalistas

• Lista de discussão foi moderada

Page 39: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Princípios

• Adotado desde a concepção:

• "Organizing the course around exercises and mental challenges is

much more effective than around lectures‖

• Será adotado na próxima edição:

• Coursera found that students who paid $30 to $90 were

substantially more likely to finish the course.

Page 40: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Motivações do curso

(O que deu certo)• (Pouco) Ensinar um grande número de alunos

• (OK) Ensinar uma atividade de programação avançada

não trivial, com maior nível de abstração e eficiência

• (Pouco) Identificar e atrair bons alunos para fazerem

mestrado e doutorado

• (OK) Ajudar na preparação curso de programação

matricial/paralela para Proc. de Imagens

• (OK) Testar o Adessowiki (escalamento)

• (OK) Divulgar o Adessowiki

• (OK) Ganhar experiência em cursos estilo MOOC

Page 41: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Ciclo de adoção de novas tecnologias

Page 42: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Referências recentes MOOC

• Results from the First-Year Course MOOCs: Not there yet

• http://m.cacm.acm.org/blogs/blog-cacm/168862-results-

from-the-first-year-course-moocs-not-there-yet/fulltext

• Udacity’s Sebastian Thrun, Godfather of the Free Online

Education, chages course

• http://www.fastcompany.com/3021473/udacity-sebastian-

thrun-uphill-climb

Page 43: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Agradecimentos

• Rubens Campos Machado – CTI Renato Archer

• Letícia Rittner

• Roberto Medeiros de Souza

• André Luiz da Costa

• Mariana Pinheiro Bento

• Eduardo Trettel

• Alunos do curso IA368U 2o. Semestre 2013

• Edson Zanini - Extecamp

• Gláucia Lorenzetti - Extecamp

• Institucional:

• DCA – FEEC - Extecamp

Page 44: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

Conclusões - Discussão

• MOOC é uma ótima oportunidade de experimentação

sobre aprendizagem

• MOOC é ótima oportunidade para preparar e organizar

material didático

• Infraestrutura para MOOC não é trivial:

• Preparação de material didático

• Comunicação aluno-aluno e professor-aluno

• Acompanhamento

• Avaliação

Page 45: Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP

• Maiores informações sobre Adessowiki

• http://www.adessowiki.org

• Contato:

• http://faculty.dca.fee.unicamp.br/lotufo/