Мы продолжаем запускать курсы на платформе Stepic. И сегодня делимся с вами очередной новостью: 23 августа был запущен курс по углубленному программированию на языках C/C++. Продолжительность курса чуть больше двух месяцев. Это прекрасная возможность расширить знания и получить новый опыт в условиях, когда на очные занятия просто нет времени.

В основу как лекционной, так и практической части курса положены программы Технопарка и Техносферы — наших образовательных проектов, организованных совместно с МГТУ им. Н.Э. Баумана и МГУ им. М.В. Ломоносова. Обе программы успешно реализуются в очном формате уже несколько лет, а их выпускниками стали более 300 студентов. Все эти годы основной акцент в обучении делается на программной архитектуре, а также вопросах надежности, безопасности и переносимости исходного кода.

Впрочем, онлайн-курс ориентирован не только на студентов, но и на зрелых специалистов, которые владеют синтаксисом языка, имеют за плечами как минимум один проект и хотят углубить или систематизировать свои знания. Для быстрой оценки текущего уровня подготовки участникам курса в первом же модуле будут предложены две несложные задачи, решение которых займет от 50 до 100 строк в каждой.

Однако основной «фишкой» курса, конечно, являются не задачи. Каждому участнику курса предстоит самостоятельно разработать простой — до 3000–5000 строк кода — проект на языке C++. Предметная область разработки, как и стек применяемых технологий специально не оговариваются: все творческие решения в рамках курса принимаются теми, кто его изучает. В ходе реализации поставленных задач участники могут использовать любые фреймворки или библиотеки, а результатом работы могут становиться не только традиционные мобильные или настольные приложения, но и решения для носимой электроники или серверные части web-сайтов.

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

Модули курса сгруппированы в 10 уроков, не считая приветствия и заключения. В ходе каждого из уроков участникам предстоит отвечать на вопросы текущего контроля знаний. Для этого в каждый урок введены 5 вопросов с выбором одного или нескольких вариантов ответа. Средний объем видеоматериалов каждого урока составляет около 100 минут.

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

Регистрация на курс доступна по ссылке.
Поделиться с друзьями
-->

Комментарии (40)


  1. azsx
    24.08.2016 17:16
    +2

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


    1. vyahhi
      24.08.2016 23:53
      +2

      Вот вы и ответили последним своим предложением на первое.


  1. segment
    24.08.2016 17:59
    +2

    Не очень понятно, что подразумевается под «углубленным» изучением, какие вопросы будут подниматься? Есть ли более детальное описание разделов?


    1. Mountwalker
      25.08.2016 16:43

      Описание разделов есть на странице курса на (под кнопкой «поступить»).
      По паре абзацев по каждому разделу написано еще здесь.


      1. segment
        25.08.2016 17:23

        Ну вот «Организация и использование оперативной памяти», что под этим подразумевается? Что является углубленным изучением то в курсе?


  1. claygod
    24.08.2016 18:03
    +2

    В названии фигурирует С/С++, однако похоже, что речь идёт скорее о С++
    Если не сложно, добавьте абзац о Си-составляющей.


    1. azsx
      24.08.2016 18:12

      Судя по всему С идет первым разделом. части — организация работы с оперативной памятью (2 части) и основы многопоточного программирования. Затем идет С++. ООП, шаблоны классов, функциональное программирование, boost, проектирование ООП, идиоматика, рефакторинг, заключение. До тестов пока не дошел, вместо тестов вопросики.


  1. gold_user
    24.08.2016 19:32

    Цена вопроса?


    1. dmrt
      24.08.2016 19:43

      Присоединяюсь. И еще интересует глубина вопроса.


    1. vyahhi
      24.08.2016 23:54
      +1

      Бесплатно.


  1. myxo
    24.08.2016 19:51

    Неужели все проекты просмотрят? Какова там статистика людей доходящих до конца курса?


  1. mezastel
    24.08.2016 20:29

    Я только не понял причем тут Stepic, т.к. ссылка идет на Mail.ru.


    1. insolor
      25.08.2016 16:44

      Stepic (теперь уже Stepik) — это платформа для онлайн курсов. Сам курс создан it.mail.ru.


    1. Olga_ol
      25.08.2016 16:45

      Сам курс размещен на Stepik


  1. x_sourer
    24.08.2016 21:56
    +1

    На Stepic его тоже можно найти, но чтобы поступить нужен профиль на it.mail.ru
    4 модуля, 12 уроков:
    1. Углубленное программирование на языке C
    2. Объектная модель языка C++. Обобщенное программирование
    3. Библиотеки промышленной разработки
    4. Шаблоны проектирования. Основы промышленной разработки


  1. gorodnev
    24.08.2016 22:51
    +1

    Проходил «Многопоточное программирование на С/С++» от того же mail.ru. Мне понравилось, вспомнил забытый UNIX API, прояснил некоторые моменты, получил море удовольствия с отлаживанием решений. Этот курс для меня тоже интересен, но вряд ли найду время. Да и применять полученные знания на практике мне вряд ли придется :(


    1. monah_tuk
      26.08.2016 13:12
      +1

      Правда тот курс стоило бы назвать "Асинхронное программирование на ...". И подача материала, ИМХО, какая-то слабая: видео приходилось ускорять, рвалось на полуслове, зачем-то написание кода в прямом эфире из головы с поиском ошибок, при этом была ситуация с корраптом, который так и не был решён :) Ещё была пачка замечаний, часть из них в отзывах и комментариях оставлено точно было, но конкретика уже выветрилась. Хотя, быть может от того, что это область моих интересов и, частично, профессиональной деятельности, плюс проходился курс спортивного интереса ради, то и придирок родилось много :)


      1. JIghtuse
        29.08.2016 07:36

        Поддержу, тот курс не соответствует названию. Из C++ там только первая неделя и немного boost где-то в конце. "Многопоточное" в последние несколько недель, до этого курс по UNIX. Лекции адски нудные: переписывание манов, компиляция ручным вызыванием gcc, исправление ошибок, отсутствие пояснений к некоторым кускам кода. Схожий по материалу курс от Computer Science Center в разы интереснее (и называется правильно).


        Полистал "углублённое программирование" — на вид поинтереснее, хотя что именно углублено непонятно.


  1. 32bit_me
    25.08.2016 05:07

    Выдаётся ли какой-либо сертификат по окончании курсов?


    1. natnovok
      25.08.2016 16:44

      Да, электронный сертификат от Stepik.org и Mail.ru


    1. Olga_ol
      25.08.2016 16:59

      Да, сертификат Mail & Stepik


    1. monah_tuk
      26.08.2016 13:14

      Кстати, а как вы планируете их использовать? Понятно, что устраиваясь в mail.ru они, быть может, какой-то вес и будет иметь, но, к.м.к, больше нигде оно особо и не котируются.


      1. 32bit_me
        26.08.2016 13:46

        При трудоустройстве полезны любые сертификаты. HR их очень любят.


        1. monah_tuk
          26.08.2016 14:02

          Главное не запутаться и не принести сертификат от Mail.ru в Яндекс и наоборот :-) А по сути, это наверное играет роль, когда карьерный путь только начинается. В моём случае к началу карьеры было уже немного Open Source, для трамплина этого оказалось достаточно. А потом уже можно обращаться к предыдущему опыту и участию в проектах.


          1. 32bit_me
            26.08.2016 14:09

            1. В Яндекс меня не возьмут при всём желании, и я туда даже не стану соваться.
            2. У меня не начало карьеры.
            3. У меня есть опыт работы с open-source проектом, наличие сертификатов этому никак не мешает.


  1. ivanych
    25.08.2016 14:10

    Там указаны некие дедлайны по каждому модулю. А что будет, если не уложиться в дедлайн?


    1. Mountwalker
      25.08.2016 17:11

      Снижаются баллы, получаемые за задания.


      1. ivanych
        25.08.2016 17:25

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


        1. monah_tuk
          26.08.2016 13:17

          А вы сначала пробегитесь по задачам. Скорее всего вы сможете часть решить без предварительного просмотра лекций. Тем паче, что некоторые вопросы всё равно требуют обращения к сторонней литературе и в лекциях не освещены. Первую задачу на программирование вообще можно решать без оглядки на теорию в видео.


          Собственно лекции потом по мере возможностей посмотрите.


  1. pastuh9090
    25.08.2016 16:42
    +1

    Проходил у них курс про Web-разработку python, Django — очень понравился, набрал 96 балов, временами бывали сбои, но ребята хорошую идею реализуют и развивают, стараются как можно больше делать курс интерактивным, задействуют git и виртуальные системы. Уже зарегистрировался, интересно, что будет в новом курсе.

    P.S. из пожеланий разработчикам, хотелось бы что бы видео можно было сразу скачать на весь урок, а лучше часть, что бы смотреть целиком и понимать картину в целом, без перерывов на паузы.


  1. Alexey_VL
    25.08.2016 16:43

    Stepik нынче через «k» правильно писать — у них тоже ребрендинг прошел:D Продвинутых курсов по программированию на степике не хватает. Спасибо.


  1. Agonee
    25.08.2016 16:45

    Узнал много нового, например, что инт в памяти занимает 128байт. На 6:50 минуте


    1. HolyBlackCat
      27.08.2016 20:37

      Я очень надеюсь, что это был сарказм и намек на неточную формулировку текста на слайде...


      1. Agonee
        28.08.2016 07:08

        Не только на слайде, но и в тексте который диктор читает.


        1. myxo
          28.08.2016 09:30

          Не услышал где там лектор говорит про размер типа, речь идет о выравнивании, вы лекцию вообще смотрели? В чем ваша претензия?


          1. Agonee
            29.08.2016 06:11

            что будет, если выравнять 4байтную переменную на границу 64байт? Сколько она по вашему занимать места станет? В 64 байтах нужно 16ть таких хранить.


            1. monah_tuk
              29.08.2016 09:47

              Её адрес выравняется по позиции, кратной 128. Дырку при этом никто не запрещает компилятору использовать как угодно, особенно если есть слова без жёсткого требования к выравниванию. В памяти же она как занимала 4 байта — так и будет. Более интересно применение в структурах, но с учётом того, что это расширение компилятор о каком-то стандартном поведении говорить не приходится, а вот так это может выглядеть:


              ниже код
              #include <iostream>
              #include <cstdint>
              #include <cstddef>
              
              using namespace std;
              
              using al64_uint32_t = uint32_t __attribute__((aligned(64)));
              
              struct Foo
              {
                  uint32_t a;
                  uint32_t b;
                  uint32_t c;
                  uint32_t d;
              };
              
              struct Bar
              {
                  uint32_t a;
                  uint32_t b;
                  al64_uint32_t c;
                  uint32_t d;
              };
              
              int main() 
              {
              
                  cout << sizeof(al64_uint32_t) << endl;
                  cout << sizeof(Foo) << endl;
                  cout << sizeof(Bar) << endl;
              
                  cout << "a: " << offsetof(Bar, a) << endl;
                  cout << "b: " << offsetof(Bar, b) << endl;
                  cout << "c: " << offsetof(Bar, c) << endl;
                  cout << "d: " << offsetof(Bar, d) << endl;
              
                  return 0;
              }

              А результат вполне может оказаться таким:


              4
              16
              128
              a: 0
              b: 4
              c: 64
              d: 68

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


              1. Agonee
                29.08.2016 13:32

                Спасибо за объяснение.


                1. monah_tuk
                  29.08.2016 13:41

                  Её адрес выравняется по позиции, кратной 128.

                  тут я должен был написать 64, спутал с примером в видео.


              1. Agonee
                29.08.2016 13:33

                (Удалено)