Coursera

Однако сдал итоговый экзамен 🙂 Оценка за курс все еще высчитывается, но тем не менее уже можно расслабиться и провести выходные в обычном режиме! No more deadlines! Кажется, подписаться на курс Coursera под конец года, когда последний раз был в отпуске целых 12 месяцев назад а на работе итак все кипит перед Christmas, было не самой лучшей идеей, но да ладно! Буду наверстывать, писать в блог почаще, т.к некоторые уже начали жаловаться, что я разленился. Как вариант, начну прямо сейчас, расскажу, что думаю про эти курсы и вообще, электронные учебники, онлайн-курсы, вот это все! Итак, 10 недель обучения на английском языке, 8-16 часов работы в неделю, преподаватель Дэн Гроссман из Вашингтонского университета, категория компьютерные науки — разработка программного обеспечения, курс «Языки программирования» (SML, Racket, Ruby), цена вопроса: совершенно бесплатно 😀



Желающие могут получить подтвержденный цифровой сертификат об окончании курса за $50 — для этого понадобится подтвердить свою личность, сфотографировав себя и свои права/Id/паспорт с помощью веб-камеры а также напечатать определенный текст с клавиатуры, тем самым предоставив свой, уникальный тип набора текста/скорость/количество ошибок во время печати по которым вас будут идентифицировать каждый раз в момент отправки домашнего задания на проверку. В случае, если у вас вдруг случится нехватка времени, вы не с того ни с сего передумаете или не сможете справиться с заданиями (успешным прохождением курса считается не менее 70% оценок) вы всегда сможете сделать рефанд:

  • 1. Регистрируемся по одному курсу доллара
  • 2. делаем возврат по другому
  • 3. ????
  • 3. PROFIT!!!! 😀

Регистрация на курс начинается за несколько недель, первая неделя дается на ознакомительные видео, знакомство со структурой сайта, различные опросы аудитории и установку софта (эмуляторов на которых вы будете запускать свои программы). Курсы, как правило повторяют раз полгода — год, так что если вы пропустили какой-либо из них, запаситесь терпением и ждите! Курсы проходят сегментами — раз в неделю на сайте выкладывается новый материал лекций в виде видео а также слайдов презентаций, в том числе в pdf-формате.

Длительность каждого видео около 10-15минут, в каждом сегменте примерно по 20 обязательных роликов, плюс несколько дополнительных, так что считайте сами. Реально, на курсы нужно выделять около двух часов времени каждый день, что согласитесь, не всегда удается, в особенности после работы, либо посвящать этому всю субботу (и иногда воскресение). Преподаватель рассказывает материал, на основном экране идет показ слайдов, а также трансляция видеозаписи с его лаптопа, на котором он набирает код и запускает его в эмуляторе. Видеоплеер поддерживает показ субтитров, а также имеет возможность изменения скорости проигрывания — некоторым студентам кажется что речь преподавателя становится занудной. Мой совет — набирайте и запускайте код в эмуляторе вслед за преподавателем, т.к это во-первых, полезно (вы закрепляете теорию сразу на практике), а во-вторых экономите время — по ощущению оно убыстряется как минимум в два раза 🙂 Как вариант, можно не смотреть видео и ограничиться чтением презентаций, но в идеале, лучше конечно сделать и то, и другое, т.к в видео вам покажут полезные примеры которых вы не найдете в слайдах, а в pdf собственно содержится теория и нюансы, которые вам весьма пригодятся, в особенности на экзамене 🙂

Что еще, во время просмотра видео вам периодически задают небольшие вопросы по теме в формате теста, прямо в видеоплеере, на которые нужно ответить. Так что зевать и фтыкать в потолок точно не получится, нужно внимательно слушать и понимать о чем собственно идет речь. Баллов за правильные ответы вам не дают, все вопросы исключительно для саморазвития.

Вопросы также содержат объяснения к правильным ответам, так что если вы встряли или ответили неправильно, вы всегда можете посмотреть и разобраться или по-крайней мере, попытаться. Для курсов есть форумы, а также митапы с регулярными собраниями слушателей. «Кодекс чести» Coursera запрещает выкладывать исходные коды домашнего задания и ответов к экзаменам так что все обсуждения должны содержать только полезные обсуждения.

Закончили просмотр лекций? Переходим к домашним заданиям! Заходим в раздел Programming Assignments, скачиваем описание и необходимые файлы по ссылкам.Совместно к файлу домашнего задания вам дают файл юнит-тестов, которые вы также можете расширить, добавив свои собственные тесты. 💡 Важно: выполненное домашнее задание нужно отправить в Programming Assignments, где выставляется автоматическая оценка на основании прохождении юнит тестов и соответствия сигнатур функций (как вариант, ошиблись с произношением — незачед) а также в Peer Assignments, где вашу работу оценят другие студенты. Первое можно делать несколько раз, т.е исправить ошибку и послать снова но, на оценку влияют ВСЕГО ДВЕ первых попытки. Peer Assignments призван не сколько улучшить оценку, выданную автоматической системой, сколько научить студентов читать и разбираться в чужом коде, а также учиться и перенимать лучшее на основе решений коллег по цеху.

Собственно про эмулятор: для выполнения домашних заданий по SML авторы курса (он же Дэн Гроссман ) таки предлагают использовать Emacs, довольно известный инструментарий в среде Computer Science. И на мой взгляд, весьма неудобный, так что набор и редактирование текста мне (и как я понял, не мне одному) приходилось делать в Notepad++ а компиляцию и выполнение в самом Emacs. DrRacket, который использовался для выполнения программ на языке Racket и Ruby в разы лучше.

Домашние задания состоят из 10-12 подзадач, представляющих собой реализацию различных функций по увеличению сложности. Выполнив все задания без ошибок, вы получаете 100 очков. Я уже проходил курс функционального программирования на Prolog и Haskell в ТУСУРе, поэтому какая-то база, пусть и остаточная у меня была, так что первое домашнее задание получилось сделать достаточно быстро, а вот с остальными пришлось весьма повозиться, ложившись спать во втором часу ночи, или наоборот, вставав в 5-6 утра чтобы успеть доделать последние задания к сроку. В дополнение к основным заданиям даются две-три экстримальных задачи за которые вам начислят дополнительные, внимание ❗ 4 очка. Сложность последних такова, что на них можно запросто убить целый день что, по моему личному мнению, вообще не имеет смысла.

Закончили? Юнит-тесты проходят? Ок, отправляем! Система проверит и выдаст оценку в течение нескольких минут. Тот факт, что ваши тесты прошли, не означает, что нет других тестов, на которых бы ваша программа не завалилась 😀 Так что, я думаю будет не лишним периодически обмениваться тестами со своими одногруппниками.

Далее, засабмитили в Programmng Assignments, идем в Peer Assignments — пусть вас не смущает фраза due in N day N h — в отличие от автобусных остановок это значит не дату «приезда» а дату дедлайна, до которого вам нужно отправить домашнее задание. Как правило, это +2 дня к дедлайну Programming Assignments, но я настоятельно советую вам отсылать задание сразу, чтобы не забыть и не получить 10% пенальти. Не понимаю, в чем была сложность объединить интерфейсы и сделать отправку в одном месте. Как говорится, сапожник, да без сапог.

Отлистываем вниз, прикрепляем файл с домашним заданием и файл юнит тестов и жмем Отправить, после чего вам сообщат что вы все еще можете сделать изменения и отправить задание повторно, просто на всякий случай.

В течение нескольких дней после дедлайна вам и другим трем студентам предоставят доступ к работам друг друга, которые необходимо проверить и выставить оценку по пяти бальной системе.

Если честно, я был слега огорчен, т.к абсолютно всем моим функциям были выставлены пятерки, в то время как я ожидал хоть что-то похожее на критику и комментарии. Люди просто не парятся и выставляют пятерки друг другу либо в надежде что это прокатит и в их собственном случае тоже либо тупо делают оценку за час до дедлайна.

Между прочим, пенальти за несвоевременную отправку задания в Peer Assignments равен 10% в то время как за несвоевременную проверку заданий других студентов вам начисляют уже 20%. Где логика, не понятно. За все время курса я умудрился забыть сделать повторную отправку своего задания целых два раза а также один раз забыл сделать проверку заданий других студентов.

Помимо проверки заданий других студентов, вам нужно проверить свое собственное задание ❗ и выставить оценку. «Кодекс чести» кагбе намекает, что к себе любимому нужно относиться с еще большей критикой 😀

Далее, после четырех недель видео-лекций и трех домашних заданий вам предстоит сдать экзамен с теоретическими и практическими вопросами. Первые представляют собой хитровыкрученную выжимку из прочитанного материала, а последние — примеры исходного кода с несколькими вариантами ответов. Перед экаменом вам необходимо пройти предварительный тест, на который отводится аж 100 попыток, а вот на сам экзамен дают всего один шанс. И у теста и у экзамена, ровно как и у домашних заданий тоже имеется последний срок сдачи. По окончанию экзамена можно будет посмотреть количество набранных баллов а также узнать где и на каких вопросах вы совершили ошибку. Красным крестиком помечают случаи, когда вы либо поставили не верный ответ, либо не поставили верный, а зеленой галочкой.. ну ты понял!

На экзамен отводится 90 минут, коих, по ощущениям, вполне хватает. Более того, вам не возбраняется пользоваться слайдами презентаций, видео лекциями а также запускать код задания в эмуляторе, что я настоятельно рекомендую делать. Далее, следуют еще четыре недели курсов по Racket и Ruby, три домашних задания и этоговый экзамен. Вроде бы все.

Итого: несмотря на определенную сложность материала (конкретно этот курс авторы рекомендуют студентам уровня выше среднего) и языковые сложности (приходится врубаться не только в теорию программирования но и в аспекты организации курсов как таковых), курсы Coursera несомненно стоят потраченного на них времени, т.к:

  • дисциплинируют (отмазки сделаю потом не прокатят, вас отчислят, закрыв доступ к новым материалам)
  • минимизируют время и ускоряют процесс обучения (сколько из вас начинало читать какую-нибудь книжку или тьюториал но забрасывало так и не закончив?)
  • тренируют английский (прежде всего технический) и помогают выучить новые термины или аналоги известных старых
  • помогают быть в тонусе и учить новое систематически, на регулярной основе с помощью профессиональных преподавателей университетов с мировым именем
  • они бесплатны!!! понял ты, наконец или нет? 🙂

Всем удачи!

  • 20

Удобный способ не пропустить новое в блоге. Раз в месяц пишу обстоятельное письмо всем читателям: анонсы постов, новости нашей деревни и прочие ништяки, которые не ушли в RSS, Feedly или куда-там еще.

На ежемесячную email рассылку подписаны 258 человек

Мотофотопрограммист
Живу в Новой Зеландии. Рассказываю о стране и красивых местах, пишу про бытовые вещи.
Прыгнуть с парашютом - осуществил на 50%; приобрести 1400 - работаю над этим; осилить 300км/ч - осилил на 96.6%