Thursday, February 26, 2009

Урок 63


Лева
1. Функция 'Человек'

Мы решили ввести новый тип функции – человек. До сих пор у нас были функции результат которых было число, boolean (true/false) и техт.


После этого можно было комбинировать различные функции:

Папа (Левы)> Мама ( Люши) = Правда

Дополнение: ввести массивы, напр, учителя (Левы) = [Ms. El, Ms. Sharon, Ms. Irina]

Thursday, February 12, 2009

Урок 62




Лева
1. Начинаем осваивать функции
Идею этого занятия я позаимствовал у Emmanuel Schanzer's "Bootstrap" methodology - это профессор Гарвардского университета, который придумал как обучать middle schoolers алгебре и абстракции с помощью языка  программирования "Scheme"

a. Преставляем арифметические выражения в виде функции. 

Функция (я Леве не называл таких страшных слов) характеризуется типом, параметрами и результатом, который она возвращает. Например, А+B - это функция Сложить (А, B)
Параметры : А и B
Тип: число
Результат: А + B

Идея в том, чтобы представлять это в доступной для ребенка форме:

Например, 4+3, Или Сложить(4,3), может быть представлено так:
Цвет обозначает тип функции (синий - число)

Этот пример учит ребенка порядку действий, он эквивалентен
(1 + 2) + (3 - 1)

b. Логические функции
После этого мы перешли к логическим функциям, которые возвращают boolean - правда или неправда. 

Мы начали вот с чего (розовый цвет означает логический (boolean) тип):
Чтобы не писать Правда, Неправда, решили придумать знаки:
Вот знаки, придуманные Левой:

Затем, чтобы попрактиковаться с логическими функциями, нам пришлось выучить знаки больше (>) и меньше (<). Я эти знаки объяснил Леве таким способом: Представь что стоят два человека, один большой, а другой маленький. Нужно провести линии от головы и ног одного до головы и ног другого, получится знак > или <:


После этого мы принялись комбинировать логические и арифметические функции, напр.:
(5-3) < (4-1) = true
c. Функции с текстом
Почему можно складывать только числа? Можно складывать и текст, например:
Ле + ва=Лева  (Лева сказал, что Ле+ва=4)
Раз можно складывать, то можно и отнимать:
Котёнок - ёнок = Кот

Теперь можно делать интересные словесные трансформации (зеленый цвет - тип функции string)

((гороx - x) + док) = городок:

  
В заключение Лева задал мне задачку: мама-ма. А что если мапама - ма? Получится мапа или пама? Или вообще па?
Мы решили сделать специальный знак -, с точкой на том конце откуда нужно вычесть слог:
мапама ._ ма = пама
мапама _. ма = мапа
мапама ._. ма = па

Хмм, становится похоже на regular expressions...