• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 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

Авторы

  • Леладзе Константин Григорьевич