LABORATÓRIO DE INTRODUÇÃO AO
PROCESSAMENTO DE IMAGENS E
RECONHECIMENTO DE PADRÕES
UTILIZANDO A LINGUAGEM
PYTHON/NUMPY
Curs...
Plano de Apresentação
• Introdução
• Metodologia
• Dados estatísticos
• Avaliação
Motivações do curso
• Ensinar um grande número de alunos
• Ensinar uma atividade de programação avançada não
•
•
•
•

•

t...
Histórico
• 1990 – 1995: Khoros, Un. Novo México
• Ambiente gratuito visual de processamento de imagens
• Toolboxes desenv...
Adessowiki
• Projeto desenvolvido junto com CTI-Renato Archer
• Plataforma colaborativa para escrita e programação

cientí...
Fatores diferenciais do Adessowiki para
ensino
• Programação colaborativa
• Dados, Programas, Ambiente todos na nuvem
• Ta...
Objetivos do curso
• Ensino de programação no estilo matricial paralelo

utilizando pacote NumPy (poderia ser MATLAB ou su...
Plano de Apresentação
• Introdução
• Metodologia
• Dados estatísticos
• Avaliação
Ferramentas Principais
• Lista Google groups, inscrição e comunicação

• Adessowiki:
• Tutoriais e exercícios de programaç...
Oferecimento (estilo MOOC)
• Pela Extecamp: curso de difusão
• Sem certificado
• Gratuito
• Aberto a qualquer um (sem crit...
Metodologia e formato do curso
• Dividido em 4 partes:
• 1. Introdução Adessowiki, Python e NumPy
• 2. Criação de imagens,...
Metodologia e formato do curso
• Três tipos de atividades:
• 1. Treinamento em programação utilizando Adessowiki e

lendo ...
Metodologia e formato do curso
• Tanto testes múltipla escolha como programas a serem
•
•
•
•

submetidos tinham prazo de ...
Metodologia e formato do curso
• Roteiros (atividade de edição livre)
• Mini-tutoriais (leitura)
• Biblioteca didática de ...
7 Testes e 9 Programas
• Parte I (2 semanas)
• 3 testes: 1.1, 1.2, 1.3
• 2 programas: Quadrados, Xadrez
• Parte II (1 sema...
Objetivo dos testes
• Servir de roteiro de estudos
• Roteiro para experimentar comandos de programação
• Verificar quem fe...
Exemplo de questão teste
• Seja o comando

i,j = np.indices((5,3))
Assinale a alternativa correta:
a) i é uma matriz de 5 ...
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 ...
Nove Programas – tamanho típico
• 1a. parte: Programação NumPy
• 1.1. Quadrados de Cinza: 13 linhas
• 1.2. Xadrez parametr...
Metodologia de Notas para programas
Desafio é conseguir uma nota que reflita um bom programa. No caso, para ficar
mais fác...
Demonstrações
• Xadrez
• http://adessowiki.fee.unicamp.br/adesso/wiki/ia636/iachess/view/
Plano de Apresentação
• Introdução
• Metodologia
• Dados estatísticos
• Avaliação
Inscritos: 1750

Inscrições por dia
Perfil dos inscritos
Expectativa
N. de usuários editaram programas por dia
300

1.1

Entregas

250

200

1.2

150

100

1.3

2.1
2.2

50

3.1

4.1

0
8

9 ...
Funil dos cursos MOOC
• The first MITx course, Circuits and Electronics, attracted

over 150,000 participants, but ―fewer ...
Testes Múltipla Escolha
600
500
400
300
Testes Múltipla Escolha

200

Funil dos
testes e
programas

100
0

1.1

1.2

1.3

...
Correlação Notas Programas e Testes
100

90

Média Testes

80

70

60

50

40

30

20

10

0
0

10

20

30

40

50

60

70...
Plano de Apresentação
• Introdução
• Metodologia
• Dados estatísticos
• Avaliação
Aprendizados
• Lançamento de curso é momento bastante estressante –

•
•
•

•
•

igual a organizar um evento onde chegarão...
Comentário de participante
• ―O Ensino à Distância (EAD) apresenta algumas

vantagens em relação ao Ensino Presencial. Por...
Principais dificuldades
• Como corrigir erros feitos pelos alunos (sem ser
•
•
•
•

necessário acompanhamento individualiz...
Pontos altos do curso
• Teste múltipla escolha forte correlação com o estudantes

que faziam melhores programas
• Sistema ...
Comentário de aluno
• Gostei muito do curso e gostei bastante da ideia de editar

e executar o código diretamente pelo bro...
Comentário de aluno
O ajuste de prazo de entrega para os finais de semana
ajudou bastante. Talvez o sistema de cálculo de
...
Comentário de colega
(antes de iniciar o curso)
• Oi Lotufo,
• Esses cursos online costumam ter uma taxa de evasão

grande...
Peculiaridades do curso
• Primeiro colocado foi aluno anônimo
• Um caso de plágio recorrente
• Apenas 3 mulheres entre os ...
Princípios
• Adotado desde a concepção:
• "Organizing the course around exercises and mental challenges is
much more effec...
Motivações do curso
(O que deu certo)
• (Pouco) Ensinar um grande número de alunos
• (OK) Ensinar uma atividade de program...
Ciclo de adoção de novas tecnologias
Referências recentes MOOC
• Results from the First-Year Course MOOCs: Not there yet
• http://m.cacm.acm.org/blogs/blog-cac...
Agradecimentos
• Rubens Campos Machado – CTI Renato Archer
• Letícia Rittner
• Roberto Medeiros de Souza
• André Luiz da C...
Conclusões - Discussão
• MOOC é uma ótima oportunidade de experimentação

sobre aprendizagem
• MOOC é ótima oportunidade p...
• Maiores informações sobre Adessowiki
• http://www.adessowiki.org

• Contato:
• http://faculty.dca.fee.unicamp.br/lotufo/
Upcoming SlideShare
Loading in...5
×

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

1,969

Published on

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/

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,969
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. 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
  2. 2. Plano de Apresentação • Introdução • Metodologia • Dados estatísticos • Avaliação
  3. 3. 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
  4. 4. Histórico • 1990 – 1995: Khoros, Un. Novo México • Ambiente gratuito visual de processamento de imagens • Toolboxes desenvolvidas: Morfologia e Visualização de Imagens Médicas • DIP – Digital Image Processing Course, um dos primeiros disponíveis na 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
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. Plano de Apresentação • Introdução • Metodologia • Dados estatísticos • Avaliação
  9. 9. 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)
  10. 10. 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
  11. 11. 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
  12. 12. 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.
  13. 13. 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.
  14. 14. 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)
  15. 15. 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
  16. 16. 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)
  17. 17. 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
  18. 18. 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
  19. 19. 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)
  20. 20. Metodologia de Notas para programas Desafio é conseguir uma nota que reflita um bom programa. No caso, para ficar mais fácil usou-se o critério de tempo de execução do programa que esteja correto. Estou procurando sugestões de como fazer esta atribuição automática de nota. Tmin p= 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.0 relativas aos programas certos entre o índice p=1 e o menor índice p.
  21. 21. Demonstrações • Xadrez • http://adessowiki.fee.unicamp.br/adesso/wiki/ia636/iachess/view/
  22. 22. Plano de Apresentação • Introdução • Metodologia • Dados estatísticos • Avaliação
  23. 23. Inscritos: 1750 Inscrições por dia
  24. 24. Perfil dos inscritos
  25. 25. Expectativa
  26. 26. N. de usuários editaram programas por dia 300 1.1 Entregas 250 200 1.2 150 100 1.3 2.1 2.2 50 3.1 4.1 0 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 Semana 1.1 Semana 1.2 setembro Semana 2 2 3 4 5 6 7 8 9 10 11 12 Semana 4 Semana 3 outubro
  27. 27. 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)
  28. 28. Testes Múltipla Escolha 600 500 400 300 Testes Múltipla Escolha 200 Funil dos testes e programas 100 0 1.1 1.2 1.3 2.1 2.2 3.1 4.1 Programas Correção Automática 160 140 120 100 80 60 40 20 0 Programas Correção Automática
  29. 29. Correlação Notas Programas e Testes 100 90 Média Testes 80 70 60 50 40 30 20 10 0 0 10 20 30 40 50 60 70 Média Programas 80 90 100
  30. 30. Plano de Apresentação • Introdução • Metodologia • Dados estatísticos • Avaliação
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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.
  36. 36. 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.
  37. 37. 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
  38. 38. 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
  39. 39. 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.
  40. 40. 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
  41. 41. Ciclo de adoção de novas tecnologias
  42. 42. 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-sebastianthrun-uphill-climb
  43. 43. 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
  44. 44. 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
  45. 45. • Maiores informações sobre Adessowiki • http://www.adessowiki.org • Contato: • http://faculty.dca.fee.unicamp.br/lotufo/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×