Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Como Ensinar Engenharia de Software sem que seus alunos durmam

Fabio Kon
September 26, 2016

Como Ensinar Engenharia de Software sem que seus alunos durmam

The talk I've given at RubyConf Brasil 2016 on Armando Fox and David Patterson methodology for Software Engineering classes and the way we have applied at the University of São Paulo.

Fabio Kon

September 26, 2016
Tweet

Other Decks in Education

Transcript

  1. 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
  2. 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
  3. What is missing from our student’s dev skills? Result from

    industrial research:
 1. Legacy code 2. Working with non-technical customers 3. Testing 3
  4. 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 improving Passionate Technically open-minded Data-driven Helps others understand by tailoring explanations to them Creates shared success possibly via personal compromises Creates “safe haven” where others can learn from mistakes Gives honest feedback Knows people & organization Updates mental models when learn new skills/facts/context Consider situation at multiple levels when making judgments Can reason about complex & intertwining ideas Elegant solutions Creative thinking when faced with limitations of current solutions Anticipates technical needs based on prior experience Personal Characteristics Team Skills Technical Skills Decision Making
  5. 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
  6. 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
  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 aula 8
  8. 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
  9. Lecture Format: 5-10 minute elements YPS IRL PL LCD RTN/MGT

    BYOB ACHM µQ / Q Your peers speak In Real Life Peer Learning Live Coding Demo Read This Now/Mastergeek Theater Bring Your Own Bug Armando’s Computer History Minute Micro-quiz (5 min) or Quiz (40 min) 10
  10. Frequent Quizzing:
 You’re Welcome •  Repeated cramming helps you on

    tomorrow’s quiz, but •  repeated quizzing helps long-term retention http://www.samefacts.com/ 2014/07/learning/48279/ •  Corollary: do readings/ review right before lecture if possible! 11
  11. 12

  12. 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
  13. 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
  14. Peer Instruction Questions •  Increase real-time learning in lecture, test

    understanding of concepts vs. details
 mazur-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 cards 1 2 3 4
  15. 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
  16. Textbook, SPOC, etc. 19 •  http://br.saasbook.info
 •  eBook Kindle US$

    7 •  Impresso R$ 130.00
 •  Descontos para 
 professores
 •  Cupom R$ 200 Locaweb
  17. 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
  18. 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