Почему?

Обычно я считаю, что мне очень повезло. Когда ваша работа тесно связана со спасением человеческих жизней, вы склонны чувствовать, насколько каждая минута вашего рабочего дня стоит затраченных усилий. Я был одним из инженеров SW, которые разработали систему экстренного торможения Volvo Trucks, которая спасла жизнь ребенка в этом видео.

Насколько это интересно, работа в области ассистируемого / автономного вождения является чрезвычайно сложной задачей, учитывая постоянное развитие технологий. Вот почему я присоединился к Udacity Self-Driving Car Engineer Nanodegree в октябре 2017 года. Программа создана совместно с Mercedes, BMW, McLaren, Uber, Nvidia и Didi, и она охватывает наиболее важные аспекты стека ПО для автономных транспортных средств. . Посвятив 20 часов еженедельной работы по программе, я закончил ее с 14 проектами, почти 8000 строк кода, опубликованными в моей учетной записи GitHub, охватывающих глубокое обучение, компьютерное зрение, восприятие окружающей среды и управление транспортными средствами.

К концу курса Self-Driving Nanodegree я уже думал, что мне делать после окончания учебы. Я начал изучать требования к работе ключевых игроков автомобильной промышленности и решил, что мне следует получить степень магистра. Не только из-за того, что магистерская программа даст мне академический кредит, который ищут крупные фирмы, но и потому, что я хотел глубже изучить компьютерные науки и знания об автономном вождении.

Я решил подать заявку на OMSCS по двум причинам:
1. Он работает уже много лет, и люди впечатлены всем опытом.
2. В нем есть две специализации, по которым я могу объедините, чтобы получить знания, которые я ищу, Вычислительное восприятие и робототехника и Машинное обучение.

Хотя моя успеваемость в бакалавриате не особо впечатляет, я приложил много усилий к Заявлению о целях (начиная со сцены из египетской революции!), Делая упор на моем профессиональном опыте в качестве инженера по встроенному ПО, а не на моем академическом зачете. .



После 29 дней ожидания я наконец получил письмо о зачислении из Технологического института Джорджии, в котором меня рекомендовали для прохождения OMSCS (Wohoo!).

Дорогой Мохамед,
Поздравляю! От имени Колледжа вычислительной техники Технологического института Джорджии я рад рекомендовать вас принять участие в нашем онлайн-предложении программы магистра наук в области компьютерных наук (OMSCS) на семестр, начинающийся весной 2019 года. Ваша квалификация отметила вас в пуле очень сильных претендентов. Надеюсь, вы примете это приглашение.

Примечание. Если вы являетесь нынешним / новым студентом, проживающим в районе Штутгарта, Германия, дайте мне знать. Мы можем что-то сделать вместе!

Допущенный? Нам нужен план курса!

Теперь, когда меня приняли, я начал изучать варианты курса. Чтобы закончить OMSCS, вы должны пройти не менее 10 курсов (30 кредитов) с оценкой B или выше.

Я начал искать совета. Reddit имеет замечательный субреддит для программы (r / OMSCS), который очень активен с более чем 5 тысячами подписчиков. Проверив этот субреддит вместе с сайтом обзора курсов для программы OMSCentral (Удивительный сайт!), Я составил следующий список курсов:

Примечание. Я пройду 2 курса в первом семестре. Я знаю, что это не рекомендуется, но я все равно рискну, и я готов рискнуть, уронив один из них и потеряв свои деньги.
PS: Этот план был обновлен после получения комментариев на Reddit.

Семестр №1: весна 2019 г. (рабочая нагрузка: 37 часов - сложность: 8,3 / 10,0)

  • CS 7641: Машинное обучение
    Средняя нагрузка: 21 час.
    Сложность: 4,2 / 5,0
    Рейтинг: 4,1 / 5,0
    Язык программирования: Python
    Говорят, что это один из лучших курсов во всей программе. Особое внимание уделяется синтезу алгоритмов машинного обучения и самой теории обучения.
  • CS 6210: Расширенные операционные системы:
    Средняя нагрузка: 16 часов
    Сложность: 4,1 / 5,0
    Рейтинг: 4,4 / 5,0
    Язык программирования: C / C ++
    Я беру этот курс по двум причинам. Во-первых, мне интересна тема, и знания, которые мы должны получить в классе, должны помочь мне в работе с операционными системами реального времени. Во-вторых, я хотел бы добавить несколько классов со вкусом C / C ++, чтобы улучшить свои навыки. У меня есть некоторые знания об ОС, поэтому я просто пропущу CS 6200.

Семестр №2: лето 2019 г.

  • CS 7642: Обучение с подкреплением
    Средняя нагрузка: 22 часа
    Сложность: 4.0 / 5.0
    Рейтинг: 4.0 / 5.0
    Язык программирования: Python
    Похоже, что материал этого курса совпадает с CS 7641, но он дает обзор продвинутых тем в RL, а также некоторые исследовательские работы. Что действительно важно для меня, учитывая, что я возьму CS 6460 ради написания исследовательской работы.

Семестр № 3: осень 2019 г. (рабочая нагрузка: 36 часов - сложность: 7,4 / 10,0)

  • CS 6601: Искусственный интеллект
    Средняя нагрузка: 23 часа
    Сложность: 4.3 / 5.0
    Рейтинг: 4.1 / 5.0
    Язык программирования: Python
    Этот курс очень сложен, я даже не уверен, стоит ли мне сочетать его с другим курсом или нет. Я также могу купить копию текста для чтения (AIMA), это хорошая ссылка для хранения в моей библиотеке.
  • CS 8803: Искусственный интеллект для робототехники
    Средняя нагрузка: 13 часов.
    Сложность: 3,1 / 5,0
    Рейтинг: 3,8 / 5,0
    Язык программирования: Python
    В этом курсе собраны хорошие знания теории вероятностей и линейной алгебры. Я уже пробовала его на Udacity, и мне оно показалось действительно интересным и информативным. Также неплохо было бы работать в паре с ИИ, поскольку кажется, что у них есть как-то перекрывающийся материал (см. Этот комментарий на Reddit).

Семестр № 4: весна 2020 г. (рабочая нагрузка: 30 часов - сложность: 6,3 / 10,0)

  • CS 6476: Компьютерное зрение
    Средняя нагрузка: 20 часов
    Сложность: 4.0 / 5.0
    Рейтинг: 4.4 / 5.0
    Язык программирования: Python
    Этот курс должен быть мне интересен, учитывая, что автономное вождение тесно связано с проблемами зрения. Я поиграл с OpenCV в Udacity's Nanodegree, поэтому в этом курсе я должен расширить свои знания и углубиться в Python.
  • CS 7646: Машинное обучение для торговли
    Средняя нагрузка: 10 часов
    Сложность: 2.3 / 5.0
    Рейтинг: 4.4 / 5.0
    Язык программирования: Python
    Я намеренно выбираю этот курс, потому что его будет легко пройти после завершения ML (мне действительно следовало бы вместо этого связать его с ML). Курс включает в себя несколько модульных проектов, которые подводят итог торговой модели на основе машинного обучения к концу семестра.

Семестр №5: лето 2020 г.

  • CS 7639: Киберфизический дизайн и анализ
    Средняя нагрузка: 13 часов.
    Сложность: 3,6 / 5,0
    Рейтинг: 2,07 / 5,0
    Этот курс дает вам общее представление о трудностях, проблемах, ограничениях и передовых методах работы с киберфизическими системами. OMSCS advising объявил несколько месяцев назад, что этот класс также удовлетворяет требованиям специализации CP&R.

Семестр №6: осень 2020 г.

  • CS 8803 GA: Алгоритмы для выпускников
    Средняя нагрузка: 22 часа.
    Сложность: 4,1 / 5,0
    Рейтинг: 4,4 / 5,0
    Язык программирования: чистая математика
    Этот курс является ОСНОВОМ информатики. Это должно дать мне теоретические знания, которые я ищу, а также множество математических концепций, которые мне понадобятся позже в других курсах машинного обучения. Планирую приобрести предлагаемый текст для чтения (Алгоритмы) и начать практиковаться до начала семестра.

Срок 7: весна 2021 года

  • CSE 6242: данные и визуальная аналитика
    Средняя рабочая нагрузка: 14 часов
    Сложность: 3,1 / 5,0
    Рейтинг: 3,5 / 5,0
    Язык программирования: Python / Java
    Этот курс предоставляет введение в несколько методов и инструментов для анализа и визуализации данных в масштабе. У него очень хорошие отзывы на OMSCentral, и было бы неплохо завершить программу.

OR

  • CS 8803 O08: Компиляторы - теория и практика
    Средняя нагрузка: 27 часов
    Сложность: 4,3 / 5,0
    Рейтинг: 3,9 / 5,0
    Язык программирования: C / C ++
    Этот курс был предложен мне на Reddit, когда я попросил пройти тяжелый курс по C ++. У него есть большой проект, в котором мы можем построить компилятор.

Другие интересные курсы:

  • CS 7637: Искусственный интеллект, основанный на знаниях: когнитивные системы
    Средняя нагрузка: 14 часов.
    Сложность: 3,2 / 5,0
    Рейтинг: 3,7 / 5,0
    Язык программирования: Python / Java
  • CS 6250: Компьютерные сети
    Средняя нагрузка: 13 часов
    Сложность: 3,8 / 5,0
    Рейтинг: 4,0 / 5,0
    Язык программирования: Python
  • CS 6290: высокопроизводительная компьютерная архитектура
    Средняя нагрузка: 13 часов
    Сложность: 3,8 / 5,0
    Рейтинг: 4,0 / 5,0
    Язык программирования: C / C ++
  • CSE 6220: Введение в высокопроизводительные вычисления
    Средняя рабочая нагрузка: 20 часов.
    Сложность: 4,5 / 5,0
    Оценка: 4,7 / 5,0
    Язык программирования: C / C ++
  • CS 8803 Специальные темы: Встроенное ПО
    Средняя нагрузка: 16 часов
    Сложность: 3,5 / 5,0
    Рейтинг: 3,7 / 5,0
    Язык программирования: C / C ++
  • CS 6460: Образовательные технологии
    Средняя нагрузка: 13 часов.
    Сложность: 2,8 / 5,0
    Оценка: 4,4 / 5,0
    Язык программирования: на основе исследований

Итак, что вы думаете об этом плане? Это реально? Как вы думаете, есть ли другие курсы, более связанные с автономным вождением / робототехникой?

Мохамед Амин - египетский инженер-программист из Германии. Интересуюсь искусственным интеллектом и робототехникой. Пишу о технике и науке.