Руководство по установке
Задания по программированию в курсах Защита программного обеспечения и Продвинутые темы основаны на Python, за исключением нескольких заданий, где используется JavaScript.
Для выполнения заданий по программированию нужно установить несколько программных пакетов:
- клиент TestMyCode (TMC), чтобы скачивать задания и отправлять решения
- Python 3
Кроме того, для курса Защита программного обеспечения требуются
- несколько дополнительных пакетов для тестирования заданий на Python
- ChromeDriver + Chrome для тестирования заданий на JavaScript
Установка TMC
Для корректной работы TMC требуется достаточно современная Java 8 или новее. Например, OpenJDK 1.8.0_212 работает, как и версии 11.x и 12.x. Можно попробовать установить и запустить tmc, а затем обновить Java, если вход через cli не работает.
Следуйте инструкциям на следующей странице, чтобы установить клиент TMC.
Обратите внимание, что в этом курсе используется версия TMC для командной строки, а не NetBeans или другая IDE. Поэтому нужно знать основы работы с командной строкой в терминале или командной строке Windows.
Если вам очень неудобно пользоваться командной строкой, можно использовать Visual Studio IDE (с Python), так как для клиента TMC есть плагин для Visual Studio.
Установка Python 3
Для заданий требуется Python 3 (3.5 или выше). Это может вызвать путаницу, потому что, например, на Mac предустановлен Python 2. Существует много способов установить Python 3.
- Скачайте его с официального сайта.
- Пользователи Ubuntu/debian могут использовать apt-get.
- Пользователи Mac могут использовать MacPorts, если он установлен.
- Популярные дистрибутивы Python, anaconda и miniconda, имеют собственную систему установки пакетов. Эти дистрибутивы должны работать, но они не тестировались. Если у вас уже установлена anaconda, рекомендуем попробовать установить нужные пакеты через anaconda.
Далее мы предполагаем, что команда для Python 3 — python3; обычно так и
бывает в macOS/Linux. Это также может быть просто python; в таком случае,
когда мы просим ввести python3, вводите python. Это особенно вероятно, если
вы используете Windows. Версию вашего Python можно посмотреть командой
python3 --versionЖелательно, чтобы Python был доступен через переменную окружения PATH. Для Mac и Linux это обычно происходит более или менее автоматически. Официальный установщик Windows спрашивает, хотите ли вы добавить Python в PATH; ответьте утвердительно.
Установка дополнительных пакетов
Этот шаг требуется только для курса Защита программного обеспечения.
Установщик пакетов для Python (pip) уже должен быть установлен в современных
версиях Python, если вы установили Python с python.org или используете
дистрибутив conda. Если вы установ или его через apt-get или port, скорее всего,
вам нужно будет установить pip. Название пакета, вероятно, python3-pip;
как альтернативу используйте эти инструкции по установке pip.
Установите следующие пакеты с помощью pip
python3 -m pip install django "selenium<4" "urllib3<2" beautifulsoup4 requestsУ последних версий selenium (основная версия 4) и urllib3 (основная версия 2) есть некоторые проблемы совместимости, поэтому устанавливаются более старые версии.
Нужно настроить межсетевой экран так, чтобы Python мог слушать соединения и подключаться к интернету.
Установка ChromeDriver и Chrome
Этот шаг требуется только для курса Защита программного обеспечения.
Есть несколько заданий по программированию, где нужно писать JavaScript. Для локального тестирования этих заданий тесты используют браузер Chrome.
Требуются две программы:
- браузер Google Chrome
- программа, которая позволяет Python взаимодействовать с браузером, ChromeDriver
При установке ChromeDriver нужно убедиться, что версия драйвера соответствует версии браузера, иначе драйвер откажется работать. Версию браузера можно посмотреть, открыв chrome://version .
Также нужно убедиться, что Chrome и ChromeDriver доступны через переменную окружения PATH, то есть вы должны иметь возможность открыть ChromeDriver и браузер из командной строки без указания точного расположения исполняемого файла.
ChromeDriver поставляется без установщика. Вместо этого это исполняемый файл в zip-архиве. Нужно распаковать пакет и поместить исполняемый файл туда, где он будет доступен через PATH.
Google Chrome обычно обновляется автоматически. Когда это произойдет, вам нужно будет вручную обновить ChromeDriver.
Проверка работоспособности
Чтобы проверить установленные пакеты, скачайте скрипт и запустите его с помощью Python
python3 sanity.pyСкрипт проверит, установлены ли пакеты Python, и использует selenium для доступа к google.com. Обратите внимание, что этот скрипт проверяет установки, необходимые для курса Защита программного обеспечения. Эти пакеты не нужны для Продвинутых тем.
Скачивание заданий
Перейдите в папку, куда хотите скачать задания, и выполните команду tmc login.
Если программа запрашивает адрес сервера, ваш клиент TMC устарел. Переустановите клиент.
Введите учетные данные и используйте идентификатор организации mooc.
Скачайте задания для курса «Защита программного обеспечения» командой
tmc download mooc-securing-software-25Скачайте задания для курса «Продвинутые темы» командой
tmc download mooc-cyber-advanced-topics-2025Важно: не меняйте имя корневого каталога, например оно должно оставаться mooc-securing-software-23.
Задания можно тестировать локально с помощью tmc test и отправлять решения с
помощью tmc submit. Дополнительные команды см. в tmc help.
Отдельное задание можно протестировать, перейдя в папку этого задания, или можно протестировать все задания сразу, выполнив команды тестирования в корне.
У каждого задания есть автоматические тесты. Если tmc test не может найти ни
одного теста, можно найти ошибку, запустив приложение самостоятельно (если
задание по программированию использует django, запустите сервер с помощью
manage.py) или отправив задание и посмотрев журналы на сайте TMC.
Важно: сервер TMC тестирует задания с Python 3.7. Скорее всего, у вас
установлена более новая версия Python. Убедитесь, что вы не используете
возможности, появившиеся после Python 3.7, например синтаксис :=. Иначе может
возникнуть ситуация, когда тесты проходят локально, но не проходят удаленно.
Ошибку и трассировку стека можно посмотреть на сайте TMC.
Ограничений на повторные отправки нет.