воскресенье, 10 января 2016 г.

Джентельменский минимум на экзамене по Лиспу

В пятом семестре студенты ИМФИ КГПУ заканчивают курс "Языки и методы программирования".  В этом семестре студенты изучают языки программирования Лисп и Пролог. 

Пользуясь гнусавым голосом (грипп), записал видео-демонстрации того, что можно показать на экзамене при сдаче практической части. Если студент способен показывать описанные вещи и внятно их обсуждать, вопрос о двойке уже не стои́т.

 

Данный пост абсолютно не претендует на обучение.

Предполагается, что все лабораторные защищены, а изложенные элементы уже проработаны и осознаны. Разговор идёт исключительно про объём и возможную демонстрацию понимания защищаемого материала.

Сам пост только содержит таблицу содержания к восьми видео-демонстрациям, иллюстрирующим отдельные пройденные элементы языка Лисп в минимально необходимом объёме.


Ссылки на полные видео

Можно просто просмотреть этот плейлист от начала к концу. В главах ниже даны ссылки на внутренности этих самых видео-роликов, чтобы в будущем по второму разу не искать и не тратить время. Если хотите добавить ещё какую-нибудь ссылку, то пишите её в комментариях.

 

Видео 1: основы



Где и как запускать Лисп программы при самостоятельной подготовке.
http://www.youtube.com/watch?v=Mqo_90ZwQyU&t=1m15s

Демонстрация CompileOnline среды для запуска Лисп-программ в браузере.
http://www.youtube.com/watch?v=Mqo_90ZwQyU&t=1m25s

Использование LispBox - REPL оболочки для разработки программ на Лиспе.
http://www.youtube.com/watch?v=Mqo_90ZwQyU&t=2m45s

Источники (литература). Эта секция сильно устарела, студентами найдены более интересные и близкие им книги.

Видео 2: s-выражения, простые операции

Немного (действительно мало) о типах в Си и Лиспе.
http://www.youtube.com/watch?v=WNkAO4C3rPs

Как отличаются строки программ на Си и на Лиспе. S-выражения.

Как выходить из ошибки в среде LispBox.

Про отступы, редактор и поиск опечаток

Про то, что надо в тетрадку всё выписать
http://www.youtube.com/watch?v=WNkAO4C3rPs&t=8m15s


Видео 3: пара слов про списки

http://www.youtube.com/watch?v=p_PRytnW8IE&t=15s

Создание списков: quote, '
http://www.youtube.com/watch?v=p_PRytnW8IE&t=50s

Голова и хвост
http://www.youtube.com/watch?v=p_PRytnW8IE&t=1m20s

Проверка списка на пустоту
http://www.youtube.com/watch?v=p_PRytnW8IE&t=2m54s 

Лабораторная работа №1  (общая часть, а)
http://www.youtube.com/watch?v=p_PRytnW8IE&t=3m54s

Функция let
http://www.youtube.com/watch?v=p_PRytnW8IE&t=6m15s

Лабораторная №1, (общая часть, b)
http://www.youtube.com/watch?v=p_PRytnW8IE&t=7m42s

LispBox: сбор ответа из фрагментов кода в других строках.
http://www.youtube.com/watch?v=p_PRytnW8IE&t=8m22s

Лабораторная работа №1  (общая часть, с)
http://www.youtube.com/watch?v=p_PRytnW8IE&t=9m17s 

Лабораторная работа №1 (вариант)
http://www.youtube.com/watch?v=p_PRytnW8IE&t=10m54s


Видео 4: условные операторы if и cond

Про оператор if.
http://www.youtube.com/watch?v=fLu47OTea7s

Решение квадратного уравнения на if-ах.
http://www.youtube.com/watch?v=fLu47OTea7s&t=2m38s

Оператор cond.
http://www.youtube.com/watch?v=fLu47OTea7s&t=4m40s

Разбор оператора cond.
http://www.youtube.com/watch?v=fLu47OTea7s&t=7m38s

Задача про шахматного коня.
http://www.youtube.com/watch?v=fLu47OTea7s&t=8m50s

Лаб. №2, общее, сравнение списков.
http://www.youtube.com/watch?v=fLu47OTea7s&t=11m40s


Видео 5: defun и примеры на функции 

defun и функции
http://www.youtube.com/watch?v=PO3a7aklRPw

Вспомогательные переменные, оператор let.
http://www.youtube.com/watch?v=PO3a7aklRPw&t=3m20s

Оператор progn - блок из многих строк.
http://www.youtube.com/watch?v=PO3a7aklRPw&t=5m00s

Решение квадратного уравнения.
http://www.youtube.com/watch?v=PO3a7aklRPw&t=5m09s 

Решение задач из лабораторной №3. 
http://www.youtube.com/watch?v=PO3a7aklRPw&t=8m10s

Сравнение возраста по датам рождения.
http://www.youtube.com/watch?v=PO3a7aklRPw&t=10m32s

Ещё одна задача.
http://www.youtube.com/watch?v=PO3a7aklRPw&t=14m10s


Видео 6: рекурсия

http://www.youtube.com/watch?v=SNItHXTv4RI

Примеры: сумма элементов списка. 
http://www.youtube.com/watch?v=SNItHXTv4RI&t=2m00s

Примеры: максимальный элемент из списка.
http://www.youtube.com/watch?v=SNItHXTv4RI&t=5m35s

Поиск и замена элемента в списке.
http://www.youtube.com/watch?v=SNItHXTv4RI&t=8m15s

Удаление элемента в списка.
http://www.youtube.com/watch?v=SNItHXTv4RI&t=9m45s

Удаление первого вхождения элемента в списке.
http://www.youtube.com/watch?v=SNItHXTv4RI&t=11m09s

Замена первого вхождения элемента в списке.
http://www.youtube.com/watch?v=SNItHXTv4RI&t=11m48s

Несколько слов о рекурсии, чтение списков с клавиатуры.
http://www.youtube.com/watch?v=SNItHXTv4RI&t=12m50s

Ряд Фибоначчи.
http://www.youtube.com/watch?v=SNItHXTv4RI&t=13m50s


Видео 7: цикл loop

Введение
https://www.youtube.com/watch?v=KO6_YbgUFI8

Цикл loop, источники данных для итерации
https://www.youtube.com/watch?v=KO6_YbgUFI8&t=25s

Источники данных (for i from, for e in list, for char in string)
https://www.youtube.com/watch?v=KO6_YbgUFI8&t=3m04s

Тело цикла (collect, maximize, minimize, summing, ...)
https://www.youtube.com/watch?v=KO6_YbgUFI8&t=5m05s

Пример: интеграл от нуля до двух пи от квадрата синуса - показано использование промежуточных переменных, использование finally:
https://www.youtube.com/watch?v=KO6_YbgUFI8&t=6m52s

Пример работы с групповыми операциями, сохранёнными в промежуточные переменные (вычисление статистических свойств ряда):
https://www.youtube.com/watch?v=KO6_YbgUFI8&t=9m54s

Продвинутый цикл loop, пример: оператор if
https://www.youtube.com/watch?v=KO6_YbgUFI8&t=15m43s

Разбиение строки на слова циклом loop и функциями position + subseq:
https://www.youtube.com/watch?v=KO6_YbgUFI8&t=17m20s


Видео 8: функции, именованные и дополнительные аргументы 

Оборачиваю loop в функцию, выводя входные элементы в аргументы. 
http://www.youtube.com/watch?v=Sl6yh4I9ByU


Показываю, как здорово, когда можно подкрутить готовый алгоритм, уточнив свои требования:
http://www.youtube.com/watch?v=Sl6yh4I9ByU&t=51s


Делаем добавочный настроечный аргумент функции split.
http://www.youtube.com/watch?v=Sl6yh4I9ByU&t=3m09s

Пример доработки функции с пробросом функционала в аргументы и использование условного оператора в цикле loop.
http://www.youtube.com/watch?v=Sl6yh4I9ByU&t=4m50s


Пример необязательных позиционных аргументов.
http://www.youtube.com/watch?v=Sl6yh4I9ByU&t=6m31s


Задача из лабораторной на циклы.
http://www.youtube.com/watch?v=Sl6yh4I9ByU&t=8m53s


Видео 9: на посошок

Почему Лисп называют программируемым языком программирования.
http://www.youtube.com/watch?v=7GhR8zeEEFo

Комментариев нет:

Отправить комментарий