9. CS50 на русском: Лекция #9 [Гарвард, Основы программирования, осень 2015 год]

Доп. материалы и задачи к лекции — https://javarush.com/s/level_4
Весь курс CS50 — https://javarush.com/s/course_cs50

Гарвардский курс, основы программирования CS50, лекция 9: обман с помощью программирования, рекурсия, указатели и отладка приложений

Девятая лекция CS50 получилась очень интересной и разнообразной по содержанию. В ней задействованы даже автомобили VW =). Конечно, не непосредственно, но в качестве весьма удачного примера того, как с помощью простых программных команд можно написать сложную программу и обмануть профессиональную комиссию, проверяющую систему контроля выхлопа. Да, руководствуясь некоторыми параметрами приложение может понять, что его подопечную машинку сейчас тестирует и выдаст нужный ревизорам результат.

Примерно так же работает и вредоносное ПО, запуская незаметных «троянских коней» в системы. На занятии Дэвид расскажет общие принципы работы такого ПО, почему, даже досконально изучив код приложения, нельзя быть уверенным в его честности и какова роль «протокомпилляторов» в этом процессе.

Кроме этого:

• Дэвид подробнее расскажет о рекурсии и сравнит циклический и рекурсивный алгоритмы для одной и той же задачи.

• Научит, как менять переменные местами с помощью дополнительного параметра, без него, а также с применением загадочного оператора XOR.

• Продемонстрирует, как нужно отлаживать программку на примере CS50 IDE. Отладка — полезна, она действительно ускоряет процессы разработки в разы, так что это важное умение и в каждой среде разработки его следует усвоить чтобы повысить собственную продуктивность.

• Вы получите ещё немного полезной информации о стеке памяти и локальных переменных.

• Указатели или как в Си напрямую общаться с памятью! Вот мы дошли и до них. Сила и слабость Си, мощнейший инструмент, который в руках новичка или злоумышленника может превратиться в ядерную бомбу.