Уровень математики вполне доступный, если вы знаете, что такое логарифм и немного теорию рядов, то справитесь. Много чего предлагают принять на веру. Хотя порой приходится тормозить лекцию и на бумажке прикидывать, как был получен тот или иной результат, но ничего сложного.
Стоит упомянуть, что лекции читает Роберт Седжвик, автор знаменитых книг по алгоритмам и Java. К сожалению, мне не очень нравится его манера рассказа, часто запинается, произносит «э-э-э», «м-м-м». На той же Coursera на курсе Cryptography Дэн Бонэ тараторит раза в 3 быстрее, но воспринимается легче. Субтитры с небольшими ошибками, со странным разбиением фраз. Переведены на русский лишь малая их часть.
Очень понравились практические задания. Не нужно повторно реализовывать описанные в лекциях алгоритмы, а нужно решать конкретные практические задачи с их использованием.
А у меня вот криптография гораздо медленнее идет — английский знаю плохо, поэтому, если чуть-чуть отвлекуюсь (а у меня такое часто бывает), то приходится довольно большой кусок заново пересматривать.
Вообще, зря я, наверное, сейчас подписан на 4 курса одновременно, да еще несколько на подходе:)
Еще надо добавить, что это первый курс, который предлагает добавить свое резюме, и расшарить результаты этого курса партнерам, для получения офера на работу.
Ну если можете оперативней, то чего ж не пишите? На статью время то же надо.
Я кстати упомянул об этом. Это вполне приемлемо, «влезть» в курс с середины нельзя, а те кто захотят записаться, могут это сделать через пару недель.
Да, курсы — это видео, но не он-лайн. все в записи, можно даже себе скачать видеолекции. Раз в 6 недель курс перезапускается и вы можете начать его изучение.
Наверное, будет не лишним упомянуть про еще один курс, доступный на coursera: «Algorithms: Design and Analysis, Part 2» который будет вести Tim Roughgarden из Стэнфорда (тыц). Курс начинается через 12 дней.
Если сравнивать курсы от Роберта Сэджвика и Тима Рафгардена, то мне кажется они дополняют друг друга, несмотря на то, что темы практически совпадают. Еще у Тима больше математических доказательств — меня, например, больше всего впечатлило доказательство работы «Find K-th largest element of unsorted array» (megresort based) за линейное время. Архив первой части курса Тима здесь
Курс думаю пройти стоит, сейчас просто вы его не начнете. Курс стартует с периодичностью в 6 недель, и в середине этих итераций вклинится в курс не получится. Просто пройдите по ссылке www.coursera.org/course/algs4partI там будет кнопочка записаться на курс, вам должно прийти извещение когда будет в него записать, хотя возможно уже можно сейчас записываться.
А каков лучший алгоритм нахождения коллинеарных точек? Подсчет угла наклона линии между ними, сортировка, и вывод как коллинеарных точек с одним углом?
Да, перебор точек и подсчет угла наклона который образуется между базовой точкой и остальными точками, потом сортировка результатов, ну и поиск точек с одним углом.
На самом деле алгоритм там простой, все основано на том чтобы рассказано о задаче Union Find, нужно аккуратно реализовать указанные методы на основе WeightedQuickUnionUF и при открытии новой ячейки не запутаться в индексах, сделать объединение с нужным поддеревом (проверить соседние 4 ячейки с вновь открытой), ну и обработать корректно особые случаи.
Да, возможно избавиться. К сожалению, при этом придется отказаться от корневого элемента для нижних ячеек, за-за чего возрастает количество вызовов find(). Соответственно, в результате придется подумать над оптимизацией алгоритма с целью уменьшения количества вызовов union() и find(), для меня это и было наиболее сложным в данной задаче.
хороший курс, то же его прохожу, жаль только из-за командировки пришлось неделю пропустить,
тем кто не успел на первый курс, советую записаться на вторую часть про графы и тд https://www.coursera.org/course/algs4partII,
хоть Седжвик читает и не быстро, как было сказано выше, но его речь очень легко понимается, так что советую
Курс Algorithms от Coursera (1-3 недели обучения)