
На вводном занятии по основам алгоритмизации и программирования мы поговорим о чем будет этот курс, что такое в принципе программа, на каких языках программирования они пишутся, а также о области применения каждого из этих языков. Для прохождения всего курса никаких предварительных знаний не требуется кроме школьного курса базовой математики и уверенной работы с персональным компьютером.
00:00 - Введение
00:34 - Что такое программа
01:24 - Языки программирования
01:57 - Области применения языков программирования
05:07 - Заключение
На этом видео мы разберемся, что из себя представляет код программ, написанный на любом языке программирования. Он хорошо читается людьми, а значит плохо для вычислительных машин, вследствие чего необходимо прибегнуть к помощи других программ - компиляторов. Они знают, как преобразовывать один тип кода в другой. Более того, мы пойдем еще глубже в понимании того, как устроен процесс компилирования именно в языке программирования Java. Узнаем что такое byte code и зачем нужна еще одна программа - JVM.
00:00 - Введение
00:24 - Что из себя представляет код программы
01:08 - Компиляторы
02:28 - Скомпилированный код зависит от ОС
03:13 - JVM
05:22 - Среды разработки
06:23 - Необходимое программное обеспечение
Чтобы приступить к написанию своих программ на языке программирования Java, нам необходимо установить соответствующее программное обеспечение. С предыдущего занятия мы поняли, что нам понадобится компилятор для преобразования исходного кода в byte code, и JVM для запуска byte code на любой платформе. Обе эти программы идут вместе с установщиком Java 19 версии. Далее мы установим одну из самых популярных сред разработки - IntelliJ IDEA, которая в свою очередь тоже написана на языке программирования Java, поэтому мы и будем устанавливать ее вторым шагом.
00:00 - Введение
00:51 - Установка Java 19
02:36 - Установка IntelliJ IDEA
04:45 - Заключение
Изучение любого языка начинается с написания первой программы, которая отображает пользователю "Hello World". Но перед этим мы поговорим о плане всего курса Computer Science, как создавать проект, почему все программы начинаются с метода main и почему этот метод обязательно должен быть в каком-то классе. В заключении мы вернемся к теме предыдущих занятий, чтобы понять, где и кем происходит компиляция и запуск нашего приложения.
00:00 - Введение
00:14 - План всего курса
01:36 - Создание нового проекта
03:21 - Создание нового класса
06:44 - Метод main
07:54 - Написание и запуск программы "Hello World"
09:32 - Ошибки компиляции
10:05 - Где и как происходит компиляция и запуск приложения
Для того, чтобы перейти к следующей теме изучения языка Java, нам необходимо разобраться с системами счисления, что такое биты, байты и как вычислительная система хранит данные в виде лишь последовательности 0 и 1. Также рассмотрим алгоритм преобразования двоичной системы счисления в десятичную.
00:00 - Введение
00:28 - Системы счисления
02:19 - Двоичная система счисления. bit & byte
04:02 - Преобразование двоичной системы в десятичную
05:45 - Знак числа в двоичной системе счисления
06:22 - Резюме
На основании полученной информации о системах счисления, мы готовы к тому, чтобы изучить все 8 типов данных в Java. Которые в свою очередь разбиты на 4 основных группы: Целые числа, Вещественные числа, Символы и Boolean. На видео поговорим про каждую группу в отдельности и какие типы данных существуют в каждой из них. Также затронем нюансы представления символов в виде чисел и неопределенное количество байт, которое требует тип данных Boolean.
00:00 - Введение
00:33 - 4 основных типа данных в Java
01:34 - Целые числа
03:43 - Вещественные числа
04:57 - Символы
06:05 - Boolean
07:18 - Резюме
Литералы - это типы данных, что мы прошли на предыдущем занятии, которые мы создаем в виде констант в приложении. И на каждую группу примитивных типов данных есть свои литералы: Целочисленные, Вещественные, Символьные, Boolean и исключением является строковый литерал (String), потому что это уже сложный тип данных, состоящий из нескольких символов. На видео разберем также нюансы каждого типа данных и какие из них отсутствуют в Java в виде литералов.
00:00 - Введение
01:03 - Что такое литералы
01:24 - Целочисленные литералы
02:42 - Вещественные литералы
03:38 - Символьные литералы
03:56 - Строковые литералы
04:56 - Boolean литералы
05:29 - Резюме
На занятии мы вновь сможем вернуться к нашей среде разработки IntelliJ IDEA и продолжим писать на Java, чтобы разобраться в том, как создавать переменные и для чего они нужны.
00:00 - Введение
00:36 - Определение переменных
02:04 - Инициализация переменных
03:04 - Совмещение двух фаз в одну
03:54 - Последовательное выполнение инструкций
04:54 - Создание переменной типа byte
05:44 - Создание переменной типа char
06:02 - Создание переменной типа boolean
06:18 - Создание переменной типа String
07:31 - Изменение значений переменных
07:59 - Ключевое слово final
08:45 - Присваивание значений из других переменных
09:34 - Резюме
В видео рассмотрим на практике возможные операции с переменными всех примитивных типов, в чем есть нюансы и отличия. А также поймем разницу между явным и неявным приведением типов.
00:00 - Введение
00:21 - Математические операции (+ - * / %)
01:53 - Изменение значения существующей переменной
03:21 - Унарные операции инкремента и декремента (++ --)
05:48 - Отбрасывание дробной части при делении целых чисел
07:18 - Явное приведение типов
07:50 - Резюме
Тип boolean невероятно важен в программировании, потому что на основании него строятся другие конструкции ветвлений и циклов, которые мы совсем скоро пройдем в этом курсе. Поэтому наша задача разобраться с операциями сравнения и булевой алгеброй, которую также закрепим на практике.
00:00 - Введение
00:31 - Операции сравнения
03:08 - Булева алгебра
03:45 - Логическое И (conjunction)
04:55 - Логическое ИЛИ (disjunction)
05:46 - Логическое НЕ (negation)
06:12 - Практика булевой алгебры
Обычно на персональном компьютере мы разбиваем все файлы (видео, музыка, документы) по соответствующим папкам, чтобы легче искать информацию. Точно также и в Java - существуют так называемые пакеты, в которых лежат логически связанные классы. И согласно Java Code Convention все классы должны быть разбиты по пакетам, ибо полное имя класса на самом деле состоит не только из измени, но и названия пакета.
00:00 - Введение
00:27 - Создание и именование пакетов
01:21 - Ключевое слово package
02:21 - Структура пакетов на жестком диске
02:47 - IntelliJ IDEA - Compact Middle Packages
03:48 - Резюме
На видео рассмотрим несколько очень полезных возможностей в среде разработки IntelliJ IDEA, которые очень помогут начинающим программистам лучше разбираться в коде, быстрее его писать и меньше допускать ошибок.
00:00 - Введение
00:19 - Что мы уже прошли
00:55 - Semantic highlighting
01:51 - CamelHumps words
03:05 - Imports settings
03:33 - Rainbow Brackets plugin
04:43 - Hot Keys (Keymap)
06:21 - Резюме
В видео разберемся с основным оператором ветвления: if-else. Узнаем все три его вариации, синтаксис, зачем он нужен и как использовать. Во второй части видео обсудим упрощенный вариант if-else в виде тернарного оператора, который помогает улучшить читабельность кода и представить логические условия в более лаконичном виде.
00:00 - Введение
00:59 - 3 вариации оператора if-else
03:36 - Практика 1-ой вариации if-else
05:01 - Практика 2-ой вариации if-else
05:33 - Практика 3-ей вариации if-else
06:45 - Тернарный оператор
09:15 - Заключение
Оператор switch можно рассматривать в некоторых случаях как замена оператору if-else. Хоть и встречается он довольно редко на практике, но все-таки необходимо его знать и использовать корректно, что мы и будем демонстрировать на видео.
00:00 - Введение
00:53 - Ключевое слово switch
04:23 - case без ключевого слова break
06:06 - Заключение
С каждым выходом новых версия языка программирования Java (а они выходят каждые 6 месяцев) появляются новые возможности и даже, порой, очень интересные. На занятии поговорим про то, как в 14 версии Java изменили оператор switch, а также как в 10 версии Java добавили новое ключевое слово var.
00:00 - Введение
00:39 - Новый оператор switch в Java 14
03:29 - Ключевое слово var в Java 10
05:00 - Резюме
Потренируемся на практике использовать операторы if-else. Большое внимание уделим логическим условиям и типу boolean.
00:00 - Введение
00:16 - Задача №1
07:19 - Задача №2
11:25 - Задача №3
20:05 - Задача №4
25:15 - Заключение
В этом видео разберем, что же такое функции на примере функции main. Узнаем из каких составных частей она состоит, а также создадим собственные. На последующих занятиях будем всегда практиковаться использовать функции, чтобы закрепить этот важный аспект программирования как следует.
00:00 - Введение
00:57 - Логика и данные
02:17 - Что такое функция (она же метод в Java)
03:26 - Определение функций в Java
07:00 - Создание первой функции
11:22 - Резюме
На практическом занятии мы решим пару задач, чтобы еще больше разобраться с функциями, как передавать параметры и как возвращать значения из них. Более того, разберемся с тем, как вызывать функции из других классов, даже если эти функции написали не мы (на примере класса Math).
00:00 - Введение
00:15 - Задача №1
04:47 - Вызов функций из других классов
06:08 - Задача №2
09:13 - Резюме
В языке программирования Java существует два варианта циклов: цикл while и цикл for. Разберем, что такое циклы, для чего используются и как создавать самим на примере цикла while и цикла с пост-условием do-while.
00:00 - Введение
00:24 - Что такое циклы. while и for
01:02 - Цикл while и do-while
02:07 - Пример цикла while
04:32 - Пример цикла с постусловием do-while
06:00 - Резюме
Продолжаем разбираться с темой циклов и на очереди у нас - цикл for. Узнаем, чем он так привлекателен и почему так популярен среди программистов. Также разберем два новых ключевых слова break и continue, которые тоже можно встретить при работе с циклами, хоть они их использование нежелательно. На следующем занятии попрактикуемся на задачах.
00:00 - Введение
00:48 - Теория цикла for
02:27 - Практика цикла for
04:02 - Live templates
04:28 - Все 3 части необязательные в цикле for
06:10 - Ключевые слова break и continue
На этом видео сможем на практике разобраться с циклами for-while, где лучше применять один вид циклов, где другой. Решим одну и ту же задачу разными видами, чтобы отчетливо представлять себе разницу между ними.
00:00 - Введение
00:10 - Задача №1
05:38 - Задача №2
11:08 - Задача №3
16:28 - Задача №4
21:42 - Задача №5
26:51 - Резюме
Рекурсия - это одно из базовых понятий в программировании, но, к сожалению, довольно сложное в понимании, поэтому и не желательно в использовании. К счастью для нас, любую рекурсию можно заменить на цикл. На примере разберем, что это такое и как реализовывать.
00:00 - Введение
01:08 - Рекурсия на примере задачи про факториал числа
04:13 - Прямой и обратный ход рекурсии
05:05 - Резюме
Часто нам необходимо работать не с одним значением, как мы это делали до этого, создавая переменную примитивного типа, а с множеством элементов. Для этого мы и разберем на этом видео тему массивов, как их создавать и использовать. Также встретим новое ключевое слово new.
00:00 - Введение
00:35 - Что такое структуры данных
01:45 - Массивы. Теория
05:01 - Массивы. Практика
07:11 - Ключевое слово new
Продолжаем тему массивов и разбираем следующую их ступень: многомерные. Ассоциируем двумерные и трехмерные массивы с примерами из реального мира, попытаемся понять массивы с измерениями более двух-трех, ведь в программировании нет ограничений на количество измерений.
00:00 - Введение
00:59 - Многомерный массив. Теория
04:07 - Многомерный массив. Практика
07:31 - Постепенная инициализация многомерных массивов
11:30 - Трехмерный массив
13:57 - Резюме
На практике довольно редко происходит работа с отдельными элементами структур данных, ибо мы специально и объединяем элементы одного типа, чтобы было удобно работать с ними как одним целым. Поэтому удобнее всего использовать циклы для итерирования по нашим массивам и просматривать/изменять сразу все элементы. На видео разберем сразу оба возможных цикла: for по индексу и foreach для двух- и трехмерных массивов.
00:00 - Введение
00:39 - Циклы for для итерирования по массивам
02:44 - Итерирование по одномерным массивам. fori
04:01 - Итерирование по одномерным массивам. foreach
05:44 - Итерирование по двумерным массивам. fori
09:21 - Итерирование по двумерным массивам. foreach
На занятии попрактикуемся в решении задач, связанных с одномерными и многомерными массивами. Рассмотрим оба варианта цикла: for по индексу и foreach. Разберем интересный алгоритм "трех стаканов" для того, чтобы поменять местами значения в двух переменных.
00:00 - Введение
00:11 - Задача №1
04:55 - Задача №2
11:28 - Задача №3
17:46 - Задача №4
24:04 - Задача №5
Пора начать практиковаться отлаживать программы - это невероятно мощное средство, которое нам предоставляют современные среды разработки, и которое должен знать каждый разработчик. Узнаем на практике все тонкости и поймем, как пошагово выполняет компьютер наши программы.
00:00 - Введение
00:24 - 2 условия для запуска программы в Debug
02:10 - Tab Debugger
04:01 - Как построчно выполнять программу (Step Over)
05:10 - 2 варианта зайти внутрь другого метода (Resume Program)
07:20 - 2 варианта зайти внутрь другого метода (Step Into)
09:24 - Cпособы выйти из функции (Step Out)
10:30 - Практика
12:43 - Mute Breakpoints
13:56 - Evaluate Expression
15:34 - Резюме
В заключительном видео по базовому курсу программирования на Java мы подведем итоги пройденного материала, обсудим дальнейшее обучение и общий подход в получении знаний в IT индустрии.
00:00 - Введение
01:02 - Как изучать языки программирования
03:04 - Список рекомендуемой литературы
06:20 - Важность получения обратной связи
06:58 - Java Road Map
09:00 - Заключение
Вводный курс для тех, кто хочет освежить свои знания или кто впервые знакомится с программированием и хочет иметь представление о том, что это такое, как написать свою первую программу, убедиться, что это довольно просто и легко. Поэтому курс не требует каких-то предварительных знаний.
Мы пройдемся от самого нуля до того уровня, когда вы сможете писать собственные простенькие программы.
Начнем с установки необходимого программного обеспечения, которое используется для написания других программ. И в нашем случае - это самая мощная и лучшая на текущий момент среда разработки - IntelliJ IDEA и, собственно, сама Java.
Мы разберемся со всеми примитивными типами данных, поговорим про булеву алгебру и логические конструкции if-else. Затронем устройство памяти компьютера и почему он использует именно двоичную систему счислений. Конечно же для того, чтобы понять ее, мы изучим процесс преобразования десятичной системы (которую мы привыкли с вами использовать в реальной практике) в двоичную.
Узнаем, что такое циклы и какие они бывают. Какие из них стоит предпочитать больше всего в реальной практике, а какие стоит использовать только в крайних случаях. А также почему нужно избегать рекурсию (ведь любую рекурсию можно заменить на обычный цикл).
Пройдем сложный тип данных - массивы, и даже затронем тему многомерных массивов. Ведь это основа для построения более сложных структур данных, которые уже будут рассматриваться в следующем курсе по изучению Java - Level 2.
Конечно же на практике изучим невероятно полезное средство, которое поможет в понимании программирования и того, как думает машина - это Debug (отладчик программ).
В конце курса мы обсудим дальнейший путь развития вас как хороших специалистов и какую литературу/ресурсы стоит почитать.