Показаны сообщения с ярлыком лекции. Показать все сообщения
Показаны сообщения с ярлыком лекции. Показать все сообщения

27 февр. 2017 г.

Лекция МФТИ о безопасном программировании

Случайно наткнулся на лекцию в МФТИ о безопасном программировании. Это просто ужас какой-то: https://www.youtube.com/watch?v=blgjmeMZ3cU

Нет, в целом человек говорит вроде бы правильные вещи, но... Лектор словно умирает и вот вот умрет. Сама лекция очень сумбурна, нет никакого плана или логики переходов от темы к теме. Рассказ о SDL очень поверхностен. Лектор прочитал вводную лекцию от Майкрософт и перевел ее на русский. Все. Так и я могу преподавать где-нибудь в Княгинино (да простят меня те, кто болеет за Княгиниский университет душой). Но ведь это столичный ВУЗ, а качество лекций ниже плинтуса. Я в шоке. При этом это конец прошлого года.
Но главное, как лектор читает лекцию. В его поведении такая уверенность. Такая вальяжность. При этом читает базовые вещи, типа "надо проанализировать требования к продукту". Открыл Америку. Спасибо.


21 февр. 2010 г.

Простые сложности

Изучаю язык Пайтон на интуит.ру. С ужасом читаю описания некоторых конструкций языка. Такое ощущение, что автор сам не понял материал и поэтому нагоняет кучу тумана, чтобы другие не поняли, что он не понял.
Дабы не быть голословным, вот пример - описание функций генераторов:

Простые генераторы

Разработчики языка не остановились на итераторах. Как оказалось, в интерпретаторе Python достаточно просто реализовать простые генераторы. Под этим термином фактически понимается специальный объект, вычисления в котором продолжаются до выработки очередного значения, а затем приостанавливаются до возникновения необходимости в выдаче следующего значения. Простой генератор формируется функцией-генератором, которая синтаксически похожа на обычную функцию, но использует специальный оператор yield для выдачи следующего значения. При вызове такая функция ничего не вычисляет, а создает объект с интерфейсом итератора для получения значений. Другими словами, если функция должна возвращать последовательность, из нее довольно просто сделать генератор, который будет функционально эквивалентной "ленивой" реализацией. Ленивыми называются вычисления, которые откладываются до самого последнего момента, когда получаемое в результате значение сразу используется в другом вычислении.

Для примера с последовательностью Фибоначчи можно построить такой вот генератор:

def Fib(N):
a, b = 0, 1
for i in xrange(N):
yield a
a, b = b, a + b

Использовать его не сложнее, чем любой другой итератор:

for i in Fib(100):
print i,

Более извращенного описания простой концепции, я не видел. Кому интересно, про генераторы намного понятнее написано здесь (англ.).