Почему?
Обычно я считаю, что мне очень повезло. Когда ваша работа тесно связана со спасением человеческих жизней, вы склонны чувствовать, насколько каждая минута вашего рабочего дня стоит затраченных усилий. Я был одним из инженеров 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
Язык программирования: на основе исследований
Итак, что вы думаете об этом плане? Это реально? Как вы думаете, есть ли другие курсы, более связанные с автономным вождением / робототехникой?
Мохамед Амин - египетский инженер-программист из Германии. Интересуюсь искусственным интеллектом и робототехникой. Пишу о технике и науке.