Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Клуб формулистов - Ежемесячная подписка

Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.

После взноса  999  499 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.

Стоимость 1 дня за первый месяц: всего 16 рублей.

Первый взнос - 499 руб./30 дней.

Через 30 дней будет списано 3,000 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.

Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.

Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 499 (вместо 999) рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.


Стоимость 1 дня: 80 руб.

Хочу вступить!

Также есть другие варианты оплаты участия в КФ:

Билет в клуб формулистов на ...
30+ дней | 60 дней | 150 дней | 380 дней | 1000 дней

Внимание!
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.







Первый взнос - 499 руб./30 дней + 500 байт.
Последующие взносы - 3,000 2400 руб./месяц + 512 байт.



Список уроков | фото | видео

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 ArrayList 00:12:16
1 тест
73 чел. ★ 5 Done
  На этом уроке мы обсудим план занятий,
вспомни былые времена голых массивов,
и выясним, зачем же нужны коллекции.
Начнём знакомство с самой простой
коллекции ArrayList и немного
поэкспериментируем с ней.

Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт]
Научился: Использовать ArrayList 
Сложности: Ничего 
Комментарии: У меня студенты спрашивают, есть ли такая структура данных, которая бы объединяла все достоинства списка и массива - имела бы произвольный доступ к элементам, но произвольное их число. Почему бы ArrayList не назвать такой структурой? 
2 List 00:12:57
1 тест
71 чел. ★ 4.9 Done
  На этом уроке мы поработаем с типизированной коллекцией List.
Обсудим её преимущества, по сравнению с ArrayList,
добавим несколько элементов, отсортируем их и даже найдём их сумму.
Перебор элементов мы организуем двумя разными способами -
через итератор и обычным foreach().
Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт]
Научился: Использовать List 
Сложности: Ничего 
Комментарии: С шаблонизаторами знакома из С++, поэтому List<int> никаких сложностей не вызывает. 
3 Array vs List 00:11:04
69 чел. ★ 5 Done
  На этом уроке мы сравним эффективность использования
ArrayList, List<> и простого массива.
Победителем окажется типизированная коллекция List<>.
Очень интеренсо сравнивать эффективность,
нам в этом поможет флагманский класс Stopwatch.
Отчёт отправил: 4004. Елена Выполнено за 20 мин. [Показать отчёт]
Научился: Измерять время выполнения функции 
Сложности: Ничего 
Комментарии: Массив оказался самым быстрым... как и следовало ожидать. 
4 ListDictionary 00:15:19
69 чел. ★ 5 Done
  На этом уроке мы начнём рассматривать три класса,
которые похожи по функциональности, но очень сильно отличаются
по реализации, это: ListDictionary, Hashtable, HybridDictionary.
Эти коллекции хранят пару значений: ключ - значение.
Они нетипизированные и работают с объектами.
Отчёт отправил: 4004. Елена Выполнено за 25 мин. [Показать отчёт]
Научился: Использовать ListDictionary 
Сложности: Не проводить аналогию ListDictionary с ассоциативным массивом 
Комментарии: Всё постепенно занимает свои места. Приходит понимание структур данных в C# 
5 Hashtable 00:11:56
1 тест
67 чел. ★ 4.9 Done
  На этом уроке мы поработаем с Hashtable - каким именно
образом в неё складываются значения и почему она будет
работать, даже если хеш-функция вернёт одинаковые значения.
Также мы увидим, что порядок элементов путается,
а сами значения хранятся в очень хитром виде.
В конце урока мы сделаем всё то же самое с гибридным классом.
Самостоятельное задание: сравнить скорость работы этих коллекций.
1 этап: создать МНОГО коллекций по 8 и по 9 элементов (ОТДЕЛЬНО).
2 этап: создать ОДНУ коллекцию из ОГРОМНОГО количества элементов.
Подвести итоги и в отчёте написать вывод.
Отчёт отправил: 4004. Елена Выполнено за 25 мин. [Показать отчёт]
Научился: Работать с ХЭШ-таблицами 
Сложности: Самым сложным будет выбор подходящей формы представления данных для решения требуемой задачи 
Комментарии: Миллион маленьких коллекций намного быстрее создается чем одна большая :) 
6 BitArray 00:14:00
3 теста
64 чел. ★ 4.9 Done
  На этом уроке мы поработаем с интересной коллекцией BitArray,
которая позволяет компактно хранить большие массивы двоичных данных.

Отчёт отправил: 4004. Елена Выполнено за 20 мин. [Показать отчёт]
Научился: Использовать BitArray 
Сложности: Остановиться. Тоже люблю работать с битами 
Комментарии: Мне часто приходится работать с битами. При этом результат я обычно храню как обычное число типа int (или часто использую unsigned char в Си), а для того чтобы установить или сбросить бит использую маску. int num = 0; num |= 0x01; // установить младший (нулевой) бит num &= ~0x01; // сбросить младший (нулевой) бит. num |= 0x02; // установить первый бит num &= ~0x02; // сбросить первый бит. num ^= 0x02; // перевернуть первый бит в противоположное состояние. Приходится использовать подобные конструкции, чтобы управлять состоянием линий ввода-вывода микроконтроллеров. Ну, или просто хранить состояние программы (где можно в пару байт "запихать" все возможные ошибки диагностики устройства). 
7 Граф 00:13:48
2 теста
63 чел. ★ 4.9 Done
  На этом уроке я дам определение графа своими словами,
всё, что запомнил с момента учёбы в университете.
В конце урока мы зададимся вопросом -
как хранить граф в памяти компьютера.
Отчёт отправил: 4004. Елена Выполнено за 25 мин. [Показать отчёт]
Научился: Теория графов, способы их представления 
Сложности: Сосредоточиться, потому что приходилось много отвлекаться 
Комментарии: Можно действительно создать список в списке. ListDictionary - для хранения вершин, а List (внутри него)- для хранения списка смежных вершин. 
8 Вершины 00:14:15
2 теста
63 чел. ★ 4.9 Done
  На этом уроке мы начнём создавать класс Граф
для хранения графа и работы с ним.
На уроке мы создадим всё, что касается вершин.
Отчёт отправил: 4004. Елена Выполнено за 20 мин. [Показать отчёт]
Научился: Потихоньку подходим к созданию графа 
Сложности: Русские названия 
Комментарии: Насчет мотивации - приходится постоянно находиться в режиме временных ограничений, хотя и со всеми кнопками на клавиатуре. А мышкой уже давно не пользуюсь :) 
9 Рёбра 00:12:47
61 чел. ★ 4.9 Done
  На этом уроке мы содадим колекцию для хранения рёбер.
Опишем методы добавления рёбер и перебора смежных вершин.
Отчёт отправил: 4004. Елена Выполнено за 20 мин. [Показать отчёт]
Научился: Задавать ребра графа 
Сложности: Ничего 
Комментарии: Храним граф - как я и предполагала. На скриншоте - созданный граф по рисунку в уроке. 
10 Инициация 00:11:15
1 тест
60 чел. ★ 5 Done
  На этом уроке мы создадим экземпляр нашего графа
и добавим в него все его элементы по образцу.
Самостоятельное задание - вывести граф на экран.
Отчёт отправил: 4004. Елена Выполнено за 40 мин. [Показать отчёт]
Научился: Выводить граф на форму 
Сложности: Вывести Labels. 
Комментарии: Интересный урок 
11 Отображение 00:16:18
57 чел. ★ 5 Done
  На этом уроке мы выведем граф на экран: и вершины и рёбра.
Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Отображать вершины и ребра графа 
Сложности: Отобразить ребра 
Комментарии: При попытке вывести граф при создании формы ребра не выводились. Долго не могла понять, в чем дело. Потом создала кнопку (как в уроке), и картинка стала отображаться. Правда, на перерисовку реагирует плохо. 
12 Шахматная доска 00:19:58
1 тест
57 чел. ★ 5 Done
  На этом уроке мы создадим граф в виде Шахматной доски.
И организуем её вывод на экран.
Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Отображать сетку графа 
Сложности: Нажать Alt+PrtScn чтобы сохранить скриншот - при нажатии клавиши Alt линии пропадают 
Комментарии: Интересный урок 
13 Широкий поиск 00:14:59
56 чел. ★ 5 Done
  На этом уроке мы познакомимся с алгоритмом поиска вширь.
Мы проработаем весь алгоритм на конкретном примере.
Самостоятельное задание - выбрать граф и также с ним поработать.
Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт]
Научился: Поиску вширь (пока без алгоритма) 
Сложности: Ничего 
Комментарии: Интересный урок 
14 Широкий алгоритм 00:14:12
53 чел. ★ 5 Done
  На этом уроке мы напишем алгоритм поиска вширь.
Однако, запустить его не удастся. Почему?
Это вам самостоятельное задание, разобраться
в причине, и найти способ, как это исправить.
Отчёт отправил: 4004. Елена Выполнено за 40 мин. [Показать отчёт]
Научился: Реализовывать алгоритм поиска вширь с помощью очереди 
Сложности: Найти ошибку. Заменила цикл foreach на for - ошибка исчезла. Возможно, это простое неправильное решение. 
Комментарии: Рёбра у графа вообще-то есть, только при нажатии на Alt они почему-то пропадают (после того как добавили panel.Refresh(). Кто знает, как это исправить - подскажите. 
15 Широкий пошаговый ход 00:11:46
52 чел. ★ 5 Done
  На этом уроке мы исправишм ошибку из прошлого урока
и пройдёмся пошагово по всему алгоритму.
Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Добавлять вершины коллекции в список 
Сложности: Сделать визуализацию 
Комментарии: Пока перекрашиваются все вершины по окончании алгоритма, а шагов не видно. 
16 Визуализация процесса 00:14:07
47 чел. ★ 5 Done
  На этом уроке мы создадим делегат "Покраска"
и через него реализуем отображение процесса.

Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт]
Научился: Визуализировать поиск вширь 
Сложности: Добиться стабильной перерисовки линий 
Комментарии: Помогло предложенное решение Denchikа. 
17 Глубокий поиск 00:09:58
47 чел. ★ 5 Done
  На этом уроке мы познакомимся с алгоритмом поиска вглубь.
Мы проработаем весь алгоритм на конкретном примере.
Самостоятельное задание - выбрать граф и также с ним поработать.
Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт]
Научился: Поиску вглубь 
Сложности: ничего 
Комментарии: Не знаю пока, как структуру Стек реализовать в C# 
18 Глубокий алгоритм 00:15:07
46 чел. ★ 5 Done
  На этом уроке мы напишем алгоритм поиска вглубь.
Вернее сказать - скопипастим. И пофилософствуем.
На этом же уроке посмотрим, как он работает.
Отчёт отправил: 4004. Елена Выполнено за 20 мин. [Показать отчёт]
Научился: Реализовывать алгоритм поиска вглубь 
Сложности: ничего 
Комментарии: Алгоритм реализовался неожиданно быстро 
19 ФИНАЛЬНЫЙ УРОК без видео
43 чел. ★ 5 Done
  Поздравляю с окончанием курса!
Оставь отзыв об этом курсе.

Какой курс ты будешь проходить следующим?
Отчёт отправил: 4004. Елена Выполнено за 7 мин. [Показать отчёт]
Научился: Составлять отзывы 
Сложности: Ничего 
Комментарии: Курс ОЧЕНЬ понравился. Расставил все точки над i в понимании работы с графами. Дальше - Бурные потоки. 
  Итого:   19 видеоуроков 4 час. 06 мин.
12 тестов
43 чел. ★ 4.97  
  Финалисты:   Максим,   Alcatraz,   Дмитрий,   Tekashnik,   Denis,   Иван,   Дмитрий 199,   Николай,   Михаил,   Дмитрий,   Ender,   Платон,   Владимир,   Андрей Н.,   Владимир Борисенко,   Максим Лапшинов,   Permitin Alexey,   Новопашин Владимир,   Максим Саратов,   Алексей В.,   Den Andreevich,   Елена,   Станислав,   Сергей Соколов,   Yefim,   Алексей Малышев,   Александр,   Сергей,   Денис,   chokayes,   ser2018,   vip,   Игорь Тюлькин,   Александр Балбашов,   Денис,   Кирилл,   no name,   Max,   Константин,   Дмитрий,   MaxB,   Anatoli,   Булат .

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Познакомился с применением на практике различных коллекций (ArrayList, List, ListDictionary, Hashtable и HybridDictionary), а также их встроенных методов . Выяснил, что по скорости обработки различных комбинаций большого кол-ва эл-ов ListDictionary на порядок уступил по времени отработки двум другим классам : Hashtable и HybridDictionary, которые показали практически одинаковые результаты . Применять битовый массив BitArray, а также некоторые его методы на практике . Получил представление о графе и его разновидностях, методах представления, применять русские названия методов , перечисление , узнал об итераторах (yield return). Формировать граф в виде шахматной доски либо опр-ой формы и выводить его на экран с последующим поиском пути Вширь и Вглубь . При этом узнал о специфике применения foreach() и HashTable().
Трудности: При выполнении самостоятельных заданий определиться с вариантом хранения графа { цвета вершин, смежные вершины }, найти причину возникновения Exception-a при отработке foreach() и HashTable(), разобраться с общей логикой работы программы.
Хочу от всей души поблагодарить за коллекционный курс графопостроения ) ! Материала для применения и размышлений - более чем ! После данного курса планирую закончить "Бинарная жизнь" и переключиться на курсы "Игра Сокобан", "Графоциклы", "Итератор" . Конечно же в планах пройти все предложенные курсы на данный момент - главное двигаться дальше .


Научился: Отличный курс! Поработали с основными структурами данных, а также затронули графы (в 1 приближении). По графам надо бы более основательно поработать. Было бы здорово, чтоб был курс чисто по графам.