Вступительная работа в параллель W
Проект учебного плана параллели
Пояснение
Вступительная работа в параллель W проверяет несколько навыков. Перечислим их:
- Опыт алгоритмического программирования не ниже выпускников параллели C
в ЛКШ. Представление об алгоритмах сортировки за O(N log N),
представление о структурах данных вроде очереди или двоичной кучи, алгоритмы на графах.
- Владение языком Python 3. Умение в спокойной обстановке с ипользованием интернета
написать работающий код, который выполняет требуемые действия. Владение языком требуется в пределах того, что бывает нужно при решении задач по алгоритмическому программированию.
- Начальное представление о технологиях HTML, CSS и JavaScript (что это такое, зачем это используют люди).
- Умение искать информацию в интернете.
Даже если вы не сможете целиком выполнить вступительную работу, вы всё равно имеете шанс быть зачисленным.
Например, если вы можете написать алгоритм Дейкстры только без кучи, напишите его и отправьте в тестирующую систему.
Обо всех вопросах касательно вступительной можно писать Виталию Павленко в контакт или на почту:
https://vk.com/vitalypavlenko
cxielamiko@gmail.com
Задание W1. Алгоритм Дейкстры за M log N
Реализуйте алгоритм Дейкстры с использованием двоичной кучи или RMQ. Вы можете использовать
любую другую структуру данных, если асимптотика алгоритма будет такая же, как и у решения с двоичной кучей.
Структуру данных необходимо реализовать самостоятельно.
Рекомендуем вам реализовать вашу структуру данных в виде класса.
Учтите, что в этой задаче будет проверяться качество вашего кода. Оформляйте свой код по стандарту PEP8. Не скупитесь на информативные имена переменных и комментарии. Идеально, если в вашем коде
будут строки документации и тесты.
Условие задачи
Вход в контест
Задание W2. Таблица умножения
Напишите веб-страничку, которая помогает школьнику тренироваться в запоминании таблицы умножения.
Пример функционала, который можно реализовать, приведен на видео. Попробуйте хотя бы частично реализовать что-то похожее.
В этом задании вам предлагается познакомиться с HTML, CSS и JavaScript. Вот возможный план действий:
- Прочитайте статьи про HTML, CSS и JavaScript на Википедии.
- Найдите в поисковиках какие-нибудь вводные уроки по HTML.
html уроки
Пройдя несколько первых уроков, получите базовое представление о работе с языком HTML.
- Попробуйте проделать то же самое с JavaScript. Ваша первая задача — научиться с помощью JavaScript рисовать на странице
таблицу нужного размера. Освойте циклы, после чего освойте сложение строк и способы изменения HTML-кода.
создание таблицы через javascript
- Научитесь по координатам ячейки ставить туда поле ввода. Использование библиотеки JQuery может существенно упростить вам жизнь.
jquery менять элементы
- Найдите в вашем браузере инструменты разработчика. Научитесь с их помощью получать сообщения об ошибках в JavaScript или даже исполнять код по шагам.
chrome отладка javascript
- Добавьте пару полей ввода для указания размера таблицы. Научитесь использовать их значение. Добавьте кнопку, повесьте на неё по клику действие «создать таблицу».
html поле ввода чисел
jquery значение поля ввода
jquery обработка клика по кнопке
- Когда пользователь введёт значение в активное поле ввода и нажмёт Enter, вам нужно обработать его ввод.
jquery обработка нажатия enter
- Сделайте в таблице подходящие отступы внутри ячеек. Выровняйте текст в ячейках нужным образом.
css отступы
css выравнивание
- Придумайте, как хранить набор ячеек, которые уже правильно заполнены пользователем. Как переходить к следующей незаполненной ячейке? Возможно, вам стоит изучить массивы и глобальные переменные в JavaScript.
Два способа сдавать решения заданий W1 и W2
В качестве эксперимента мы предлагаем вам два способа сдавать решения задач.
Способ 1. Вы сдаёте решения заданий в тестирующую систему Ejudge. Этот способ не требует от вас особых усилий.
Способ 2. Использование системы контроля версий. Способ является более сложным, но позволяет вам получать комментарии по вашим решениям в процессе выполнения вступительной работы. Устроен он так:
- Вы регистрируетесь на сайте https://bitbucket.org/
- Вы создаёте приватный репозиторий для решения задач вступительной работы. Мы рекомендуем вам выбирать Git в качестве системы контроля версий.
- Вы ставите Git на свою операционную систему.
- Вы клонируете репозиторий на свой компьютер (кнопка Clone на странице репозитория).
- Вы предоставляете руководителю параллели W Виталию Павленко доступ к вашему приватному репозиторию.
- Вы решаете вступительную работу. Время от времени вы сохраняете решения в локальный репозиторий командами
git add
и git commit
, а также проталкиваете решения в репозиторий на сервере командой git push
.
- В определенные моменты времени выложенный вами код будет просмотрен, по нему будут оставлены комментарии и рекомендации.
Более точно:
- последние версии решений, добавленные до 23:59 8 апреля, будут просмотрены и откомментированы до 23:59 9 апреля;
- последние версии решений, добавленные до 23:59 14 апреля, будут просмотрены и откомментированы до 23:59 15 апреля;
- последние версии решений, добавленные до 23:59 22 апреля, будут просмотрены и откомментированы до 23:59 23 апреля.
При первом способе сдачи решений вы вряд ли получите какую-то обратную связь, отличную от вердикта «зачислен/не зачислен». При втором способе сдачи решений вы можете получить обратную связь и уже в процессе выполнения вступительной работы начинаете взаимодействовать с вашим будущим преподавателем. Вы можете использовать как только один из способов сдачи решения, так и оба.
Задание W3. Вопросы о технологиях
В третьем задании расскажите нам о ваших ожиданиях от обучения в параллели W. Вот вопросы, которые помогут вам это сделать:
- Выше был перечислен список концепций и технологий, которые планируется изучать в параллели. С какими из перечисленных технологий вы хоть немного умеете работать? Про каждую такую технологию опишите, в какой степени вы умеете её использовать.
- О каких технологиях из приведённого выше списка вы не имеете представления?
- Укажите технологии, которые вы бы хотели освоить в параллели веб-программирования (можно не ограничиваться приведённым выше списком). Также можете написать иные пожелания по проведению параллели W.
Краткий рассказ или ответы на вопросы надо написать в текстовом файле (plain text) и отправить в теоретическую часть вступительной работы.
Версия от 18 апреля 2013 г., 01:30 MSK.