Курс Джеффа Уллмана по теории автоматов и языка стартовал 12 сентября на платформе Cousera. Он продлится до 23 октября с выпускным экзаменом в начале ноября, так что еще есть время присоединиться.
Автоматы основаны на курсе CS154 Стэнфордского университета. Курс продолжительностью более 6 недель с рабочей нагрузкой около 10 часов в неделю охватывает четыре широкие области:
(1) Конечные автоматы и регулярные выражения,
(2) контекстно-свободные грамматики,
(3) Машины Тьюринга и разрешимость,
(4) Сложность и NP-полнота.
Каждую неделю есть около двух часов видео для просмотра и одна или две группы вопросов для домашних заданий.
Если вы спрашиваете себя, «зачем изучать автоматы и теорию языка», это вопрос, рассмотренный в этом трейлере, в котором Джелл Ульман указывает, что конечные автоматы, регулярные выражения и контекстно-свободные грамматики — это концепции, которые выдержали испытание временем. Помимо основных инструментов для компиляторов, они используются во многих системах, требующих менее общего ввода, чем полный язык программирования, но более сложного, чем «нажать эту кнопку».
Доказательства практической полезности изучения этих тем получены из опроса выпускников Стэнфорда, проведенного через пять лет после получения степени бакалавра, с вопросом о том, какие из курсов они фактически использовали в своей работе. Среди выпускников компьютерных наук CS154 занял второе место среди курсов по выбору, уступив только базам данных.
Этот курс является повторным, и отзыв о Class Central от студента, который завершил предыдущую презентацию, дает еще одну вескую причину для обзора 5/5 звезд:
Автоматы привели меня к большему количеству откровений о природе вычислений, чем любой другой курс, который я посещал, онлайн или офлайн.
Тот же студент посоветовал:
Дискретная математика, безусловно, является обязательным условием, но на странице информации о курсе есть ссылка на бесплатную онлайн-книгу для студентов без необходимого опыта!
Единственное предостережение в отношении этого класса заключается в том, что, в отличие от многих МООК, простая работа с клавиатурой не работает так хорошо. Я настоятельно рекомендую достать карандаш и бумагу и проработать все задачи из видео и домашних заданий.
Другой рецензент, оценивший его на 4/5, отмечает, что курс следует за книгой Джона Хопкрофта, Раджива Мотвани и Джеффри Уллмана «Введение в теорию автоматов, языков и вычислений»:
Книга показалась мне более интересной, чем видеолекции, которые, на мой взгляд, были слишком длинными, а иногда и скучными. Последние две недели, опять же, на мой взгляд, прошли в спешке, и я не особо разбирался в проблемах P и NP. Тем не менее, я рад, что прошел этот курс и удовлетворил свой интерес к обычным языкам и контекстно-независимой грамматике.
На Coursetalk рецензент, присвоивший 4,5 звезды, заявил:
Если у вас нет предварительных знаний, вам будет очень сложно следить за лекциями.
Предпосылкой для прохождения курса является курс второго уровня по информатике, который охватывает основные структуры данных (например, списки, деревья, хеширование) и базовые алгоритмы (например, обход дерева, рекурсивное программирование, большое время работы). Кроме того, ценным фоном является курс дискретной математики, охватывающий логику высказываний, графики и индуктивные доказательства. Также существуют дополнительные упражнения по программированию, для которых требуется знание Java или Python.