Информационные технологии и языки программирования II


Курс читает: к.б.н. Клименко А.И.,
к.б.н. Казанцева Ф.В.
Аннотация рабочей программы дисциплины Скачать
Рабочая программа Скачать
Фонд оценочных средств Скачать
Трудоемкость дисциплины 2 З.Е. (72 ч.)
Форма промежуточной аттестации Дифференцированный зачет

Программа предназначена для студентов, специализирующихся на биологических направлениях, практические занятия опираются на типичные задачи и проблемы, возникающие при работе студентов генетиков, биоинформатиков и системных биологов.

Перечень основных разделов

Раздел 1. Основы программирования на языке Java.
Раздел 2. Формализация алгоритмов в виде блок-схем. Классические алгоритмы биоинформатики.
Раздел 3. Основы объектно-ориентированного программирования. Классы и объекты.
Раздел 4. Массивы и контейнеры. Работа со строками.
Раздел 5. Работа с файлами, форматы биоинформатических данных.
Раздел 6. Работа с сетью и REST-запросы к бионформатическим ресурсам.
Раздел 7. Визуализация в анализе биоинформатических данных.
Раздел 8. Организация программных пакетов и запуск сторонних программ.
Раздел 9. Подходы автоматического тестирования программных инструментов биоинформатики и системной биологии.
Раздел 10. Высокопроизводительные вычисления и многопоточность.

Основная литература

1. Бэзинс Барт, Бэкил Эйми, Ванден Бруке Зеппе. Java для начинающих. Объектно-ориентированный подход. – 2018.
2. Вирт Н. Алгоритмы и структуры данных. // СПб.: Невский диалект, 2005.
3. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений. 3-е изд. // М.: Вильямс, 2008 г.
4. Эккель Б. Философия Java. Библиотека программиста. // Санкт-Петербург: Питер. – 2014.

Дополнительная литература
5. Cay S. Horstmann. Core Java Volume I—Fundamentals (10th Edition) // Prentice Hall. – 2016.
6. Cay S. Horstmann. Core Java Volume II—Advanced Features (10th Edition) // Prentice Hall. – 2016.

Перечень учебно-методических материалов по самостоятельной работе обучающихся
7. Методические материалы на сайте кафедры информационной биологии НГУ
8. Примеры программ на языке Java с исходными кодами

Типовые вопросы к диф. зачету

1) Введение, рассказ об языках программирования: какие бывают, чем отличаются, почему выбран именно Java, и чем он может быть полезен в решении задач биоинформатики и системной биологии.
2) Установка и настройка версии языка программирования, среды разработки программ, запуск первых приложений.
3) Рассказ о базовых типах данных в Java (числа, строки и т.д.), ключевых особенностях и потенциальных возможностях при работе с ними. Способы ввода данных в программу.
4) Операторы языка Java. Логические операторы, ветвление, циклы, присваивание.
5) Введение в построение блок-схем: что такое блок-схемы, и зачем их создавать до начала программирования. Правила построения.
6) Классические алгоритмы биоинформатики: разбор блок-схем алгоритмов биоинформатического анализа
7) Что такое парадигма объектно-ориентированного программирования (ООП). Концепции абстракции, инкапсуляции, модульности, полиморфизма и наследования.
8) Время жизни и область видимости переменных.
9) Сборка мусора.
10) Документирование Javadoc.
11) Тип данных «массив», инициация, индексация и базовые методы работы с массивами.
12) Контейнеры Java и библиотека Java Collections. Принципы устройства и встроенные методы работы с коллекциями. Интерфейсы и содержимое контейнеров.
13) Тип данных «строка». Методы работы со строками и примеры использования в работе геномными данными.
14) Типы файлов. Инструменты чтения/записи файлов. Потоки ввода/вывода в Java. Форматы файлов, используемых инструментами биоинформатики и системной биологии.
15) Исключения в Java. Генерация, перехват и обработка исключений.
16) Протоколы обмена данными в глобальной сети Интернет. Протокол REST как стандартный инструмент обращения к банкам данных.
17) Методы HTTP запроса и принципы организации простого HTTP-клиента. Инструменты библиотеки Java Net.
18) REST API биоинформатических банков данных.
19) Типичные варианты визуализации данных биоинформатики и системной биологии.
20) Форматы визуализации.
21) Инструменты визуализации биоинформатических данных.
22) Подход к решению задач биоинформатики с привлечением сторонних программ.
23) Оформление программы как исполняемого файла или библиотеки. Интеграция программ на уровне консоли. Запуск любых программ из кода языка Java.
24) Подходы и инструменты автоматического тестирования программ. Концепция модульного тестирования.
25) Библиотека JUnit.
26) Технология разработки программного обеспечения на основе модульного тестирования (TDD).
27) понятие «высокопроизводительные вычисления». Поддерживающие такие вычисления платформы и принципы организации вычислений.
28) Параллелизация вычислений на уровне данных и на уровне исполнения программ. Диаграммы потока исполнения программы.
29) Инструменты Java для параллелизации вычислений.

Задачи к диф. зачету

Задача 1: Создание проекта программы в среде разработки Eclipse.
Задача 2: Вывод в консоль последовательностей символов в заданном порядке.
Задача 3: создание серии алгоритмов обработки данных. Формализация алгоритмов в виде блок-схемы.
Задача 4: Разобрать отношения в рамках выбранной предметной области в концепции ООП (выбор предметной области обсуждается на занятии). Описать классы, формирующие предметную область. Задать отношения между ними, применяя концепции инкапсуляции, наследования и полиморфизма. Выбрать методы классов, которые могут быть переопределены. Сформулировать в виде блок-схемы варианты алгоритмов обработки данных предметной области и реализовать.
Задача 5: В рамках созданной структуры классов на предыдущих занятиях переопределить/доопределить свойства и методы класса с использованием типов данных «массив», «контейнер» и «строки».
Задача 6: Чтение текстовых файлов с геномными данными. Разбор данных в файле с использованием инструментов обработки строк, их переработка и сохранение в новых файлах. Инструменты поиска в строковых данных.
Задача 7: Чтение геномных файлов с использованием профильных инструментов (BioJava).
Задача 8: Подключение к REST API банка данных KEGG и извлечение информации по выбранным организмам (Выбор организма обсуждается на занятии).
Задача 9: Визуализация результатов вычислений программ, выполненных на предыдущих занятиях в рамках инструмента Excel, Python, Matplotlib, GnuPlot.
Задача 10: построить конвейер обработки данных из разработанных на предыдущих занятиях инструментов, с привлечением сторонних программных инструментов.
Задача 11: реализовать серию тестов для разработанных на предыдущих занятиях программ.
Задача 12: Формулирование блок-схемы алгоритма, который может быть переработан в концепцию «высокопроизводительных вычислений».
Задача 13: Реализация алгоритма параллельного исполнения в рамках потоков.

Лекции (2016)

Название Ссылка на видео
Лекция №1-2 Доступ ограничен
Лекция №7-8 Доступ ограничен
Лекция №9 и 11 Доступ ограничен
Scroll to top