Como Ensinar Engenharia de Software sem que seus alunos durmam

21
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

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

Our Approach in 2 slides

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

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

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

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

16

So During Lecture…

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