• Направления обучения
  • Все курсы
  • Статьи
  • Контакты

Основы программирования - Крестики-нолики


Основы программирования - Крестики-нолики  $20$12.99
Категория: Java Standart Edition
  • 15 уроков
  • Длительность: 11:40:21
  • Исходный код
  • Обзор результата
  • UI макеты
  • 23561 просмотр
Купить курс

Описание курса


Данный курс предназначен для изучения основ программирования: введение в алгоритмизацию, принципов языков программирования высокого уровня, основных выражений и операторов, знакомство с итеративными и рекурсивными алгоритмами, алгоритмами сортировки и поиска и практического освоения теоретических знаний на примере реализации игры "Крестики-нолики".

Основы программирования изучаются на примере языка Java. На каждом уроке Вам выдается домашнее задание, которое нужно выполнить для закрепления пройденного материала. На каждом последующем занятии выполняется проверка домашнего задания с объяснением как оно должно было быть выполнено. В течение всего курса изучаются разделы, необходимые для реализации игры "Крестики-нолики" и на последнем занятии полностью разбирается данная игра с предоставлением всего кода.

После прохождения курса Вам предлагается выполнить самостоятельное задание: на основе знаний и навыков, полученных в рамках данного курса создать приложение - игру "Гомоку" (крестики-нолики на поле размером 15x15). Если Вы внимательно прослушали курс и выполняли все домашние задания, Вы сможете самостоятельно реализовать данное приложение. На последнем занятии Вам будет предоставлен шаблон игры - графическая оболочка с обработкой действий пользователя - Вам необходимо будет лишь реализовать алгоритм хода компьютера и проверки победителя. (Для создания графического интерфейса необходимы знания, выходящие за рамки данного курса). Таким образом данный курс для Вас завершится закреплением навыков по реализации сложных алгоритмов с помощью компьютера на примере самостоятельной реализации логики игры "Гомоку".

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

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

Знания и опыт полученные в рамках данного курса будут необходимы для дальнейшего изучения Java в курсе Основы Java SE - HTTP сервер (P.S. Кроме того в курсе Основы Java SE - HTTP сервер рассматривается реализация игры Гомоку, используя возможности объектно ориентированной Java и алгоритм поиска комбинаций по трафарету).

Для получения дополнительной информации по теме данного курса, рекомендуем следующие источники информации:

  • Томас Х. Кормен, Алгоритмы. Вводный курс (Algorithms Unlocked) - М.:Вильямс, 2016. - 208 с. - ISBN 978-5-8459-1868-0, 978-5-8459-2073-7
  • Томас Х. Кормен, Алгоритмы. Построение и анализ (Introduction to Algorithms) - М.:Вильямс, 2016. - 1328 с. - ISBN 978-5-8459-2016-4
  • Роберт Лафоре, Структуры данных и алгоритмы в Java (Data Structures & Algorithms in Java) - СПб.:Питер, 2016. - 704 с. - ISBN 978-5-496-00740-5 [Главы 1, 2, 3, 6, 7, 15]
  • Герберт Шилдт, Java. Руководство для начинающих (Java: A Beginners Guide) - М.:Вильямс, 2016 - 720 с. - ISBN 978-5-8459-1955-7 [Главы 1, 2, 3]
  • Брюс Эккель, Философия Java (Thinking in Java (4th Edition)) - СПб.:Питер, 2016 - 1168 с. - ISBN 978-5-496-01127-3 [Главы 3, 4]

В рамках данного курса Вы научитесь


  • Создавать корректные алгоритмы для решения любой задачи;
  • Работать с консолью: считывать исходные данные и выводить результат;
  • Использовать условные операторы и операторы циклов;
  • Писать итеративные и рекурсивные алгоритмы;
  • Работать с методами (функциями), массивами данных и строками;
  • Понимать отличие консольных программ от программ с графическим интерфейсом;
  • Понимать принцип работы языков программирования и компьютерных программ;
  • Разрабатывать алгоритмы для простых игр.

Для успешного прохождения курса необходимо


  • Базовые знания работы с компьютером в режиме пользователя;
  • Умение пользоваться текстовыми редакторами и браузерами.

План курса


  • 1
    Компьютерная программа
    Длительность урока: 30:36
    1. Определение компьютерной программы;
    2. Составляющие решения любой задачи;
    3. Структура компьютерной программы;
    4. Выполнение программы;
    5. Окружение программы. Назначение операционных систем;
    6. Виды операционных систем;
    7. Интерфейс командной строки (Консоль или Терминал);
    8. Консольные программы и их жизненный цикл;
    9. Программы с графическим интерфейсом (GUI);
    10. Жизненный цикл программ с графическим интерфейсом (GUI);
    11. GUI или консольные программы;
    12. Резюме по типам программ;
    13. Выводы;
  • 2
    Алгоритм. Свойства алгоритма.
    Длительность урока: 33:27
    1. Определение алгоритма;
    2. Пример алгоритма покупки хлеба;
    3. Виды алгоритмов;
    4. Способы представления алгоритмов;
    5. Альтернативный алгоритм покупки хлеба;
    6. Свойства алгоритмов:
      1. Дискретность;
      2. Завершенность (конечность);
      3. Детерминированность (определённость);
      4. Понятность;
      5. Массовость (универсальность);
    7. Оценка сложности алгоритма;
    8. Выводы;
  • 3
    Языки программирования
    Длительность урока: 59:56
    1. Определение языка программирования;
    2. Краткий обзор систем счисления;
    3. Машинный код;
    4. Язык ассемблера;
    5. Ассемблер;
    6. Демонстрация создания программы на языке ассемблера;
    7. Запуск простейшей программы в эмуляторе MS-DOS;
    8. Языки высокого уровня;
    9. Типы языков высокого уровня;
    10. Компилятор, процесс компиляции на примере языка C;
    11. Этапы процесса компиляции;
    12. Демонстрация создания программы на языке C;
    13. Интерпретатор на примере языка JavaScript;
    14. Демонстрация создания программы на языке JavaScript;
    15. Сравнение интерпретаторов и компиляторов;
    16. Технология Java: компилятор + интерпретатор;
    17. Варианты выполнения кода процессором;
    18. Язык высокого уровня Java;
    19. JDK vs JRE;
    20. Установка JDK на операционную систему семейства Windows (JRE будет установлено автоматически);
    21. Проверка корректности установки Java на Windows;
    22. Установка среды разработки Eclipse на операционную систему семейства Windows;
    23. Настройка среды разработки Eclipse;
    24. Создание простого проекта в среде разработки Eclipse;
    25. Создание первого проекта Hello World;
    26. Структура кода проекта Hello World;
    27. Описание правил работы с github;
    28. Демонстрация запуска Java программы с консоли;
    29. Выводы;
  • 4
    Обзор IDE для Java разработки
    Длительность урока: 29:20
    1. Обзор возможностей для популярных Java IDE: Eclipse, Intellj IDEA, NetBeans
    2. Eclipse
      1. Преимущества: бесплатная, быстро работает на слабых компьютерах, рекомендована большинством работодателей, не желающих выделять деньги для платных продуктов
      2. Недостатки: не разработана для быстрого написания корректного кода
      3. Рекомендована для разработки на Java EE на начальных этапах работы программистом и последующим переходом на Intellj IDEA при возникновении возможности покупки лицензии
    3. Intellj IDEA
      1. Преимущества: интеллектуальные подсказки при написании кода, возможность конфигурирования рабочей области под себя, огромное количество горячих клавиш для быстрого написания кода, рекомендована большинством работодателей, которые желают эффективно использовать труд разработчика
      2. Недостатки: при разработки Java EE приложений требует наличие платной лицензии, для эффективной работы требует более мощный компьютер
      3. Рекомендована при желании развиваться в направлении Android разработки (не требует платной лицензии) и при разработке Java EE приложений на профессиональном уровне (при возникновении возможности покупки лицензии)
    4. NetBeans
      1. Рекомендована для разработки любых Java приложений (SE, EE), но исторически не пользуется популярностью среди работодателей и разработчиков на территории СНГ
    5. Примеры быстрого написания кода в каждой из IDE
    6. Для изучения основ программирования любая из IDE может быть использована
  • 5
    Ввод/вывод, переменные, выражения, типы данных
    Длительность урока: 1:17:04
    1. Выполнение домашнего задания со второго урока (по алгоритмам);
    2. Ячейка памяти;
    3. Байт, полуслово, слово, двойное слово;
    4. Кодирование положительных и отрицательных чисел;
    5. Кодирование вещественных чисел и символов;
    6. Типы данных Java;
    7. Переменные;
    8. Демонстрация запуска программы в режиме отладки (debug);
    9. Ввод с консоли / вывод на консоль в Java;
    10. Структура простой программы на Java;
    11. Преобразование типов;
    12. Преобразование в строку и из строки;
    13. Арифметические выражения;
    14. Демонстрация ошибки переполнения типа;
    15. Демонстрация ошибки точности вычислений типа double;
    16. Математические вычисления;
    17. Логические выражения;
    18. Демонстрация ошибок работы программ в фоновом режиме в среде разработки при отладке (debug);
    19. Инкремент/декремент/побитовые операции;
    20. Приоритеты операций;
    21. Выводы;
  • 6
    Управляющие операторы
    Длительность урока: 58:29
    1. Выполнение домашнего задания с предыдущего урока;
    2. Типы управляющих операторов;
    3. Операторы условного перехода (if, else);
    4. Примеры использования логических типов данных в операторах условного перехода (if, else);
    5. Простой калькулятор;
    6. Тернарный оператор (альтернатива if, else);
    7. Использование оператора цикла для выполнения повторяющихся действий;
    8. Цикл for;
    9. Демонстрация зависания на примере бесконечного цикла;
    10. Цикл while;
    11. Цикл do - while;
    12. Вложенные циклы;
    13. Оператор continue;
    14. Оператор break;
    15. Рекомендации: break, continue;
    16. Выход из бесконечного цикла;
    17. Примеры использования циклов:
      1. Вычисление произведения с помощью цикла;
      2. Вычисление возведения в степень с помощью цикла;
      3. Вычисление чисел фибоначчи (Прочитать в википедии) с помощью цикла;
      4. Вычисление арифметической прогрессии (Прочитать в википедии) с помощью цикла;
    18. Выводы;
  • 7
    Практическое занятие по операторам
    Длительность урока: 42:04
    1. Поэтапное создание нескольких версий приложения, отображающего сетку 3 на 4:
         |   |   |
      ---------------
         |   |   |
      ---------------
         |   |   |
      
      1. Первая версия алгоритма;
      2. Вторая версия алгоритма;
      3. Вторая версия алгоритма с использованием тернарного оператора;
    2. Поэтапное создание приложения, отображающего пирамиду чисел:
                      1
                   2  2  2
                3  3  3  3  3
             4  4  4  4  4  4  4
          5  5  5  5  5  5  5  5  5
       6  6  6  6  6  6  6  6  6  6  6
      
      ;
  • 8
    Массивы
    Длительность урока: 1:17:35
    1. Выполнение домашнего задания с предыдущего урока:
      1. Программа калькулятор;
      2. Отображение алфавита;
      3. Программа DisplayX;
      4. Программа ShowGameTable;
    2. Определение массива;
    3. Пример определения массива в Java;
    4. Демонстрация хранения массива в памяти;
    5. Примеры создания массивов разных типов и вывод одномерного массива на консоль;
    6. Размер массива, доступ к элементу;
    7. Типовые примеры работы с массивами:
      1. Простейший линейный поиск;
      2. Сумма элементов в массиве;
      3. Чтение и установка произвольного элемента в массиве. Определение последнего элемента в массиве. Ошибка выхода за границы массива;
      4. Поиск минимального элемента в массиве;
      5. Заполнение массива случайными числами;
      6. Перестановка элементов в массиве в обратном порядке (reverse);
      7. Отображение сообщения, когда элемент не найден в массиве;
      8. Алгоритм проверки всех элементов строки массива на заданное условие (все элементы должны быть положительными числами);
      9. Свободный доступ к любому элементу массива;
    8. Линейный поиск. Оценка сложности алгоритма. Классическая реализация;
    9. Бинарный (двоичный) поиск. Оценка сложности алгоритма. Классическая реализация;
    10. Демонстрация работы бинарного (двоичного) поиска;
    11. Выводы;
  • 9
    Практическое занятие по массивам
    Длительность урока: 53:35
    1. Поэтапное создание приложения, находящего минимальный элемент в массиве;
    2. Поэтапное создание приложения, выполняющего бинарный поиск в отсортированном массиве. Демонстрация работы алгоритма. Автоматизированный тест, проверяющий корректность алгоритма.;
    3. Поэтапное создание приложения, выполняющего сортировку пузырьком;
  • 10
    Методы (Функции)
    Длительность урока: 1:24:42
    1. Выполнение домашнего задания с предыдущего урока:
      1. Проверка победителя;
      2. Реализация пузырьковой сортировки;
      3. Реализация сортировки вставками;
    2. Определение метода (функции);
    3. Работа с методами;
    4. Примеры методов;
    5. Определение и вызов метода. Стек вызовов методов;
    6. Демонстрация работы стека при вызовах метода в Java;
    7. Передача аргументов по значению и по ссылке;
    8. Область видимости переменных;
    9. Область видимости блок для локальных переменных;
    10. Демонстрация изоляции локальных переменных с одним и тем же названием в разных методах;
    11. Вычисление сложных функций;
    12. Вычисление функций sin(x) и e^x;
    13. Точные вычисления;
    14. Выводы;
  • 11
    Практическое занятие по методам
    Длительность урока: 19:02
    1. Поэтапное создание приложения, находящего количество пар чисел в массиве;
    2. Пример декомпозиции сложного метода на несколько простых для внесения ясности в код;
  • 12
    Итеративные и рекурсивные алгоритмы
    Длительность урока: 37:27
    1. Выполнение домашнего задания с предыдущего урока:
      1. Реализация функций cos(x) и ln(x);
      2. Реализация методов в классе TicTacToe;
    2. Итеративный алгоритм бинарного поиска;
    3. Определение рекурсии;
    4. Типы алгоритмов на примере вычисления факториала;
    5. Типовые ошибки итеративного и рекурсивного алгоритма;
    6. Рекурсивный алгоритм бинарного поиска;
    7. Нахождение суммы чисел от 1 до n с помощью разных типов алгоритмов:
      1. Итеративный алгоритм;
      2. Рекурсивный алгоритм;
      3. Аналитический алгоритм;
    8. Сравнение алгоритмов;
    9. Рекомендации по выбору типа алгоритма;
    10. Алгоритмы поиска файла на жестком диске;
    11. Выводы;
  • 13
    Практическое занятие по итеративным и рекурсивным алгоритмам
    Длительность урока: 25:10
    1. Создание нескольких версий приложения, подсчитывающего количество чисел в массиве используя итеративные и рекурсивные алгоритмы;
    2. Создание рекурсивного аналога приложения, отображающего сетку 3 на 4
         |   |   |
      ---------------
         |   |   |
      ---------------
         |   |   |
      
      ;
  • 14
    Работа со строками
    Длительность урока: 31:03
    1. Выполнение домашнего задания с предыдущего урока:
      1. Итеративная и рекурсивная версия программы для нахождения числа Фибоначчи по индексу;
      2. Рекурсивная функция отображения массива на консоль;
      3. Итеративная и рекурсивная версия функции вычисления суммы цифр числа;
    2. Методы работы со строками;
    3. Сравнение строк;
    4. Использование строк в игре TicTacToe;
    5. Корректная версия использования строк в игре TicTacToe;
    6. Пример нахождения чисел в строке;
    7. Демонстрация работы программы поиска чисел;
    8. Подсчет количества слов в тексте;
    9. Более точный вариант поиска слов в тексте;
    10. Эффективность строк;
    11. Выводы;
  • 15
    Реализация игры "Крестики-нолики"
    Длительность урока: 40:51
    1. Выполнение домашнего задания с предыдущего урока:
      1. Поддержка отрицательных чисел в поиске чисел;
      2. Ход компьютера;
      3. Оптимизация метода проверки победителя;
    2. Удобства графического интерфейса;
    3. Создание игрового поля;
    4. Обработка хода пользователя;
    5. Алгоритм работы консольного приложения и приложения с графическим интерфейсом;
    6. Проблема: Компьютер не пытается выиграть!;
    7. Решение проблемы: компьютер умнеет;
    8. Считывание всех доступных вариантов;
    9. Более умный ход;
    10. Описание домашнего задания после прохождения курса;
    11. Скачивание шаблона игры Gomoku;
    12. Формализованное описание задания на разработку игры Gomoku;
    13. Демонстрация работы шаблона игры Gomoku;
    14. Правила выделения выигрышной комбинации в игре Gomoku;
    15. Рекомендации по тестированию кода поиска победителя;
    16. Выводы;
DevStudy.net На главную Направления обучения Все курсы Статьи FAQ

Контакты:


Udemy: devstudy_net

Email: devstudy.net@gmail.com


Наша миссия:

Дать возможность любому желающему начать работать в IT с минимальными начальными вложениями!



Актуальные вакансии:

jobeka iconВакансии разработчик баз данных на Jobeka jobsora iconВакансии Java разработчик на Jobsora jooble iconВакансии Java разработчик на Jooble