company_banner

Новый курс на платформе Stepic: «Углубленное программирование на С/С++»



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

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

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

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

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

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

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

    Регистрация на курс доступна по ссылке.
    Mail.Ru Group 791,50
    Строим Интернет
    Поделиться публикацией
    Комментарии 42
    • +2
      Видимо имею характер отличный от многих, никогда не понимал и не понимаю как можно научиться программированию на видео курсах. С интересом попробую.
      Не совсем понятно, почему на первом же курсе имеются вопросы, вместо видео.
      • +2
        Вот вы и ответили последним своим предложением на первое.
      • +2
        Не очень понятно, что подразумевается под «углубленным» изучением, какие вопросы будут подниматься? Есть ли более детальное описание разделов?
        • 0
          Описание разделов есть на странице курса на (под кнопкой «поступить»).
          По паре абзацев по каждому разделу написано еще здесь.
          • 0
            Ну вот «Организация и использование оперативной памяти», что под этим подразумевается? Что является углубленным изучением то в курсе?
        • +2
          В названии фигурирует С/С++, однако похоже, что речь идёт скорее о С++
          Если не сложно, добавьте абзац о Си-составляющей.
          • 0
            Судя по всему С идет первым разделом. части — организация работы с оперативной памятью (2 части) и основы многопоточного программирования. Затем идет С++. ООП, шаблоны классов, функциональное программирование, boost, проектирование ООП, идиоматика, рефакторинг, заключение. До тестов пока не дошел, вместо тестов вопросики.
          • 0
            Цена вопроса?
            • 0
              Присоединяюсь. И еще интересует глубина вопроса.
              • +1
                Бесплатно.
              • 0
                Неужели все проекты просмотрят? Какова там статистика людей доходящих до конца курса?
                • 0

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

                  • 0
                    Stepic (теперь уже Stepik) — это платформа для онлайн курсов. Сам курс создан it.mail.ru.
                    • 0
                      Сам курс размещен на Stepik
                    • +1
                      На Stepic его тоже можно найти, но чтобы поступить нужен профиль на it.mail.ru
                      4 модуля, 12 уроков:
                      1. Углубленное программирование на языке C
                      2. Объектная модель языка C++. Обобщенное программирование
                      3. Библиотеки промышленной разработки
                      4. Шаблоны проектирования. Основы промышленной разработки
                      • +1
                        Проходил «Многопоточное программирование на С/С++» от того же mail.ru. Мне понравилось, вспомнил забытый UNIX API, прояснил некоторые моменты, получил море удовольствия с отлаживанием решений. Этот курс для меня тоже интересен, но вряд ли найду время. Да и применять полученные знания на практике мне вряд ли придется :(
                        • +1

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

                          • 0

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


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

                        • 0
                          Выдаётся ли какой-либо сертификат по окончании курсов?
                          • 0
                            Да, электронный сертификат от Stepik.org и Mail.ru
                            • 0
                              Да, сертификат Mail & Stepik
                              • 0

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

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

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

                                    • 0
                                      1. В Яндекс меня не возьмут при всём желании, и я туда даже не стану соваться.
                                      2. У меня не начало карьеры.
                                      3. У меня есть опыт работы с open-source проектом, наличие сертификатов этому никак не мешает.
                              • 0
                                Там указаны некие дедлайны по каждому модулю. А что будет, если не уложиться в дедлайн?
                                • 0
                                  Снижаются баллы, получаемые за задания.
                                  • 0
                                    Но дедлайны указаны конкретными датами. Если начать за три дня до дедлайна, это сразу гарантия низких баллов и непрохождения?
                                    • 0

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


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

                                • +1

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

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

                                  • 0
                                    Stepik нынче через «k» правильно писать — у них тоже ребрендинг прошел:D Продвинутых курсов по программированию на степике не хватает. Спасибо.
                                    • 0
                                      Узнал много нового, например, что инт в памяти занимает 128байт. На 6:50 минуте
                                      • 0

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

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

                                                Её адрес выравняется по позиции, кратной 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 байт, при этом дырки эффективно используются, что бы разместить остальные элементы. Размер же самого типа никак не изменился.


                                                Проверить можно на Ideone: http://ideone.com/8um9v1


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

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

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

                                                  • 0
                                                    (Удалено)
                                        • 0
                                          Будут ли доступны лекции курса отдельно или снято ограничение на разблокировку модулей (новый модуль нельзя начать не набрав определенное количество баллов в предыдущем)? Лекции бы посмотрел с удовольствием, но, к сожалению, совсем нет времени решать практические задания.
                                          • 0
                                            Да, снято ограничение на разблокировку модулей.

                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                          Самое читаемое