3012
.pdfМИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования
«Нижегородский государственный архитектурно-строительный университет»
А. Я Лахов
РАЗРАБОТКА В СРЕДЕ OPEN SOURCE
Учебно-методическое пособие
по подготовке к лекциям и семинарским занятиям (включая рекомендации обучающимся по организации самостоятельной работы) по дисциплине «Разработка в среде Open Source»
для обучающихся по направлению подготовки 09.03.02 Информационные системы и технологии, направленность (профиль) Информационные системы и технологии
Нижний Новгород
2022
1
МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования
«Нижегородский государственный архитектурно-строительный университет»
А. Я Лахов
РАЗРАБОТКА В СРЕДЕ OPEN SOURCE
Учебно-методическое пособие
по подготовке к лекциям и семинарским занятиям (включая рекомендации обучающимся по организации самостоятельной работы) по дисциплине «Разработка в среде Open Source»
для обучающихся по направлению подготовки 09.03.02 Информационные системы и технологии, направленность (профиль) Информационные системы и технологии
Нижний Новгород ННГАСУ
2022
2
УДК 681.3 (075)
Лахов, А. Я А. Разработка в среде Open Source: учебно-методическое пособие / А. Я. Лахов, Нижегородский государственный архитектурно-строительный университет. – Нижний Новгород : ННГАСУ, 2022. – 11 с. : ил. – Текст : электронный.
Даются тематика лекций, их краткое содержание, а также методическиерекомендации по самостоятельной работе обучающихся по дисциплине
«Разработка в среде Open Source». Указывается необходимая литература и источники, разъясняется последовательность их изучения, выделяются наиболее сложные вопросы и даются рекомендации по их изучению.
Предназначено для обучающихся в ННГАСУ по дисциплине «Виртуальные технологии» по направлению подготовки 09.03.02 Информационные системы и технологии, направленность (профиль) Информационные системы и технологии
А. Я. Лахов, 2022ННГАСУ. 2022.
3
Учебно-методическое пособие по подготовке к лекциям (включая рекомендации по организации самостоятельной работы) по дисциплине «Разработка в среде Open Source» предназначены для студентов третьего курса, обучающихся по направлению 09.03.02 Информационные системы и технологии, и содержат программу для проведения лекционных занятий, а также методические рекомендации по самостоятельной работе.
Цель учебно-методического пособия: помочь студентам при изучении учебной программы с использованием лекционных материалов и рекомендуемой учебно-методической литературы при формировании необходимых компетенций дисциплины «Разработка в среде Open Source».
Целями освоения дисциплины Разработка в среде Open Source являются ознакомление студентов с основами создания и использования программных продуктов с открытым кодом; предоставление первоначальных сведений об интегрированной среде разработки Eclipse: принципах построения, установке, пользовательском интерфейсе, возможностях; изучение методов и средств языка программирования Java (ознакомление с использованием классов - композицией и наследованием, ознакомление с полиморфизмом, с внутренними классами, ознакомление с использованием массивов и коллекций, ознакомление с решением задач сортировки и поиска информации).
В лекциях излагается общая характеристика вопросов тем, даются практические примеры применения стандартов, осуществляется групповая работа студентов и преподавателя. Главной целью лекций является привитие студентам интереса к изучаемому материалу, формирование мотивации к последующему самостоятельному анализу рассматриваемой проблематики. На лекциях студентам раскрываются наиболее сложные вопросы и теоретические положения, показывается их практическая значимость, даются рекомендации по углубленному самостоятельному изучению теории и практики.
На лекциях по дисциплине «Разработка в среде Open Source» широко используются активные формы проведения занятий. Такие формы организации образовательного процесса, способствуют разнообразному (индивидуальному, групповому, коллективному) изучению учебных вопросов (проблем), активному взаимодействию студентов и преподавателя, живому обмену мнениями между ними, нацеленному на выработку правильного понимания содержания изучаемой темы и способов ее практического использования.
Материал пропущенных лекций студент восстанавливает самостоятельно и по всем непонятным положениям и вопросам обращается за разъяснением к преподавателю.
Самостоятельная работа направлена на развитие компетенций дисциплины: ПК-1. Способность выполнять интеграцию программных модулей и
компонент; ПК-2. Способность выполнять работы по созданию (модификации) и
сопровождению информационных систем.
Виды и формы самостоятельной работы студентов по дисциплине:
4
систематическая проработка лекций, основной и дополнительной литературы;
подготовка к зачету.
Содержание разделов дисциплины «Разработка в среде Open Source» представлено в таблице 1.
|
|
Таблица 1 Содержание разделов дисциплины |
||||||||
п |
Наименование раздела учебной |
Аудиторная работа, час. |
Формы текущего контроля |
|
||||||
|
успеваемости |
|
|
|||||||
/ |
дисциплины (модуля). |
|
|
|
|
|
|
|||
п |
|
|
|
|
|
|
|
|
|
|
№ |
|
|
|
|
|
|
|
|
|
|
Тема занятия |
Лекц. |
Лаб. |
Практ. |
Лекц. |
|
Лаб. |
|
Практ. |
|
|
|
Семин. |
|
|
Семин. |
|
|||||
|
|
|
|
|
|
|
|
|
||
1 |
2 |
3 |
4 |
5 |
6 |
|
7 |
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
СЕМЕСТР № 6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Использование классов. |
2 |
2 |
|
устный |
|
отчет по |
|
|
|
|
Использование классов. |
|
|
|
опрос |
|
лаборат |
|
|
|
|
Применение композиции и |
|
|
|
|
|
орной |
|
|
|
|
наследования. |
|
|
|
|
|
работе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Полиморфизм. Полиморфизм. |
2 |
2 |
|
устный |
|
отчет по |
|
|
|
|
Восходящее преобразование. |
|
|
|
опрос |
|
лаборат |
|
|
|
|
Конструкторы и полиморфизм. |
|
|
|
|
|
орной |
|
|
|
|
|
|
|
|
|
|
работе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Внутренние классы. Внутренние |
2 |
2 |
|
устный |
|
отчет по |
|
|
|
|
классы. Создание внутренних |
|
|
|
опрос |
|
лаборат |
|
|
|
|
классов. Конструкции this и new. |
|
|
|
|
|
орной |
|
|
|
|
|
|
|
|
|
|
работе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Массивы. Массивы. Массив как |
2 |
2 |
|
устный |
|
отчет по |
|
|
|
|
объект. Возврат массива. |
|
|
|
опрос |
|
лаборат |
|
|
|
|
|
|
|
|
|
|
орной |
|
|
|
|
|
|
|
|
|
|
работе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Коллекции. Коллекции. |
2 |
2 |
|
устный |
|
отчет по |
|
|
|
|
Типизированные контейнеры. List. |
|
|
|
опрос |
|
лаборат |
|
|
|
|
Итераторы. LinkedList. |
|
|
|
|
|
орной |
|
|
|
|
|
|
|
|
|
|
работе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Сортировка и поиск. Сортировка и |
2 |
2 |
|
устный |
|
отчет по |
|
|
|
|
поиск. Сортировка методом |
|
|
|
опрос |
|
лаборат |
|
|
|
|
пузырька. Бинарный поиск. |
|
|
|
|
|
орной |
|
|
|
|
|
|
|
|
|
|
работе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Программное обеспечение Open |
2 |
2 |
|
устный |
|
отчет по |
|
|
|
|
Source. Программное обеспечение |
|
|
|
опрос |
|
лаборат |
|
|
|
|
Open Source |
|
|
|
|
|
орной |
|
|
|
|
|
|
|
|
|
|
работе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5
1 |
Система контроля версий GitHub. |
3 |
3 |
|
устный |
отчет по |
|
|
Система контроля версий GitHub. |
|
|
|
опрос |
лаборат |
|
|
Open Source проекты. |
|
|
|
|
орной |
|
|
|
|
|
|
|
работе |
|
|
|
|
|
|
|
|
|
ИТОГО: |
17 |
17 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
Рекомендуется проработать конспект лекций, затем повторить теоретический материал, пользуясь рекомендованной основной и дополнительной литературой. Если после этого остаются вопросы, рекомендуется выписать их и обратиться к преподавателю на консультациях или через электронную информационно-образовательную среду ННГАСУ (i.nngasu.ru).
Примерная тематика расчетно-графических работ
Семестр № 6:
1.Создание Java приложения реализации сортировки методом пузырька и поиска методом последовательный поиск
2.Создание Java приложения реализации сортировки прямыми включениями и поиска методом индексно-последовательный поиск
4.Создание Java приложения реализации сортировки прямым выбором и поиска методом бинарный поиск
5.Создание Java приложения реализации Шейкер-сортировки и поиска методом последовательный поиск
6.Создание Java приложения реализации сортировки включениями с убывающими приращениями (сортировка Шелла) и поиска методом индекснопоследовательный поиск
7.Создание Java приложения реализации сортировки с помощью дерева и поиска методом бинарного поиска
8.Создание Java приложения реализации пирамидальной сортировки и поиска методом последовательный поиск
9.Создание Java приложения реализации быстрой сортировки и поиска методом индексно-последовательный поиск
10.Создание Java приложения реализации сортировки слиянием и поиска методом бинарного поиска
Перед зачетом студентам выдаѐтся список примерных вопросов, по которым можно понять, на что нужно сделать упор при подготовке к аттестации.
6
Студент допускается к зачету, если он сдал все лабораторные работы и выполнил РГР. При подготовке к зачету после получения перечня вопросов рекомендуется:
1)внимательно прочитать материал лекций;
2)постараться разобраться с непонятными, в частности, новыми терминами, используя рекомендованную литературу;
3)просмотреть все лабораторные работы;
4)выписать вопросы для подробного обсуждения с преподавателем на консультации.
Перечень примерных вопросов, выносимых на зачет.
Таблица 2. Примерные вопросы
|
|
Индикаторы |
|
Вопросы (задания, тестовые вопросы и др.) |
достижения |
|
|
компетенций |
1. |
Какие существуют виды программного обеспечения в |
ПК-1.3, ПК-1.7 |
зависимости от стоимости использования и возможности |
|
|
использования исходного кода. |
|
|
2. |
Какие идеи лежат в основе Open Source. |
ПК-1.3, ПК-1.7 |
|
|
|
3. |
Опишите две основные лицензии на использование Open |
ПК-1.3, ПК-1.7 |
Source. |
|
|
4. |
Как выглядит типичная сессия отладки программного |
ПК-1.3, ПК-1.7 |
обеспечения в Eclipse. |
|
|
5. |
Какими способами можно сконструировать объект в Java? |
ПК-1.3, ПК-1.7 |
6. |
Рассказать про java.util.collection. |
ПК-1.3, ПК-1.7 |
7. |
Устройство ArrayList, LinkedList, HashMap, HashSet. Когда |
ПК-1.3, ПК-1.7 |
следует использовать |
|
|
8. |
Итератор по коллекции, его св-ва и интерфейс . |
ПК-1.3, ПК-1.7 |
9. |
Интеррфейсы и абстрактные классы, в чем отличие? |
ПК-1.3, ПК-1.7 |
10. Перегрузка и переопределение методов, в чем отличие? |
ПК-1.3, ПК-1.7 |
|
11. Создайте простой класс. Во втором классе определите |
ПК-2.4, ПК-2.15 |
|
объект первого класса. Используйте инициализацию для |
|
|
создания этого класса перед использованием этого класса. |
|
|
12. Создайте базовый класс с 2 методами. В первом методе |
ПК-2.4, ПК-2.15 |
|
вызовите второй метод. Унаследуйте класс и переопределите 2 |
|
|
метод. Создайте объект производного класса, проведите |
|
|
восходящее преобразование к базовому типу и вызовите 1 |
|
|
метод. |
|
|
13. Создайте класс, у которого есть конструктор с параметрами. |
ПК-2.4, ПК-2.15 |
|
Создайте 2 класс, в котором есть метод возвращающий ссылку |
|
|
на первый класс. В этом методе возвращаемое значение |
|
|
сделайте в виде безымянного внутреннего класса, который |
|
|
наследует от 1 класса. |
|
|
14. Заполните массив случайным числами и выведите |
ПК-2.4, ПК-2.15 |
|
максимальное, минимальное и среднее значение. Для |
|
7
|
генерации случайного числа используйте метод Math.random(), |
|
|
|
|
|
|
||||
|
который возвращает значение в промежутке [0, 1]. |
|
|
|
|
|
|
||||
|
15. Реализуйте алгоритм сортировки пузырьком для |
ПК-2.4, ПК-2.15 |
|||||||||
|
сортировки массива. |
|
|
|
|
|
|
|
|
|
|
|
16. Дан массив целых чисел и ещѐ одно целое число. Удалите |
ПК-2.4, ПК-2.15 |
|||||||||
|
все вхождения этого числа из массива (пропусков быть не |
|
|
|
|
|
|
||||
|
должно). |
|
|
|
|
|
|
|
|
|
|
|
17. Создайте класс, который описывает вектор (в трѐхмерном |
ПК-2.4, ПК-2.15 |
|||||||||
|
пространстве). У него должны быть: конструктор с |
|
|
|
|
|
|
||||
|
параметрами в виде списка координат x, y, z; метод, |
|
|
|
|
|
|
||||
|
вычисляющий длину вектора. Корень можно посчитать с |
|
|
|
|
|
|
||||
|
помощью Math.sqrt(). |
|
|
|
|
|
|
|
|
|
|
|
18. Выполните — реализацию связного списка (реализовать |
ПК-2.4, ПК-2.15 |
|||||||||
|
только add() и get()). |
|
|
|
|
|
|
|
|
|
|
|
19. Напишите метод, который проверяет, входит ли в массив |
ПК-2.4, ПК-2.15 |
|||||||||
|
заданный элемент или нет. Используйте перебор или двоичный |
|
|
|
|
|
|
||||
|
поиск для решения этой задачи. |
|
|
|
|
|
|
|
|
|
|
|
20. Найдите корень уравнения cos(x) = x на отрезке [0; 1.5] с |
ПК-2.4, ПК-2.15 |
|||||||||
|
точностью по x не хуже, чем 0.001. Известно, что на этом |
|
|
|
|
|
|
||||
|
промежутке корень единственный. Используйте для этого |
|
|
|
|
|
|
||||
|
метод деления отрезка пополам. |
|
|
|
|
|
|
|
|
|
|
|
Показатели оценки по зачету представлены в таблице 3. |
|
|
|
|
|
|||||
|
|
|
|
Таблица 3 Показатели оценки по зачету |
|||||||
|
Показатели |
Бал- |
|
|
|
|
|
|
|
|
|
|
оценивания |
Оценка |
|
Критерий оценки |
|
||||||
|
лы |
|
|
||||||||
|
компетенций |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Результаты |
4,5 - |
«отлично |
|
ставится |
|
обучающемуся, |
|
|||
|
освоения |
5,0 |
» |
|
показавшему |
|
|
|
глубокие |
|
|
|
дисциплины |
|
|
|
систематизированные |
знания |
|
||||
|
соответствует |
|
|
|
учебного материала, |
в полной мере |
|
||||
|
требованиям |
|
|
|
соответствующие |
требованиям к |
|
||||
|
ФГОС |
|
|
|
уровню подготовки обучающегося, |
|
|||||
|
|
|
|
|
проявившему |
|
|
|
творческие |
|
|
|
|
|
|
|
способности |
|
в |
|
понимании, |
|
|
|
|
|
|
|
изложении |
и |
|
использовании |
|
||
|
|
|
|
|
учебного материала |
при решении |
|
||||
|
|
|
|
|
поставленных |
задач, |
умеющему |
|
|||
|
|
|
|
|
обобщать |
|
|
информацию, |
|
||
|
|
|
|
|
аргументировано |
и |
|
практически |
|
||
|
|
|
|
|
без ошибок ответившему на все |
|
|||||
|
|
|
|
|
вопросы. |
|
|
|
|
|
|
8
Результаты |
|
3,5 |
- |
«хорошо» |
ставится |
|
|
обучающемуся, |
||
освоения |
|
4,4 |
|
|
продемонстрировавшему |
|
|
|||
дисциплины |
|
|
|
|
достаточно |
|
полные |
знания |
||
соответствует |
|
|
|
|
учебного материала, в целом |
|||||
требованиям |
|
|
|
|
соответствующие |
требованиям к |
||||
ФГОС |
|
|
|
|
уровню подготовки обучающегося, |
|||||
|
|
|
|
|
способность |
|
к |
|
их |
|
|
|
|
|
|
самостоятельному восполнению и |
|||||
|
|
|
|
|
обновлению |
в |
ходе |
решения |
||
|
|
|
|
|
поставленных |
задач, |
умение |
|||
|
|
|
|
|
систематизировать |
информацию, |
||||
|
|
|
|
|
допустившему негрубые ошибки и |
|||||
|
|
|
|
|
недочеты. |
|
|
|
|
|
Результаты |
|
2,5 |
- |
«удовлет- |
ставится |
|
|
обучающемуся, |
||
освоения |
|
3,4 |
|
воритель- |
показавшему |
уровень |
знаний |
|||
дисциплины |
|
|
|
но» |
учебного |
материала в |
объѐме, |
|||
соответствует |
|
|
|
|
минимально |
необходимом |
для |
|||
требованиям |
|
|
|
|
решения |
поставленных задач, |
||||
ФГОС |
|
|
|
|
знание |
основ |
дисциплины, |
|||
|
|
|
|
|
владеющего навыками логического |
|||||
|
|
|
|
|
мышления |
|
и |
допустившему |
||
|
|
|
|
|
непринципиальные ошибки при |
|
||||
|
|
|
|
|
ответе на вопросы. |
|
|
|
||
Результаты |
|
0,0 |
- |
«неудов- |
ставится |
|
|
обучающемуся, |
||
освоения |
|
2,4 |
|
летвори- |
показавшему |
|
существенные |
|||
дисциплины |
НЕ |
|
|
тельно» |
пробелы |
в |
знании |
основного |
||
соответствует |
|
|
|
|
учебного материала, допустившему |
|||||
требованиям |
|
|
|
|
принципиальные |
ошибки |
при |
|||
ФГОС |
|
|
|
|
применении знаний, которые не |
|||||
|
|
|
|
|
позволяют |
ему |
приступить |
к |
||
|
|
|
|
|
решению поставленных |
задач без |
||||
|
|
|
|
|
дополнительной подготовки. |
|
Перечень основной и дополнительной учебной литературы, необходимой для освоения дисциплины.
Печатные и электронные издания
1. Васюткина И. А.. Технология разработки объектно-ориентированных программ на JAVA : Учебно-методическое пособие. / Васюткина И. А. ; Васюткина И. А.. – Новосибирск : Новосибирский государственный технический университет, 2012. – 152 с. – URL: URL: http://www.iprbookshop.ru/45047.html. – ISBN ISBN 978-5-7782- 1973-1.
9
2.Гуськова, О. И.. Объектно ориентированное программирование в Java : учебное пособие. / Гуськова, О. И. ; О. И. Гуськова. – Москва : Московский педагогический государственный университет, 2018. – 240 с. – URL: URL: http://www.iprbookshop.ru/97750.html. – ISBN ISBN 978-5-4263-0648-6.
3.Джошуа Блох. Java. Эффективное программирование : практическое пособие. / Джошуа Блох ; Блох Джошуа; ред. Р. Усманов; пер. В. Стрельцов. – Саратов :
Профобразование, 2017. – 310 c. – URL: URL: http://www.iprbookshop.ru/64057.html. – ISBN ISBN 978-5-4488-0127-3.
4.Леднева С. Ю.. Программирование на Java. Ч.1 : Лабораторный практикум. / Леднева С. Ю., Ефимушкина Н. В., Цыганов А. А. ; С. Ю. Леднева, Н. В. Ефимушкина, А. А. Цыганов. – Самара : Самарский государственный технический университет, ЭБС АСВ, 2015. – 159 с. – URL: URL: http://www.iprbookshop.ru/90875.html. – ISBN ISBN 2227-8397
Перечень ресурсов информационно – телекоммуникационной сети «интернет» (далее - сеть «интернет»), необходимых для освоения дисциплины:
1.http://www.rsl.ru/ Российская государственная библиотека.
2.http://www.gpntb.ru/ Государственная публичная научно-техническая библиотека России.
3.http://elibrary.ru/ Научная электронная библиотека.
4.http://www.edu.ru Федеральный портал «Российское образование»
5.http://window.edu.ru. Единое окно доступа к образовательным ресурсам
6.www.intuit.ru - Интернет-Университет Информационных Технологий
7.www.techdays.ru - видео-портал Microsoft по современным технологиям и разработке
8.eclipse.org - сайт сообщества по разработке открытой интегрированной среды разработки Eclipse.
10