Посмотреть лекцию можно здесь: javarush.ru/cs50.html
В шпионских (или любых других) боевиках, вы, наверное, замечали такую штуку: хакер сидит в темной комнате, весь такой загадочный, подсвеченный монитором своего компьютера и всякими цветными диодами непонятного происхождения. На мониторе — не менее загадочные буковки, обычно зелёные с курсором-нижнее-подчеркивание и малюсенькая карта, на которой где-то в дебрях спрятан интересующий спецслужбы объект. Приходит команда «увеличь этот участок изображения», дабы обнаружить, скажем, номер автомобиля, отражённый в чьем-нибудь глазу… И специалист бесконечно масштабирует картинку, пока отражение не станет ясным и четким…
Вам нравятся такие сцены? Если да, спешим вас огорчить: после 10 лекции Гарвардского курса по основам программирования CS50 вы уже не будете смотреть их прежними глазами, понимая всю их несуразицу и преувеличение. Впрочем, будущему программисту это необходимо сделать. Это как рано или поздно все узнают правду о Санта Клаусе. С другой стороны, если в мире будет все больше и больше грамотных с точки зрения IT людей, Голливуду придется повысить качество подобных сцен, не лепя случайные наборы терминов куда ни попадя.
А всё дело в том, что фотографии состоят из пикселей (или точек), и когда мы увеличиваем фотографию, рано или поздно мы дойдем до одного пикселя и как бы мы дальше ни увеличивали изображение, дополнительной глубины не появится, перед нами — конечное количество битов. «Это цифра, детка!».
После четвертой лекции вы сможете приступить к задачнику CS50 для четвертой недели. Он позволит вам прикоснуться к миру графики и криминальной экспертизы: вы напишете коды для восстановления утраченных изображений и изменения масштаба картинок.
Итого, из лекции вы узнаете:

- Как кодируется изображение. Слово bitmap станет родным и понятным.
- Вы узнаете, как понять (с точки зрения компьютера), что перед вами именно JPEG-файл и какую роль в этом играет комбинация битов 244 216 255.
- Вспомните (или изучите) 16-ричные числа. Запись 0хff станет столь же очевидной, как 255 а десятичной системе.
- Что такое struct в Си? Собственные типы данных в Си.
- Сравнение содержимого строк в Си (strcmp) и другие средства работы со строками.
- Адресная арифметика.
- char* t = malloc((strlen(s) + 1) * sizeof(char)) — как вам такая строчка кода? После лекции вы будете понимать, что к чему, и сами сможете писать нечто подобное =)
- Немного синтаксического сахара =)
- Как писать swap с указателями и зачем
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ