alexey_rom: (Default)
Наверняка большинство меня читающих уже знают, но на случай, если кто-то пропустил: в прошлом году Стэнфордский университет предложил всем желающим прослушать три своих курса бесплатно по Интернету: Introduction to Artifical Intelligence, Machine Learning и Introduction to Databases. AI и ML были сильно упрощены по сравнению с оригиналами внутри университета, насчёт DB не знаю. Эксперимент прошёл вполне успешно, и в результате в этом семестре такие же классы предлагают аж три организации. По большей части они начинаются в ближайшие недели (хотя некоторые уже начались). Список курсов: http://www.class-central.com/
alexey_rom: (Default)
Домашние задания:
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab6/homework6.txt
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab7/homework7.txt

Файлы к лабораторной 6:
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab6/control.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab6/cut.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab6/database.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab6/difflists.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab6/negation.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab6/op.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab6/search.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab6/second_order.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab6/stack.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab6/var_nonvar.pl

Файлы к лабораторной 7:
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab7/basic_english.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab7/english_rec_bad.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab7/english_rec.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab7/english_pronouns_bad.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab7/english_pronouns.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab7/english_parse_trees.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab7/english_rules_lexicon.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab7/abc.pl
http://dl.dropbox.com/u/1814290/%D0%A4%D0%9B%D0%9F/lab7/ast.pl

Лабораторная 7 практически целиком по Learn Prolog Now, лекции 7 и 8, только с той разницей, что разностные списки уже были.
alexey_rom: (Default)
И последняя по части ФП, со следующей недели начинается Prolog. Текст очень короткий, только по list comprehensions, поскольку про типы я рассказывал на лекции.

Разработка
Задание на лабораторную
streams.erl
diff_list.erl
alexey_rom: (Default)
Ссылка с более подробным описанием

Материалы

Coverage
- Parsing and interpretation in Prolog
- Basics of small-step and big-step semantics
- Basics of untyped and typed lambda calculi
- Introduction to Haskell
- Basics of denotational semantics
- Denotational semantics in Haskell
- Basics of static program analysis
- Static program analysis in Haskell
- OO programming in Haskell
- The Expression Problem
- Basics of Constraint-Logic Programming
- Basics of Process Algebra (CCS)
- ... a few more specialized lectures

Characteristics
- English as the course language
- Slides, videos, exercises available online publicly
- 42 hours (45mins each) of lectures over 4 months
- 12 programming-oriented, interactive labs
- Transparent scheme for midterm and final exam
- Heavy reuse of material from other courses
- Use of Twitter for notification and aggregation
alexey_rom: (Default)
Уже третий год в весеннем семестре я веду курс "Функциональное и логическое программирование" у двух групп. У нас будет 7 лекций и 7 лабораторных (по две пары). (В одной группе, возможно, 6).

Выбор языков:
По ЛП, понятно, Пролог. По ФП Эрланг ради простоты и синтаксической близости с Прологом.

Мои планы:
3 занятия по ФП, 4 по ЛП

Лекция 1. Преимущества неизменяемых данных, списки в ФП, хвостовая vs нехвостовая рекурсия
Лабораторная 1. Знакомство с Эрлангом, написание первых функций.
Лекция 2. Функции как значения. Напомнить лямбда-исчисление. Замыкания. Сравнить с указателями на функции в C и поговорить о ситуации в других языках.
Лабораторная 2. ФВП. Применение для работы со списками и как управляющих конструкций.
Лекция 3. Алгебраические типы данных. Если успею -- немного о выводе типов. Ленивость.
Лабораторная 3. List comprehensions. Представление сложных данных. Пример: деревья.

По ЛП куда меньше теории, которая не связана непосредственно с Прологом.

Лекция 4. Идея логического программирования. Синтаксис Пролога.
Лабораторная 4. Знакомство с Прологом. Простая БД. Написание правил и запросов.
Лекция 5. Арифметика. Операторы.
Лабораторная 5. Работа со списками. Представление сложных данных. Деревья.
Лекция и лабораторная 6. Алгоритм унификации и поиска с откатом. Порядок клозов в правилах. Сечения (зелёные и красные). Отрицание.
Если успеваю: Работа со свободными переменными. Разностные списки.
Лекция и лабораторная 7. Грамматики (DCG). Код как данные.

Ваше мнение? Есть ли что-то, о чём обязательно нужно рассказать, а у меня этого нет? Есть ли что-то явно лишнее?

Кроме того, выложил на Dropbox материал и задание к первой лабораторной. Может быть, кому-нибудь будет интересно. Те же вопросы, что по общему плану занятий.
alexey_rom: (Default)
Читая блог Ayende Rahien'а, наткнулся на замечательную цитату Ральфа Уолдо Эмерсона, равно применимую в математике и в программировании:
Методов может быть миллион и более, а принципов мало. Понимающий принципы может выбрать подходящие методы; а тот, кто пробует методы и не думает о принципах, наверняка попадёт в беду.

Оригинал:
As to the methods there may be a million and then some, but principles are few. The man who grasps principles can successfully select his own methods. The man who tries methods, ignoring principles, is sure to have trouble.

Беда в том, что на семинарах требуют объяснять именно методы :( и как с этим бороться, неясно.
alexey_rom: (Default)
Большинство знакомых мне учебников по логике используют машины Тьюринга в качестве основного примера универсальной вычислительной машины. Как мне кажется, это абсолютно аналогично использованию исчисления высказываний и/или предикатов в стиле Гильберта (если кто не помнит, это те исчисления, где есть много аксиом и единственное правило вывода modus ponens (+ могут быть правила обобщения и перехода к частному случаю в исчислении предикатов).

Read more... )

Profile

alexey_rom: (Default)
alexey_rom

April 2012

S M T W T F S
1 234567
89 1011121314
15161718192021
22232425262728
2930     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 24th, 2017 12:52 pm
Powered by Dreamwidth Studios