Тёмный

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

JavaRush
Подписаться 213 тыс.
Просмотров 211 тыс.
50% 1

Доп. материалы и задачи к лекции - javarush.com/s/level_3
Весь курс CS50 - javarush.com/s/course_cs50
Восьмая лекция Гарвардского курса по основам программирования CS50 пройдет в необычной обстановке: Дэвид Малан окажется в окружении зелёных стен библиотеки Вайднера. И пускай они выглядят не так эффектно, как полюбившийся студентам театр Сандерса (та самая огромная торжественная аудитория, в которой обычно проходят занятия), это никак не повлияло на увлекательность лекции! В этот раз мы:
• Узнаем, может ли рекурсия помочь нам в поисках Майка Смита. И вообще, узнаем, что это за загадочный инструмент такой - рекурсия - и как её применять.
• Разберемся, с понятием сортировки слиянием, и поймем, как можно её реализовать с помощью рекурсии. Снова разделяем и властвуем, уже практически по привычке.
• Станем на шаг ближе к пониманию загадочного компилятора Clang и его работе. Продолжим разбираться с тем, что находится «под капотом» программы и оценим путь от исходного кода через ассемблерный к объектному.
• Столкнемся с такими вот знаками: & | ^ ~. Это- не «птичий язык», а побитовые операторы, они позволяют добраться до отдельных битов данных. Для расшифровки каждого из них Дэвид воспользуется весьма необычным инструментом - доской и маркерами! Даже такое «ретро» изредка проскакивает на CS50 =).
• А еще Дэвид приоткроет завесу тайны: в практическом задании вам предстоит вспомнить детство и поиграть в «пятнашки». Только в этот раз они будут написаны на Си.
• Наконец, вы увидите милую беседу Эрика Шмидта из Google и одного бывшего сенатора с каким-то знакомым лицом по имени Барак. Эрик попросил Барака предложить самый эффективный способ отсортировать миллион 32-битных целых чисел. Ответ нынешнего президента США вы узнаете из лекции.

Опубликовано:

 

28 авг 2016

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 87   
@user-zd9uc1yv4p
@user-zd9uc1yv4p 7 лет назад
Надеюсь ваш труд будет оплачен по достоинству. Очень качественный перевод, очень хорошей базы по программированию. Хорошо, что разжёвывают всё, а то порой не понятно почему и зачем должно так работать, просто должно и всё.
@Anuyisk_1971
@Anuyisk_1971 Год назад
Интестная статистика,чем дальше в лес.Тем меньше просмотров.И вот уже 8 лекция ,а народу то мало осталось.И коментов чуток.Вывод,остались те кому это надо для развития себя✊
@iritaka
@iritaka 2 года назад
Тайм-коды: рекурсия, сортировка слиянием, ассемблер при компиляции, побитовые операции 0:00 заставка 1:58 на прошлом уроке 3:48 рекурсия. Рекурсивно - делать что-то циклично, используя уже существующий код, запуская его снова и снова. Также необходимо обозначить некий предел. 5:12 сортировка слиянием рекурсивно. Псевдокод 8:42 процесс сортировки "на пальцах" принцип разделяй и властвуй 16:27 время выполнения сортировки слиянием O(n log n). n действий 3 раза (подхода log2 8=3) 20:40 время выполнения рассматривая каждый шаг алгоритма псевдокода 20:52 время выполнения оператора if (если) и else (иначе). Постоянное время - О(1) - если количество шагов постоянно 25:26 что происходит под капотом при компиляции программы: исходный код -> компиляция -> объектный код (нули и единицы): 26:07 ассемблерный код, при выходе из clang. Инструкции низкого уровня, которые понимает процессор 27:51 использование кода из подключаемых библиотек 28:31 расширения файлов (формат файлов) 29:27 линковка (компановка объектного кода) Результат - исполняемый файл 30:19 побитовые операторы. Доступ к отдельным битам 31:40 & амперсанд побитовый оператор и 33:13 | побитовый оператор или 34:29 ^ каретка (циркумфлекс) побитовый оператор исключающее или 35:55 ~тильда побитовый оператор унарный не 36:24 > побитовые операторы сдвига влево и вправо. 1
@iv009
@iv009 Год назад
очень хорошее объяснение сортировки слиянием, после такого не понять уже невозможно
@taueron100
@taueron100 6 лет назад
спасибо за профессиональный перевод!
@astero677
@astero677 5 лет назад
Спасибо огромное! Очень занимательно!
@user-bw2ue4vy5x
@user-bw2ue4vy5x 7 лет назад
Наконец то на меня снизошло прозрение не так все и сложно оказывается! Спасибо за перевод!
@13bes66
@13bes66 Год назад
6 лет прошло! все выучил, кодишь сам?
@Samara163tyt
@Samara163tyt 7 лет назад
Не забрасывайте перевод,пожалуйста.
@JavaRushVideo
@JavaRushVideo 7 лет назад
Не забрасываем) 9-я уже есть - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-lqovT3n62ts.html
@Samara163tyt
@Samara163tyt 7 лет назад
Это видео содержит материалы от партнера SME, который заблокировал их показ в вашей стране в целях соблюдения авторских прав.
@nihuyanenapiwu
@nihuyanenapiwu 7 лет назад
Ispol'zuy programmu dlya smeni IP. Eto programma budet ispol'zovat' servera drugoy strani. Naprimer, "Psiphon"
@aleksandr.v100
@aleksandr.v100 3 года назад
Ахахаа
@vaskodagama7344
@vaskodagama7344 3 года назад
Уаааа наконец-то, я не мог и подумать что будет ультраширокий формат! Спасибо огромное JavaRush за любимого переводчика, и за осенние скидки на сайте!) Очень жаль что просмотры сокращаются с каждой лекцией, надо как то пушить этот топ контент((
@mais_it2318
@mais_it2318 2 года назад
А просмотры падают, потому что только выносливые и трудолюбивые люди досмотрят все лекции, и как выидишь таковых у нас в стране маловато(в сфере программирования и технологий)
@endyrocketstar
@endyrocketstar 7 лет назад
лайк не глядя
@user-oc7tp8cq1q
@user-oc7tp8cq1q 5 лет назад
спасибо большое тебе
@user-yv4gr2vf8o
@user-yv4gr2vf8o 3 года назад
Спасибо!
@TheDragonJ21
@TheDragonJ21 7 лет назад
киньте ссылку на методички, я чет потерял. И спасибо за работу
@notUnclePetro
@notUnclePetro 7 лет назад
все здорово конечно. но как применить данный метод к нечетному количеству элементов массива? насколько я понимаю, тогда берем большую и меньшую часть и в большей части раскладываем до минимальных 2х элементов и остается 1 элемент, который считается уже упорядоченным?
@hey-rg9lk
@hey-rg9lk 7 лет назад
Владислав Волков да, в любом случае если будешь постоянно делить на две части то придёшь к тому что в каждой части по одному элементу
@user-ji8zm5wj6q
@user-ji8zm5wj6q 6 лет назад
а я вот нифига не понял. ну разделили мы на две части, один элемент из одного - всегда сортирован, а на втором шаге раз, и элементы отсортированы. Но как, если мы их не сравнивали? в каком моменте выясняется, что этот элемент больше или меньше другого? тогда смысл делить на половины, если можно пройтись по каждому и в конечный список поставить.
@user-bu5cl5uf3x
@user-bu5cl5uf3x 6 лет назад
Тимур Гилаури тоже эту часть не понял, ещё рассказал про сдвиг влево, а как делать сдвиг вправо нет
@MrPushcart
@MrPushcart 6 лет назад
используется отдельный метод по слиянию. Он сравнивает и помещает в нужные места
@user-wy5uz2sz2q
@user-wy5uz2sz2q 6 лет назад
Тимур Гилаури
@nasturcija42
@nasturcija42 6 лет назад
в конце показано. как он сливал 2 последних подмассива из 4 чисел каждый в один массив. Такой же алгоритм применяется в предыдущих шагах
@Max-kolm
@Max-kolm 3 года назад
Во время пандемии шуточка в конце ролика смотрится совсем подругому, Дэн прав!
@user-fj2vg1iu5x
@user-fj2vg1iu5x 3 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-iGO0eAboGB8.html
@live_man
@live_man Год назад
Почему-то не найти 9-е видео. Оно есть в переводе?
@user-qe2hg8vy3p
@user-qe2hg8vy3p Год назад
Заблокировали из-за нарушения авторских прав
@daniilgorbunov
@daniilgorbunov Год назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-w1extok2KzM.html
@create_it_team
@create_it_team 10 месяцев назад
@@daniilgorbunov красава
@user-dk5hb6li8g
@user-dk5hb6li8g 6 лет назад
На счёт побитовых операций, если кто-то заранее не знал, что это такое, то он скорее всего не очень поймёт чем побитовые отличаются от логических. Нет бы привёл пример побитовой операции не над отдельными битами, а над их последовательностью. Хотя бы пример с 1001 | 1100 показал бы. Что ИЛИ применяется к каждому биту отдельно (может кому-то не очевидно) и получается число 1101. Вместо этого стал опять рассказывать о таблице истинности, которая осталась той же, что и были при объяснении логических И, ИЛИ, НЕ...
@user-xh7hw4ck9z
@user-xh7hw4ck9z 3 года назад
меня больше интересует другой вопрос . зачем они это делают??? ведь большинство из нас знает про поговорку о бесплатном сыре ! а о разнице побитовых и логических операций можно загуглить! :) и нет я не адепт секты теории заговоров :)
@user-dk5hb6li8g
@user-dk5hb6li8g 3 года назад
@@user-xh7hw4ck9z Если везде будут надеяться на то, что можно загуглить, то будет как с форумами, большая часть выдачи в гугле будет вести на сообщения, что это можно загуглить.
@user-xh7hw4ck9z
@user-xh7hw4ck9z 3 года назад
@@user-dk5hb6li8g ключевое слово ("загуглить ") !!! а не просто бродить по гуглу отвлекаясь на разный хлам порно и всё такое :)
@user-dk5hb6li8g
@user-dk5hb6li8g 3 года назад
@@user-xh7hw4ck9z При чём тут отвлекаться? Мы сейчас совершенно о другом говорим, о том, что часто при поиске какой-то темы первые выдачи вместо того, чтоб осветить вопрос, ведут на страницы форумов, на которых предлагают искать в гугле. И человек воспользовавшийся советом попадает на предложения воспользоваться этим же советом.
@dmitrys777
@dmitrys777 2 года назад
Побитовые хороши для наложения масок, проверки отдельных битов. Сдвиги при умножении / делении на степень двойки и выводе данных на последовательную шину.
@userpewpow
@userpewpow 3 года назад
В конце точно про меня
@user-fj2vg1iu5x
@user-fj2vg1iu5x 3 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-iGO0eAboGB8.html
@bulatnaitli5411
@bulatnaitli5411 2 года назад
Подскажите пожалуйста, я прохожу по ссылке доп.материалы но там нет задачников, только описание лекции и карта квестов которые недоступны
@user-rq2fp2re6u
@user-rq2fp2re6u 3 года назад
Всё,комментарий нет, раньше чем за 4 года))
@LiguidCool
@LiguidCool 7 лет назад
Что-то как-то скомкано все ... И было бы интересно глянуть подробнее код сортировки.
@rumartru
@rumartru 7 лет назад
Тоже об этом подумал когда смотрел.
@user-ho7rv2ll9w
@user-ho7rv2ll9w 7 лет назад
Серьезно? Вы хотите стать программистом и не умеете пользоваться гуглом? ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D1%81%D0%BB%D0%B8%D1%8F%D0%BD%D0%B8%D0%B5%D0%BC
@rumartru
@rumartru 7 лет назад
Александр Стрекалов Спасибо КЭП!!! Вообще-то курсы для того и создаются, чтобы объяснять подобные вещи.
@MrRadiostep
@MrRadiostep 7 лет назад
Может быть больше информации и не хотят давать, чтоб не перегружать лишними тонкостями. Хотя, там на edx есть немного больше видеороликов с разъяснением. Но, ИМХО, только лишь смотреть и слушать не эффективно, надо обязательно решат задачи. В конце концов это ведь начальный уровень.
@hey-rg9lk
@hey-rg9lk 7 лет назад
LiguidCool здесь объясняется сама идея как сортировать, если ты ее поймёшь то можешь реализовать на любом языке) в большинстве книг по алгоритмам все написано на псевдокоде)
@user-fj8hp1pg6k
@user-fj8hp1pg6k 7 лет назад
очень интересно !!! но где продолжение .???
@user-gz1lz7hh9w
@user-gz1lz7hh9w 7 лет назад
Еще не перевели.. Примерно раз в неделю выкладывают:)
@JavaRushVideo
@JavaRushVideo 7 лет назад
9-я уже вышла - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-lqovT3n62ts.html
@user-yk5bd1nx4m
@user-yk5bd1nx4m 7 лет назад
в Беларуси не открывается - пишет, что заблокирована для нашей страны
@create_it_team
@create_it_team 10 месяцев назад
@@JavaRushVideo можете выложить 9. часть на другом ресурсе, не для Ютуба? И дать тут ссылку на него
@masterbit84
@masterbit84 7 лет назад
а gcc тоже в ассемблерный код сначала компилит? или сразу в машинный?
@user-dk5hb6li8g
@user-dk5hb6li8g 6 лет назад
Там тоже можно указать ключ -c и получить *.s с ассемблерным кодом.
@ivanrussui4126
@ivanrussui4126 2 месяца назад
в конце посмеялся
@arikaldoplay8776
@arikaldoplay8776 3 года назад
Ничего не понимаю, но очень интересно
@GalacticGuest
@GalacticGuest 2 года назад
Годовой абонент десять миллионов долларов это один час в сутки. По атмосфере страны, от численности населения. Штаты 350 миллионов в месяц. Россия 150 миллионов в месяц. Климатические заставят вас светится.
@Djudai999
@Djudai999 6 лет назад
Ой зря он стал на зелёном фоне в конце )
@xrtcam2371
@xrtcam2371 2 месяца назад
Госпади наконецто он заткунулся со своими О Эн логорифм Эн
@daniilrozyev
@daniilrozyev 2 года назад
Скорее всего на этой части половина отсеклась.
@lhommedesiberie4410
@lhommedesiberie4410 Год назад
Решительно непонятно исходя из слов лектора: каким образом программа обрабатывает элементы массива при переносе в n-ный массив, иными словами: для меня как внешнего наблюдателя очевидно, что 2 меньше 6 или что 6 меньше 8, но при столь тщательном разжёвывании концептуальных действий совершенно повергает в ступор, что лектор не останавливается на таком важном моменте
@lhommedesiberie4410
@lhommedesiberie4410 Год назад
Также смущает, что лектор не упоминает о проверке выходных данных, и тут два варианта а) есть определённая математическая структура, которая доказательно описывает почему я никогда не могу получить НЕ отсортированный массив данных после некоторого O(n) операций -- но лектор этого не говорит б) должна быть постпроверка результата, которая и определяет нашу потребность в следующей итерации работы алгоритма -- и этот момент как по мне тоже был опущен
@user-ht9wt8dn7e
@user-ht9wt8dn7e 7 лет назад
как же он быстро тут все говорит
@user-nl1dt3kc4u
@user-nl1dt3kc4u 3 года назад
Так ведь нужно не только слушать,но и записывать,а затем,в перерыве между боями, АНАЛИЗИРОВАТЬ.
@user-jn5ks9ho6f
@user-jn5ks9ho6f 2 месяца назад
вот я до сюда добрался ,кто нибудь смотрит вместе со мной?
@_GUTS.
@_GUTS. Месяц назад
Да
@flexterion
@flexterion 3 года назад
Рекурсия -- это плохо... А видео норм
@user-lw5uc9ks6b
@user-lw5uc9ks6b 2 года назад
Даже в деревьях?
@flexterion
@flexterion 2 года назад
@@user-lw5uc9ks6b даже в кустах
@blackmike3524
@blackmike3524 4 года назад
почему у вас не возникает вопрос : почему он сразу не мог видилить ети восим клеток и заполнить их?
@vadimirnov5211
@vadimirnov5211 3 года назад
Голопом по Европе
@xrtcam2371
@xrtcam2371 2 месяца назад
После того как он начал про логорифмы нести херь какуюто, хотя я понимаю зачем они и как решать, с этого момента я перестал понимать что тут происходит и напуя все это он несет. Темболее в курсе задача которого привлечь на кафедру новичков, Наверное отттолкнуть хотел от программирования
@user-fi9pz1is6f
@user-fi9pz1is6f 2 месяца назад
Кто из 2024?
@MultiTalya
@MultiTalya 7 лет назад
ДаЁшь бесплатное образование для жаждущих! ПРОДОЛЖАЙТЕ! А то - не подпишусь!
@JavaRushVideo
@JavaRushVideo 7 лет назад
Продолжаем)) 9-я уже вышла - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-lqovT3n62ts.html
@romanovich_igor
@romanovich_igor 7 лет назад
Проблемка с 9-й лекцией: Это видео содержит материалы от партнера SME, который заблокировал их показ в вашей стране в целях соблюдения авторских прав.
@lalo.salamanca0
@lalo.salamanca0 7 лет назад
в программировании они шарят, но вот в конце эти скетчи............... просто унылое говно!
@okidokioks
@okidokioks 3 года назад
Крекер тм ты просто не смотрел сайнфилда
@alehleshchanka9914
@alehleshchanka9914 7 лет назад
столько много слов.компиляция значит сспи,,,,зди,,ть,,0
@IvanIvanov-iq2uo
@IvanIvanov-iq2uo 8 месяцев назад
научите их обращаться к файлам в голове. В начале произносишь имя файла допустим линковка, мозг открывает блок и наполняет информацией. А то иногда думаешь о чем он к чему он....засыпаешь
@xrtcam2371
@xrtcam2371 2 месяца назад
Какуюто чушь несет О Эн на эльфийском базарит сам с собой о чемто
Далее
Best Programming Languages Tier List
33:02
Просмотров 8 тыс.