Ensinar e aprender trigonometria com e a partir do uso do software ...
Como Ensinar Engenharia de Software sem que seus alunos durmam
Transcript of Como Ensinar Engenharia de Software sem que seus alunos durmam
Como Ensinar Engenharia de Software sem
que seus alunos durmam
1© 2013-2016 Armando Fox, David Patterson, modified by Fabio Kon
Fabio Kon Departamento de Ciência da Computação
IME-USP
http://twitter.com/FabioKon
Nossa experiência
• 16 turmas anuais de– Laboratório de Programação Extrema– Laboratório Avançado de Métodos Ágeis– Tópicos Avançados de Programação Orientada a Objetos
2
What is missing from our student’s dev skills?
Result from industrial research:
1. Legacy code2. Working with non-technical
customers3. Testing
3
What Makes a Great Software Engineer?P. Li, A. Ko, J. Zhu, Microsoft & U. of Washington, Proc. ICSE 2015
59 interviews with recognized SE experts at Microsoft
4
Always improvingPassionateTechnically open-mindedData-driven
Helps others understand by tailoring explanations to themCreates shared success possibly via personal compromisesCreates “safe haven” where others can learn from mistakesGives honest feedback
Knows people & organizationUpdates mental models when learn new skills/facts/contextConsider situation at multiple levels when making judgmentsCan reason about complex & intertwining ideas
Elegant solutionsCreative thinking when faced with limitations of current solutionsAnticipates technical needs based on prior experience
Personal Characteristics
Team Skills Technical Skills
Decision Making
Our Approach in 2 slides
5
Talk to customer
Lo-fi UI mockup
User stories & scenarios
Behavior-driven Design / user stories
RSpec
Test-first dev. (unit/funct.)
Measure Velocity
Deploy
Legacy Code
Design patterns
Principais problemas
• Professores nascidos em 1960->1990– Alunos nascidos após 1995– Gap conectivo nunca visto antes
• Geração Web– Leitura de hipertexto e não de texto linear
• Geração Mobile– Leitura de trechos desconexos de 140 chars,
memes• Noção de que a vida é fácil e não precisa se
dedicar/ralar/se esforçar 7
Principais soluções• Minimizar aulas expositivas• Diminuir leituras lineares (embora nem tanto)
– Lembrar de nosso papel educativo!• Problemas reais• Clientes reais• Exercícios semanais / Feedback imediato• Aprendizado em pares/grupos/social• Material para estudo assíncrono• Classe invertida
– teoria em casa, trabalhos na sala de aula8
Course Organization• Grading—approximate breakdown
– 15% homeworks– 20% in-lecture microquizzes (some build on HWs)– 30% three in-lecture ~40-minute quizzes– 35% project– Tiebreakers: Participation and Altruism
• A typical week– Monday aft/Tues morning: read stuff before lecture– Tues: 3:30-5:00 lecture – Weds 1pm: HW and/or project milestone due– Weds aft/Thurs morn: Section, read before lecture– Thurs 3:30-5:00 lecture with TA 9
Lecture Format: 5-10 minute elements
YPSIRLPLLCDRTN/MGTBYOBACHMµQ / Q
Your peers speakIn Real LifePeer LearningLive Coding DemoRead This Now/Mastergeek TheaterBring Your Own BugArmando’s Computer History MinuteMicro-quiz (5 min) or Quiz (40 min)
10
Frequent Quizzing:You’re Welcome
• Repeated cramming helps you on tomorrow’s quiz, but
• repeated quizzing helps long-term retentionhttp://www.samefacts.com/2014/07/learning/48279/
• Corollary: do readings/review right before lecture if possible!
11
Sleep is important
• New neuroscience results:– Sleeping at night is a way to store information in
long-term memory
• But students think that not-sleeping or sleeping very late is cool !
• We need to show them that this is not the case
13
RTN: Multitasking
bit.ly/cs169-multitasking
“Multitasking Damages Your Brain
And Career, New Studies Suggest”
14
The Myth of Multitasking• https://youtu.be/PriSFBu5CLs• Clifford Nass, Stanford• Allowing yourself to respond to distraction
(incoming email, IM, etc.) triggers small dopamine release
• Over time, you get addicted to it• Result: Multitaskers waste far more
brainpower than monotaskers when actually distracted
• Long-term effects can be hard to reverse 15
Peer Instruction Questions
• Increase real-time learning in lecture, test understanding of concepts vs. detailsmazur-www.harvard.edu/education/pi.phtml
• As complete a “segment” ask multiple choice question– <1 minute: decide yourself, vote– <2 minutes: discuss in pairs,
then team vote; flash card to pick answer• Try to convince partner; learn by teaching
• Mark and save flash cards1 2 3 4
Deixar que os próprios alunos escolham os seus projetos
Adotar Ruby on Rails como plataforma básica
Trabalhar em projetos reais, com clientes reais e testar o aprendizado em pequenos passos.
Ensinar vários frameworks produtivos☐
☐
☐
☐
18
O que devemos fazer para os alunos não dormirem
Textbook, SPOC, etc.
19
• http://br.saasbook.info
• eBook Kindle US$ 7• Impresso R$ 130.00
• Descontos para professores
• Cupom R$ 200 Locaweb
Online Resources
http://www.saasbook.info/students
• Online "get started" tutorials on ruby in case want to get feet wet before Ruby lectures
• Pointers to online HTML/CSS tutorials in in case want to get feet wet before Rails material
• Tutorials on other tools (GitHub, etc.)
http://www.saasbook.info/instructors
20
Para professores
• Livro e método usado na USP há 4 semestres e a experiência tem sido ótima, tanto para alunos quanto para professores.
• Quer adotar o livro?– Entre em contato com [email protected]– Podemos ajudar com material didático e dicas
21