`Материалы для личного использования`

Источник:  
<https://stepik.org/course/187/promo>

## О курсе

Данный курс предназначен для тех, кто только начинает изучать Java. Мы начнем с самых азов: компиляция и запуск Java-программ, синтаксис языка, система типов, основы объектно-ориентированного программирования. Далее обсудим наиболее важные классы стандартной библиотеки, включая нововведения Java 8. Для закрепления знаний в курсе предусмотрены контрольные вопросы и практические задания.  

На входе от вас потребуется только знание какого-либо императивного языка программирования, например, C, Pascal или BASIC. Предполагается, что слушатели уже знакомы с такими фундаментальными понятиями, как «переменная», «цикл», «подпрограмма». Также полезно будет освежить в памяти знания из школьного курса информатики о двоичном дополнительном коде и о кодировках текста.

## Видео

### Youtube

[Ссылка](https://www.youtube.com/playlist?list=PLvb7ivodu7oTvvvAqWzZ7CpfTHY5kJnWk)

### Rutube

<div id="content"></div>

<script type="text/javascript">
    let j_page_data = [
        {
            name: '1 Введение в Java | курс Java',
            local_src: '/video/java_basic_course/1_Введение_в_Java_ курс_Java_720.mp4',
            src:'https://rutube.ru/play/embed/98a485d38ccfd8b8d6483f47aa3e2160',
            desc: {
                title: 'Введение в Java',
                topics: [
                    "Что такое Java, откуда она взялась и зачем нужна",
                    "Первый контакт — Hello World",
                    "Знакомство со средой разработки"
                ]
            }
        },
        {
            name: '2 Базовый синтаксис Java | курс Java',
            local_src: '/video/java_basic_course/2_Базовый_синтаксис_Java_720.mp4',
            src:'https://rutube.ru/play/embed/72353c2827a883517788a47983172f5c',
            desc: {
                title: 'Базовый синтаксис Java',
                topics: [
                    "Примитивные типы",
                    "Преобразование типов",
                    "Массивы и строки",
                    "Управляющие конструкции: условные операторы и циклы"
                ]
            }
        },
        {
            name: '3 Объекты, классы и пакеты в Java | курс Java',
            local_src: '/video/java_basic_course/3_Объекты_классы_и_пакеты_в_Java_720.mp4',
            src:'https://rutube.ru/play/embed/b47ba7cb2b77b0d83bdbc94ba2941196',
            desc: {
                title: 'Объекты, классы и пакеты в Java',
                topics: [
                    "Основы ООП",
                    "Пакеты и модификаторы доступа",
                    "Объявление класса",
                    "Наследование. Класс Object",
                    "Абстрактные классы и интерфейсы"
                ]
            }
        },
        {
            name: '4 Обработка ошибок, исключения, отладка | курс Java',
            local_src: '/video/java_basic_course/4_Обработка_ошибок_исключения_отладка _курс_Java_720.mp4',
            src:'https://rutube.ru/play/embed/30b482051519ded974b2c46ef5afe527',
            desc: {
                title: 'Обработка ошибок, исключения, отладка',
                topics: [
                    "Знакомство с исключениями",
                    "Обработка исключений. Try-catch",
                    "Логирование"
                ]
            }
        },
        {
            name: '5 Ввод вывод, доступ к файловой системе | курс Java',
            local_src: '/video/java_basic_course/5_Ввод_вывод_доступ_к_файловой_системе _курс_Java_720.mp4',
            src:'https://rutube.ru/play/embed/622f5b6d89653b7be02cb35b7eb68335',
            desc: {
                title: 'Ввод вывод, доступ к файловой системе',
                topics: [
                    "Доступ к файловой системе",
                    "Потоки байт",
                    "Потоки символов",
                    "Продвинутые возможности"
                ]
            }
        },
        {
            name: '6 Generics Collections Streams | курс Java',
            local_src: '/video/java_basic_course/6_Generics_Collections_Streams_Java_720.mp4',
            src:'https://rutube.ru/play/embed/8b96a167e649f939ad7dd281e475e3a1',
            desc: {
                title: 'Generics Collections Streams',
                topics: [
                    "Generics",
                    "Коллекции",
                    "Функциональные интерфейсы",
                    "Stream API"
                ]
            }
        }
    ];

let content_data = '';    
j_page_data.forEach(o => {
    let topic_blc = '';

    o.desc.topics.forEach(item => {
        topic_blc += `<li>${item}</li>`;
    });

    let tmplt1 = `<div class="card mt-4 p-5 bg-light" style="box-sizing: unset;">
        <h3>${o.name}</h3>
        <div class="row d-flex">
            <div class="col-sm-12 col-xl-6 mr-4 embed-responsive embed-responsive-16by9">
                <iframe width="720" height="405"
                src="${o.local_src}"
                frameBorder="0" allow="clipboard-write" webkitAllowFullScreen mozallowfullscreen allowFullScreen>
                </iframe>
            </div>
            <div class="col-sm-12 col-xl-5 col-lg-5">
                <p><span style="color:#0F9B8E; font-size: 1.2rem;">Описание:&nbsp;</span><br>${o.desc.title}</p>
                <ol>
                    ${topic_blc}
                </ol>
                <a href="${o.src}">Ссылка на источник</a>
            </div>
        </div>
    </div>`;

    let tmplt = `<div class="card mt-4 p-5 bg-light" style="box-sizing: unset;">
        <h3>${o.name}</h3>
        <div class="row d-flex">
            <video src="${o.local_src}" controls style="width:50%; min-width: 300px;"></video>
            <div class="col-sm-12 col-xl-5 col-lg-5">
                <p><span style="color:#0F9B8E; font-size: 1.2rem;">Описание:&nbsp;</span><br>${o.desc.title}</p>
                <ol>
                    ${topic_blc}
                </ol>
                <a href="${o.src}">Ссылка на источник</a>
            </div>
        </div>
    </div>
    
    `;

    content_data += tmplt;
    
});

let content_el = document.getElementById("content");
content_el.innerHTML = content_data;
</script>