Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens e RP
-
Upload
roberto-lotufo -
Category
Education
-
view
1.894 -
download
0
description
Transcript of 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
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
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
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
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
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
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
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çã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)
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
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
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.
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.
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)
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
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)
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
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
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)
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.
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
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
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)
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
0
10
20
30
40
50
60
70
80
90
100
0 10 20 30 40 50 60 70 80 90 100
Mé
dia
Te
ste
s
Média Programas
Correlação Notas Programas e Testes
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 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
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
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
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
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.
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.
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
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
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.
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
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-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
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
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
• Maiores informações sobre Adessowiki
• http://www.adessowiki.org
• Contato:
• http://faculty.dca.fee.unicamp.br/lotufo/