Я разместила иконки курсов Стэнфордского университета по разработке приложений на iOS в обратном хронологическом порядке. На первом месте стоит иконка Swift — нового языка программирования для создания приложений на iOS, объявленного на WWDC 2014. Его официальный релиз состоялся осенью 2014 года. Кроме Swift реализована новая версия iOS — iOS 8. Уже известно, что Стэнфордский университет запустит зимой 2015 года новый курс CS193P с неизвестным пока названием (может быть будет что-то вроде «Developing iOS 8 Apps for iPhone and iPad»). Лектор тот же — профессор Paul Hegarty. Кроме того, Apple упоминала о включении Swift в учебные программы Стэнфорда, California Polytechnic Institute и других. Поэтому есть большая вероятность, что там будет Swift, но не как лидирующий, а наряду с Objective-C, потому что пока команде Apple не удалось вывести Swift на технологический уровень. Но в любом случае, там будет все об iOS 8.
В традиции Apple выкладывать этот курс на iTunes U в виде бесплатного курса обучения, но делают это они со сдвигом во времени, чтобы не мешать платному обучающему процессу, так что в феврале-марте 2015 года (как это было в 2013 году) можно ожидать постепенное появление лекций на iTunes U.
Надо сказать, что те, кто хоть раз использовали предыдущие версии стэнфордского курса CS193P для самообучения, конечно, ждут это событие с нетерпением. А предыдущих версий курса CS193P с профессором Paul Hegarty в качестве лектора было несколько.
Бесплатный обучающий курс «Developing iOS 7 Apps for iPhone and iPad» был запущен Стэнфордским университетом в семестре «осень 2013 — зима 2014 года» на iTune U. До этого были очень интересные и также бесплатные курсы «Coding Together: Developing iOS 6» (семестр «зима 2013 — весна 2013 года») и «Coding Together: iOS 5 Apps for iPhone and iPad» (25 июня — 27 августа 2012). Причем последний основан на материалах популярного в iTune U курса CS193P «iOS 5 iPad and iPhone App Development (Fall 2011)». Стэнфордский курс «iOS 5 iPad and iPhone App Development» на iTunes U скачали более 10 миллионов раз, сделав его одним из самых популярных online курсов на Земле.
Я прошла почти все курсы профессора Пола Хэгарти — от iOS 5 до iOS 7 — до самого конца (смотри Github ) и могу сказать, что особый прорыв в изучении программирования в операционной системе iOS удается достичь при изучении курсов типа «Coding Together» (программируем вместе), так как вам предоставляется ресурс стэнфордского университета — Piazza — для совместного обучения (peer collaboration). Плюс у вас появляется редчайшая возможность изучать программирование для iPhone и iPad наряду с другими разработчиками мобильных приложений по всему миру. На Piazza (по-итальянски «площадь») можно задавать вопросы и получать ответы со всего мира. Там же можно было подписаться на курс.
Если вы уже пробовали осваивать этот курс программирования в одиночку, то наверняка застревали где-то на лекции 3 или 4, а то и раньше. А на Piazza всегда были люди, готовые вам помочь.
Основной язык на Piazza — английский, в этом для многих, не владеющих английским свободно, проблема, но об этом ниже.
Каждую неделю по понедельникам и средам на iTune U (для iOS устройств и для Мас) выкладывались лекции основного курса, а каждую пятницу — дополнительная лекция на тему, связанную с iOS устройствами (они, по замыслу, факультативные, но настоятельно рекомендовались к просмотру). Каждую среду — домашнее задание (Assignment), на выполнение которого отводилась неделя (до следующей среды). За это время в Piazza можно спрашивать любые вопросы, давать любые ответы, вступать в дискуссию по вопросам текущей лекции или задания. Кроме того, нужно было организоваться внутри Peer Group на выполнение задания и проверку кода друг друга. Это давало возможность всем двигаться по курсу с приблизительно одинаковым темпом.
Ближе к окончанию курса вы должны сделать финальный проект.
Слушать блестящие лекции профессора Пола Хегэрти (Paul Hegarty) очень интересно. Его лекции понятны и информативны. Он высвечивает множество нюансов операционной системы iOS, которые не так-то легко найти в документации и снабжает приемами программирования, которые вы не найдете ни в одной книге (может быть, на WWDC 2011, 2012, 2013, 2014). Он многократно сократит ваш путь изучения программирования на iOS5. Реально, он — гений в преподавании программирования на iOS.
Но «соль» этого курса в заданиях (Assignments 1 — 6), которые вы должны выполнить самостоятельно в течение одной недели. Задания — очень не легкие и чем дальше — тем сложнее, хотя в тексте заданий множество подсказок и даже скриншоты. Вам придется просмотреть множество книг, документацию Apple и обратиться на Piazza с вопросами.
Сам процесс выполнения заданий на Mac в Xcode 5 или новом Xcode 6 — очень увлекательный: хорошая информационная поддержка, результат отображается на симуляторах iPhone и iPad или на реальных устройствах, визуализация процесса отладки.
После выполнения очередного задания вы другими глазами посмотрите на ту же самую лекцию, которую слушали перед выполнением задания, она будет для вас абсолютно понятной и логичной и вы сможете сосредоточиться на важных нюансах, которых в лекциях Пола Хeгэрти очень много.
Домашние задания «настоящих» студентов Стэнфорда выполняются в срок и оцениваются ассистентами и самим профессором, ну а у нас — бесплатный курс и мы можем выполнять домашние задания в соответствии со своим собственным темпом, а также смотреть в Piazza на код других участников и сравнить их со своим решением. Вы увидите столько нетривиальных, так сильно отличающихся друг от друга, а иногда и просто гениальных решений, которые можно обсуждать в Piazza, а затем заимствовать для дальнейшей работы.
К сожалению, курсов типа «Coding Together» было всего два для iOS 5 и iOS 6. Для курса «Developing iOS 7 Apps for iPhone and iPad» нас уже не пригласили на Piazza, но наиболее активные энтузиасты продолжали успешно использовать этот ресурс.
Почти нет шансов, что перспективный курс по iOS 8 будет проходить в режиме «Coding Together», так как, по моему мнению, отдельные решения на Piazza «превосходили те, которые выполняли „настоящие“ студенты, а это мешает учебному процессу.
Но курс настолько хорош, что огромное спасибо Стэнфорду за то, что доступно.
Для подготовки к перспективному курсу по iOS 8 решила остановится на последнем доступном в настоящее время курсе »Developing iOS 7 Apps for iPhone and iPad", для которого составила неавторизованный конспекты лекций, тексты домашних заданий и примеры их решения на русском языке. Кроме того, я поделюсь с вами наиболее интересными решениями, которые мне удалось обнаружить на Piazza. Вы можете найти их на сайте.
Надо сказать, что конспект лекций не имеет вид безукоризненно отредактированных материалов, так как был составлен с разговорной речи во время лекции, а некоторые вещи профессор чисто методически повторяет несколько раз в разных вариантах. Кроме того, все слайды переведены на русский язык и вставлены в конспект, а также могут дублировать речь профессора, который объясняет эти слайды.
Приведу здесь некоторые примеры описания лекций, чтобы вы смогли оценить качество русскоязычного неавторизованного конспекта.
На сайте имеются примеры выполнения Домашних заданий (Assignments).
Stanford CS 193P iOS 7 Лекция 3 – Objective-C
На Лекции 3 демонстрируется, как решать Домашнее задание 1 и добавляются новые возможности в игру Matchismo: разрабатывается алгоритм подсчета очков при «совпадении» карт, когда в игре участвует несколько карт (например, 12).
Код для этой лекции доступен на github.
Видео Лекции 3, а также ее слайды (которые включают в себя полную пошаговую инструкцию демонстрационного проекта Лекции 3) доступны на iTunes название “3. Objective-C”.
Русский перевод Лекции 3 доступен по ссылкам:
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 1;
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 2;
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 3;
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 4;
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 5;
Лекция 3 CS193P iOS 7 Fall 2013 — Winter 2014 6.
Stanford CS 193P iOS 7 Лекция 6 – Полиморфизм Controllers и множественные MVCs в приложении, UINavigation, UITabBar
Лекция 6 начинается с короткой демонстрации того, как создавать абстрактные классы ViewController
и использовать их для построения subclasses для конкретных карт (например, для игральных карт PlayingCardGameViewController.h, PlayingCardGameViewController.m
).
Теоретическая часть лекции посвящена совместной работе множества MVCs на основе NavigationControllers
и segues
, возможности которых показываются в другой демонстрации.
Лекция заканчивается объяснением работы TabBarControllers .
Код для этой лекции представлен для Attributor на сайте Stanford, а для Matchismo в Github.
Лекция 6 вместе со слайдами на английском языке доступна на iTunes название “6. Views and Gestures”.
Русский неавторизованный конспект Лекции 6 доступен по ссылкам:
Лекция 6 CS193P iOS 7 Fall 2013 — Winter 2014 1;
Лекция 6 CS193P iOS 7 Fall 2013 — Winter 2014 2;
Лекция 6 CS193P iOS 7 Fall 2013 — Winter 2014 3;
Лекция 6 CS193P iOS 7 Fall 2013 — Winter 2014 3.
Обеспечение курса
— Сайт стэнфордского университета: курс CS 193P iPhone Application Development;
— Piazza.
В iTune U другие курсы:
Coding Together: Developing iOS 6 (семестр «зима 2013 — весна 2013 года»);
Coding Together: iOS 5 Apps for iPhone and iPad (25 июня — 27 августа 2012);
CS193P «iOS 5 iPad and iPhone App Development» профессор Paul Hegarty (Осень 2011).
Так как iTunes работает немного по-разному на Macs и iOS устройствах, то не все материалы автоматически размещаются на вашем Mac. На iPad в программе iTune U размещаются все материалы в очень удобной форме, хотя часть их (демонстрационные приложения) нужна именно на Mac.
Автор: WildGreyPlus