Бакалавриат
2022/2023
Введение в программирование на Java
Статус:
Курс обязательный (Бизнес-информатика)
Направление:
38.03.05. Бизнес-информатика
Кто читает:
Департамент бизнес-информатики
Где читается:
Высшая школа бизнеса
Когда читается:
1-й курс, 2-4 модуль
Формат изучения:
с онлайн-курсом
Онлайн-часы:
48
Охват аудитории:
для всех кампусов НИУ ВШЭ
Преподаватели:
Жорниченко Илья Алексеевич,
Леладзе Константин Григорьевич,
Рубаненко Мария,
Семенников Кирилл Алексеевич
Язык:
русский
Кредиты:
6
Контактные часы:
72
Программа дисциплины
Аннотация
Цель курса – помочь освоить базовые принципы, понятия и навыки программирования, познакомить слушателей курса с языком программирования Java. Лекционный материал включает в себя демонстрацию синтаксиса языка Java, обзор ключевых особенностей языка и описание основных компонент языка Java. Семинарские занятия посвящены демонстрации решений часто встречающих задач с помощью Java и взаимодействию с аудиторией. Большое внимание уделяется практическим заданиям и самостоятельной работе студентов.
Цель освоения дисциплины
- Знание базовых понятий программирования, на которых зиждется решение любой практической задачи
- Понимание основного синтаксиса Java, широко востребованного в индустрии кросплатформенного языка программирования.
- Умение использовать язык программирования Java для решения практических задач.
- Умение придумывать решение часто встречающихся практических задач в процедурном, объектно ориентированном и функциональном стилях.
Планируемые результаты обучения
- Знание базовых понятий программирования, таких как "переменная", "цикл", "функция", на которых зиждется решение любой практической задачи
- Знание основных сетевых протоколов: UDP, TCP, HTTP(S). Понимание устройства UDP и TCP пакетов.
- Понимание базовых принципов функционального программирования, умение применять их на практике с использованием языка программирования Java.
- Понимание и умение использовать механизм исключений в Java.
- Понимание механизма пакетов в Java.
- Понимание основ backend'а: обработка запроса обработчиком, формирование ответа на запрос и его выдача.
- Понимание основ синтаксиса Java, широко востребованного в индустрии кросплатформенного языка программирования.
- Понимание основной принципов ООП: инкапсуляция, наследование, полиморфизм.
- Понимание принципов наследования в языке Java.
- Понимание принципов работы механизма полиморфизма в Java.
- Понимание таких терминов как JVM, JRE, JDK, JIT.
- Понимание термина "сокет". Умение создавать сокетное соединение, с целью получения и выдачи данных посредством сети.
- Умение использования важных компонент стандартной библиотеки языка Java: коллекций.
- Умение использовать IDE для запуска и отладки программ. Владение базовыми навыками отладки.
- Умение использовать модуль взаимодействия с ФС в языке Java. Умение создавать, редактировать, удалять файлы и директории, получать информацию про них.
- Умение использовать стримы.
- Умение использовать функциональные интерфейсы.
- Умение работать с документацией в формате Javadoc: умение чтения и составления документации важно для любого Java программиста, ведь документация является наиболее формальным способом декларирования эталонного поведения того, или иного компонента программы.
- Умение создать абстрактную иерархию объектов с использованием наследования.
- Умение читать базовый псевдокод и мыслись в процедурном стиле программирования.
Содержание учебной дисциплины
- Основы процедурного программирования
- Основы процедурного программирования на Java
- Использование командной строки, знакомство с компилятором Java и документацией
- Основы объектно ориентированного программирования
- Наследование и абстракции
- Обработка ошибок и логирование
- Дженерики
- Коллекции
- Функциональные интерфейсы
- Стримы
- Рефлексия и аннотации
- Работа с файловой системой
- Потоки данных
- Основы сетевого программирования
Элементы контроля
- Онлайн-Контест с домашними заданиями, часть 3Контест представляет из себя курс на Stepik, состоящий из нескольких блоков. Контест с домашними заданиями разделен на несколько блоков. Каждый блок содержит в себе несколько задач.
- Бонусный блок онлайн-контестаДля желающих получить дополнительное количество баллов создан специальный бонусный блок.
- Письменный онлайн-экзаменПроцедура сдачи экзамена 1) Экзамен проходит в экзаменационный период. 2) Студенты выполняют письменный экзамен синхронно на платформе Stepik в назначенное заранее время. Экзамен содержит в себе вопросы по теории и задачи, которые нужно решить и отправить строго в отведенное время. 3) На экзамене могут попасться вопросы и задачи по любой из тем, пройденных в семестре. Для подготовки можно прочитать программу курса и план занятий, опубликованные в репозитории. 4) Экзамен проводится без прокторинга, однако списывание и плагиат строго запрещены. Все пары решений, уличенные в плагиате, будут проигнорированы.
- Онлайн-Контест с домашними заданиями, часть 2Контест представляет из себя курс на Stepik, состоящий из нескольких блоков. Контест с домашними заданиями разделен на несколько блоков. Каждый блок содержит в себе несколько задач.
- Онлайн-Контест с домашними заданиями, блок 1, часть 1Контест представляет из себя курс на Stepik, состоящий из нескольких блоков. Контест с домашними заданиями разделен на несколько блоков. Каждый блок содержит в себе несколько задач.
- Онлайн-Контест с домашними заданиями, блок 1, часть 2Контест представляет из себя курс на Stepik, состоящий из нескольких блоков. Контест с домашними заданиями разделен на несколько блоков. Каждый блок содержит в себе несколько задач.
Промежуточная аттестация
- 2022/2023 учебный год 3 модуль0.5 * Онлайн-Контест с домашними заданиями, блок 1, часть 1 + 0.5 * Онлайн-Контест с домашними заданиями, блок 1, часть 2
- 2022/2023 учебный год 4 модуль0.25 * Онлайн-Контест с домашними заданиями, часть 3 + 0.25 * Письменный онлайн-экзамен + 0.375 * Онлайн-Контест с домашними заданиями, часть 2 + 0.125 * Бонусный блок онлайн-контеста
Список литературы
Рекомендуемая основная литература
- Computer Science : основы программирования на Java, ООП, алгоритмы и струкуры данных, Седжвик, Р., 2018
- Java : руководство для начинающих: пер. с англ., Шилдт, Г., 2009
- Java 8 : полное руководство : пер. с англ., Шилдт, Г., 2015
- Вязовик, Н. А. Программирование на Java : учебное пособие / Н. А. Вязовик. — 2-е изд. — Москва : ИНТУИТ, 2016. — 603 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100405 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Основы программирования, Окулов, С. М., 2012
Рекомендуемая дополнительная литература
- Основы программирования : учебник для вузов, Иванова, Г. С., 2002
- Основы функционального программирования : курс лекций: учеб. пособие, Городняя Л.В., 2004