Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

What happens when a linguist learns to code?

22 views

Published on

Talk from RubyConf2019

Published in: Software
  • Be the first to comment

  • Be the first to like this

What happens when a linguist learns to code?

  1. 1. What happens when a linguist learns to code? ERICA SOSA
  2. 2. My first career
  3. 3. My career change
  4. 4. What is this talk really about?
  5. 5. FIRST LANGUAGE ACQUISITION SECOND LANGUAGE ACQUISITION TEACHING LANGUAGE PROGRAMMING PEDAGOGY HUMAN VS COMPUTER
  6. 6. Grammar HUMAN VS COMPUTER the mental system that allows human beings to form and interpret the sounds, words, and sentences of their language
  7. 7. All languages have a grammar HUMAN VS COMPUTER
  8. 8. All grammars are alike in basic ways HUMAN VS COMPUTER
  9. 9. All grammars change over time HUMAN VS COMPUTER
  10. 10. because of reasons HUMAN VS COMPUTER
  11. 11. Grammatical knowledge is subconscious HUMAN VS COMPUTER
  12. 12. HUMAN VS COMPUTER
  13. 13. a nice new house HUMAN VS COMPUTER
  14. 14. a new nice house HUMAN VS COMPUTER
  15. 15. opinion - size - age - shape - color - origin - material - purpose NOUN HUMAN VS COMPUTER pointy, German, old, big, nice, gardening, wood, red shed nice, big, old, pointy, red, german, wood, gardening shed
  16. 16. But what about programming? HUMAN VS COMPUTER
  17. 17. All languages have a grammar HUMAN VS COMPUTER
  18. 18. TRUE HUMAN VS COMPUTER All languages have a grammar
  19. 19. Do you like ice cream? You like ice cream? HUMAN VS COMPUTER
  20. 20. def ask_about_ice_cream … end ask_about_ice_cream … end HUMAN VS COMPUTER
  21. 21. ice_cream.yummy? => true ice_cream.is_yummy => true HUMAN VS COMPUTER
  22. 22. All grammars are alike in basic ways HUMAN VS COMPUTER
  23. 23. All grammars are alike in basic ways HUMAN VS COMPUTER
  24. 24. Conditionals
 Loops
 Code reuse - functions
 Mathematical operations HUMAN VS COMPUTER Variables Comparison
 Boolean logic
  25. 25. All grammars change over time HUMAN VS COMPUTER
  26. 26. All grammars change over time HUMAN VS COMPUTER *probably TRUE*
  27. 27. Inorganic change Organic change HUMAN VS COMPUTER
  28. 28. Grammatical knowledge is subconscious HUMAN VS COMPUTER
  29. 29. FALSE* *probably HUMAN VS COMPUTER Grammatical knowledge is subconscious
  30. 30. obj = Class.new => #<Class:0x00007fa97e8ca148> obj.name => nil WTF = obj => “WTF” obj.name => "WTF" HUMAN VS COMPUTER
  31. 31. Creates a new anonymous (unnamed) class with the given superclass (or Object if no parameter is given). You can give a class a name by assigning the class object to a constant. Class.new HUMAN VS COMPUTER
  32. 32. FIRST LANGUAGE ACQUISITION SECOND LANGUAGE ACQUISITION TEACHING LANGUAGE PROGRAMMING PEDAGOGY HUMAN VS COMPUTER
  33. 33. How do humans learn language? FIRST LANGUAGE ACQUISITION
  34. 34. Exposure + feedback + inborn knowledge FIRST LANGUAGE ACQUISITION
  35. 35. Can we compare learning a first human language and a first programming language? FIRST LANGUAGE ACQUISITION
  36. 36. YES and NO FIRST LANGUAGE ACQUISITION Can we compare learning a first human language and a first programming language?
  37. 37. How can we decouple concepts from syntax? FIRST LANGUAGE ACQUISITION
  38. 38. FIRST LANGUAGE ACQUISITION TEACHING LANGUAGE PROGRAMMING LANGUAGE HUMAN VS COMPUTER SECOND LANGUAGE ACQUISITION
  39. 39. Learning a second (or third or fourth) language SECOND LANGUAGE ACQUISITION
  40. 40. First language transfer SECOND LANGUAGE ACQUISITION
  41. 41. Ruby with a JS accent fffttSECOND LANGUAGE ACQUISITION Boolean methods is_yummy vs yummy? Camel case iceCream vs ice_cream Explicit return vs. implicit def add(a, b) return a + b end Method calls with parens Time.now() vs Time.now
  42. 42. Pronoun drop She eats ice cream fffttSECOND LANGUAGE ACQUISITION Eats ice cream
  43. 43. Pronoun drop Ella come helado *Okay in Spanish Come helado* fffttSECOND LANGUAGE ACQUISITION
  44. 44. Null (optional) subject parameter English/French [required subject] Italian/Spanish [optional subject] fffttSECOND LANGUAGE ACQUISITION
  45. 45. Subset principle Italian/Spanish [optional subject] English/French [required subject] Subset Superset fffttSECOND LANGUAGE ACQUISITION
  46. 46. Method calls with parens Time.now() fffttSECOND LANGUAGE ACQUISITION
  47. 47. fffttSECOND LANGUAGE ACQUISITION Subset principle Ruby [optional parens] JavaScript [required parens] Subset Superset
  48. 48. So what? SECOND LANGUAGE ACQUISITION 48
  49. 49. FIRST LANGUAGE ACQUISITION TEACHING LANGUAGE PROGRAMMING PEDAGOGY HUMAN VS COMPUTER SECOND LANGUAGE ACQUISITION
  50. 50. Learner centered instruction TEACHING LANGUAGE
  51. 51. you != me TEACHING LANGUAGE
  52. 52. How do we know what a diverse group of learners need? TEACHING LANGUAGE
  53. 53. How do we make coding instruction more learner-centered? TEACHING LANGUAGE
  54. 54. Content based instruction TEACHING LANGUAGE
  55. 55. What would content based coding instruction look like? TEACHING LANGUAGE
  56. 56. Zone of Proximal Development TEACHING LANGUAGE
  57. 57. Can do solo Can do with help Cannot do Zone of Proximal Development TEACHING LANGUAGE
  58. 58. My experience with the Zone of Proximal Development TEACHING LANGUAGE
  59. 59. How can we keep learners within the Zone of Proximal Development? TEACHING LANGUAGE
  60. 60. What about all the pins?
  61. 61. FIRST LANGUAGE ACQUISITION TEACHING LANGUAGE PROGRAMMING PEDAGOGY HUMAN VS COMPUTER SECOND LANGUAGE ACQUISITION
  62. 62. How can we decouple concepts from syntax? PROGRAMMING PEDAGOGY
  63. 63. PROGRAMMING PEDAGOGY
  64. 64. PROGRAMMING PEDAGOGY
  65. 65. PROGRAMMING PEDAGOGY
  66. 66. How do we make coding instruction more learner-centered? PROGRAMMING PEDAGOGY
  67. 67. Get to know your learner PROGRAMMING PEDAGOGY
  68. 68. PROGRAMMING PEDAGOGY Get to know your learner Develop a learning plan together
  69. 69. Utilize learning strategies PROGRAMMING PEDAGOGY Get to know your learner Develop a learning plan together
  70. 70. Evaluate successes and failures Utilize learning strategies PROGRAMMING PEDAGOGY Get to know your learner Develop a learning plan together
  71. 71. What might Content Based Instruction look like for coding instruction? PROGRAMMING PEDAGOGY 71
  72. 72. Explain concepts with real world examples 72 PROGRAMMING PEDAGOGY
  73. 73. PROGRAMMING PEDAGOGY
  74. 74. PROGRAMMING PEDAGOGY
  75. 75. Bicycle parts Bicycle parts to explain Ruby classes Ruby classes PROGRAMMING PEDAGOGY
  76. 76. {:a=>1, :b=>2, :c=>3}.collect { |key, value| 2*value } => [2, 4, 6] 4.times.collect { “cat" } => ["cat", "cat", "cat", "cat"] Which one of these examples is easier to understand? A B PROGRAMMING PEDAGOGY
  77. 77. The language is the tool, not the product PROGRAMMING PEDAGOGY
  78. 78. Less puzzles, more projects PROGRAMMING PEDAGOGY 78
  79. 79. jenniferdewalt.com PROGRAMMING PEDAGOGY
  80. 80. How can we keep learners within the Zone of Proximal Development? PROGRAMMING PEDAGOGY Can do solo Can do with help Cannot do
  81. 81. Pair Program PROGRAMMING PEDAGOGY
  82. 82. Don’t touch the keyboard Pair Program PROGRAMMING PEDAGOGY
  83. 83. Encourage discovery Don’t touch the keyboard Pair Program PROGRAMMING PEDAGOGY
  84. 84. Encourage discovery Don’t touch the keyboard Pair Program PROGRAMMING PEDAGOGY Check comprehension
  85. 85. Encourage discovery Don’t touch the keyboard Pair Program PROGRAMMING PEDAGOGY Don’t over explain Check comprehension
  86. 86. Encourage discovery Don’t touch the keyboard Pair Program PROGRAMMING PEDAGOGY Check comprehension Beware of jargon Don’t over explain
  87. 87. FIRST LANGUAGE ACQUISITION SECOND LANGUAGE ACQUISITION TEACHING LANGUAGE PROGRAMMING PEDAGOGY HUMAN VS COMPUTER
  88. 88. What does happen when a linguist learns to code?
  89. 89. Thank you Get in touch! me@erica.tech

×