Закреплена за кафедрой | Кафедра вычислительной техники и электроники |
---|---|
Направление подготовки | 09.03.01. Информатика и вычислительная техника |
Профиль | Информатика и вычислительная техника |
Форма обучения | Очная |
Общая трудоемкость | 3 ЗЕТ |
Учебный план | 09_03_01_ИиВТ-1-2020 |
|
|
Распределение часов по семестрам
Курс (семестр) | 2 (3) | Итого | ||
---|---|---|---|---|
Недель | 18 | |||
Вид занятий | УП | РПД | УП | РПД |
Лекции | 18 | 18 | 18 | 18 |
Лабораторные | 24 | 24 | 24 | 24 |
Сам. работа | 66 | 66 | 66 | 66 |
Итого | 108 | 108 | 108 | 108 |
Визирование РПД для исполнения в очередном учебном году
Рабочая программа пересмотрена, обсуждена и одобрена для
исполнения в 2020-2021 учебном году на заседании
кафедры
Кафедра вычислительной техники и электроники
Протокол от 08.06.2020 г. № 79/19-20
Заведующий кафедрой Зав. кафедрой: к.ф.-м.н., Пашнев Владимир Валентинович, доц., зав. кафедрой "Вычислительной техники и электроники"
1.1. | формирование у обучающихся базовых знаний о синтаксисе языков программирования: Python 3, Ruby, Perl, Go и их возможности; формирование культуры создания читабельного кода; формирование умения осуществлять декомпозицию проекта ПО на функции, объекты и модули; формирование навыка проектирования и разработки ПО с использованием системы контроля версий, в том числе в рабочей группе. |
---|
Цикл (раздел) ООП: Б1.О.04 |
ОПК-2 | Способен использовать современные информационные технологии и программные средства, в том числе отечественного производства, при решении задач профессиональной деятельности; |
ОПК-8 | Способен разрабатывать алгоритмы и программы, пригодные для практического применения; |
В результате освоения дисциплины обучающийся должен | |
3.1. | Знать: |
---|---|
3.1.1. | базовый синтаксис языков программирования: Python 3, Ruby, Perl, Go и их возможности; принципы формирования читабельного кода; приёмы разработки программ «сверху-вниз» и «снизу-вверх»; идеологию модульного и объектно-ориентированного подхода; типовые решения, применяемые для создания программ. |
3.2. | Уметь: |
3.2.1. | разрабатывать читабельные программы; использовать как встроенную, так и доступную в Сети документацию по библиотекам; подключать дополнительные модули и стандартные модули и пакеты; применять объектно-ориентированный подход для написания программ; разрабатывать программы как индивидуально, так и в команде, с использованием современных средств написания и отладки программ. |
3.3. | Иметь навыки и (или) опыт деятельности (владеть): |
3.3.1. | использования интегрированных сред разработки (IDE) для написания программ; использования интерактивной консоли для интерпритируемых языков программирования; основными командами системы контроля версий git; отладки и интроспекции чужого программного кода. |
Код занятия | Наименование разделов и тем | Вид занятия | Семестр | Часов | Компетенции | Литература |
---|---|---|---|---|---|---|
Раздел 1. Лекционный блок | ||||||
1.1. | Введение в курс. Деление языков программирования на уровни. Основы языков программирования высокого уровня: Python 3, Ruby, Perl, Go. Правила создания читабельного кода, на примере языка программирования Python 3 с использованием PEP8. | Лекции | 3 | 2 | Л1.6, Л1.3, Л1.2, Л2.4, Л3.1, Л3.3, Л3.2, Л2.3, Л2.1, Л1.5 | |
1.2. | Базовые типы данных. Условный оператор IF-ELSE. Вложенные и каскадные ветвления. Логические операции. Циклы. | Лекции | 3 | 2 | Л1.6, Л3.1, Л3.3, Л3.2, Л2.7, Л2.5, Л1.4 | |
1.3. | Функции функций. Объявление функций. Подключение модулей. Возврат по стеку вызовов. Парадигмы программирования. Процедурное программирование. Объектно-ориентированное программирование. Функциональное программирование. | Лекции | 3 | 2 | Л1.6, Л2.2, Л2.6, Л3.1, Л3.3, Л3.2 | |
1.4. | Однострочный Perl. Обработка текстовых данных на примере языка программирования Perl. Построение графиков с помощью программы Gnuplot и python3-matplotlib. | Лекции | 3 | 2 | Л1.6, Л3.1, Л3.3, Л3.2, Л1.1 | |
1.5. | Необходимость Coding Style. Стиль программирования PEP8. Принцип именования переменных и функций. Документация функций. Ограничение ответственности функции и её длина (50 строк). Модульное программирование. Цель и принцип разделения на модули. Создание модулей и пакетов. Возможности инструкции import. Документация проекта. Системы контроля версии. Базовые команды Git. Групповая работа и разделение обязанностей. Распределение ролей в проекте. Структурное программирование. Декомпозиция. Проектирование «сверху-вниз». | Лекции | 3 | 2 | Л1.6, Л3.1, Л3.3, Л3.2 | |
1.6. | Классы и объекты. Классы и объекты в Python. Создание и инициализация объекта. Инкапсуляция ответственности в класс. Введение в ООП Принцип единственной ответственности класса. Отношения между классами. Наследование и композиция. Ассоциация. Диаграмма классов UML. | Лекции | 3 | 2 | Л1.6, Л3.1, Л3.3, Л3.2 | |
1.7. | Документация проекта. Проработка интерфейсов модулей/функций. Тестирование проекта. Контроль качества doctest. | Лекции | 3 | 2 | Л1.6, Л3.1, Л3.3, Л3.2 | |
1.8. | Создание графических программ с использованием библиотеки Tkinter. | Лекции | 3 | 2 | Л1.6, Л3.1, Л3.3, Л3.2 | |
1.9. | Библиотеки NumPy, SciPy и другие используемые в решении различных задач. | Лекции | 3 | 2 | Л1.6, Л3.1, Л3.3, Л3.2 | |
Раздел 2. Лабораторный блок | ||||||
2.1. | Базовые лабораторные работы на языках программирования: Python3, Ruby, Go. | Лабораторные | 3 | 8 | Л1.3, Л3.1, Л3.3, Л3.2, Л1.5, Л2.5 | |
2.2. | Обработка текстовых данных на языке программирования Perl. | Лабораторные | 3 | 4 | Л3.1, Л3.3, Л3.2, Л1.1 | |
2.3. | Построение графиков с помощью программы Gnuplot и пакет python3-matplotlib. Обработка изображений. | Лабораторные | 3 | 4 | Л3.1, Л3.3, Л3.2 | |
2.4. | Разработка программы на ООП. Рефакторинг программы с процедурного типа на объектно-ориентированный. | Лабораторные | 3 | 4 | Л3.1, Л3.3, Л3.2 | |
2.5. | Разработка графической программы с использованием библиотеки Tkinter, моделирующую солнечную систему (групповое задание). | Лабораторные | 3 | 4 | Л3.1, Л3.3, Л3.2 | |
Раздел 3. Блок самостоятельных работ | ||||||
3.1. | Основы языков программирования: Python3, Ruby, Perl и Go. Базовые типы данных. Конструкции используемые в данных языках программирования. | Сам. работа | 3 | 12 | Л3.1, Л3.3, Л3.2 | |
3.2. | Изучение принципов работы систем контроля версий. Изучение основных команд для работы с Git. | Сам. работа | 3 | 8 | Л3.1, Л3.3, Л3.2 | |
3.3. | Освоение принципов работы с библиотекой python3-matplotlib. Основ работы с Gnuplot. И использование Perl для обработки текстовых данных | Сам. работа | 3 | 8 | Л3.1, Л3.3, Л3.2 | |
3.4. | Освоение принципов: функционального программирования, процедурного программированиея, объектно-ориентированного программирования. Работа с UML. | Сам. работа | 3 | 14 | Л3.1, Л3.3, Л3.2 | |
3.5. | Проектирование в команде проекта группового задания и его реализация. | Сам. работа | 3 | 24 | Л3.1, Л3.3, Л3.2 |
5.1. Контрольные вопросы и задания для проведения текущего контроля и промежуточной аттестации по итогам освоения дисциплины |
Контрольные вопросы к зачету/экзамену: 1. Понятие алгоритма. Алгоритмическая система. Алгоритмизация. 2. Технология разработки алгоритмов. Базовые алгоритмические структуры. 3. Парадигмы программирования. Развитие языков программирования. 4. Стандартные типы данных в языках программирования: Python3, Ruby, Perl и Go. 5. Операторы ветвления, циклы в языках программирования: Python3, Ruby, Perl и Go. 6. Принципы создания рекурсивных функций. 7. Обработка текстовых данных с помощью языка программирования Perl. 8. Обработка текстовых данных на языках программирования: Python3, Ruby и Go. 9. Графическая библиотека Tkinter. 10. Научные библиотеки NumPy и Scipy. 11. Построение графиков с помощью Gnuplot и python3-matplotlib. 12. Функции в языке программирования Python3, Ruby и Go. Объявление и определение функций. 13. Функции в языке программирования Python3, Ruby и Go. Локальные и глобальные переменные. Строки, массивы и структуры в качестве параметров функций. 14. Функции в языке программирования Python3, Ruby и Go. Рекурсия. 15. Организация хеш-таблиц для быстрого доступа к данным. |
5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.) |
оформление отчёта по командной работе. |
5.3. Фонд оценочных средств для проведения промежуточной аттестации |
Фонд оценочных средств представлен в Приложении (документ ФОС_Языки программирования высокого уровня.doc) |
6.1. Рекомендуемая литература | ||||
6.1.1. Основная литература | ||||
Авторы | Заглавие | Издательство, год | Эл. адрес | |
Л1.1 | Мельников С. В. | Регулярные выражения Perl и их применение: Учебная литература для ВУЗов | Национальный Открытый Университет «ИНТУИТ», 2016 | biblioclub.ru |
Л1.2 | Саммерфильд М. | Программирование на Go. Разработка приложений XXI века: Уровень образования: Бакалавриат, Магистратура | Москва : ДМК Пресс,, 2013 | e.lanbook.com |
Л1.3 | Хахаев И. А. | Практикум по алгоритмизации и программированию на Python: курс | М.: Национальный Открытый Университет «ИНТУИТ», 2016//ЭБС «Университетская библиотека online» | biblioclub.ru |
Л1.4 | Северенс Ч. | Введение в программирование на Python: Учебная литература для ВУЗов | Национальный Открытый Университет «ИНТУИТ», 2016 | biblioclub.ru |
Л1.5 | Фултон Х., Арко А. | Путь Ruby: | Издательство "ДМК Пресс", 2016 | e.lanbook.com |
Л1.6 | Синицын С.В., Михайлов А.С., Хлытчиев О.И. | Программирование на языке высокого уровня: учебник | М.: Академия, 2010 | |
6.1.2. Дополнительная литература | ||||
Авторы | Заглавие | Издательство, год | Эл. адрес | |
Л2.1 | Хартл М. | Ruby on Rails для начинающих: | Издательство "ДМК Пресс", 2017 | e.lanbook.com |
Л2.2 | Сергиевский Г.М., Волченков Н.Г. | Функциональное и логическое программирование: учеб. пособие для вузов | М.: Академия, 2010 | |
Л2.3 | Эдельсон Д., Лю Г. | JRuby. Сборник рецептов: Научно-популярная литература | Издательство "ДМК Пресс", 2010 | e.lanbook.com |
Л2.4 | Л. Рамальо | Python. К вершинам мастерства: | ДМК Пресс, 2016//ЭБС издательства «Лань» | e.lanbook.com |
Л2.5 | Буйначев С. К., Боклаг Н. Ю. | Основы программирования на языке Python: Учебники и учебные пособия для ВУЗов | Издательство Уральского университета, 2014 | biblioclub.ru |
Л2.6 | Г. М. Сергиевский, Н. Г. Волченков | Функциональное и логическое программирование: учеб. пособие для вузов | Академия, 2010 | |
Л2.7 | Златопольский Д.М. | Основы программирования на языке Python: Учебники | Издательство "ДМК Пресс", 2017 | e.lanbook.com |
6.1.3. Дополнительные источники | ||||
Авторы | Заглавие | Издательство, год | Эл. адрес | |
Л3.1 | Зацепин П.М. | Основы программирования. Типизация, простые типы данных, ввод-вывод и операции выбора: метод. указания по выполнению лаб. работ | Барнаул: Изд-во АлтГУ, 2009 | |
Л3.2 | Зацепин П.М. | Базовые принципы программирования: метод. указания по выполнению лаб. работ | Барнаул: Изд-во АлтГУ, 2009 | |
Л3.3 | Зацепин П.М. | Основы программирования. Массивы, циклы, множественный выбор: метод. указ. по выполнению лаб. работ | Барнаул: Изд-во АлтГУ, 2009 | |
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет" | ||||
Название | Эл. адрес | |||
Э1 | Golang - изучаем язык программирования GO | golangs.org | ||
Э2 | Язык Go для начинающих _ Хабр | habr.com | ||
Э3 | Ruby — Викиучебник | ru.wikibooks.org | ||
Э4 | Ruby Programming — Wikibooks, open books for an open world | en.wikibooks.org | ||
Э5 | Ruby — Документация | www.ruby-lang.org | ||
Э6 | Некоторые сведения о Perl 5 — Викиучебник | ru.wikibooks.org | ||
Э7 | Perl Programming — Wikibooks, open books for an open world | en.wikibooks.org | ||
Э8 | Python_Учебник Python 3.1 — Викиучебник | ru.wikibooks.org | ||
Э9 | Welcome to Python.org | www.python.org | ||
Э10 | Gnuplot — Викиучебник | ru.wikibooks.org | ||
Э11 | Курс в Мудле Языки программирования высокого уровня | portal.edu.asu.ru | ||
6.3. Перечень программного обеспечения | ||||
ОС: Debian GNU/Linux или LinuxMint Интерпретаторы и компиляторы для языков программирования: Python3, Ruby, Perl и Go. Программа для построения графиков: Gnuplot. Распределённая система управления версиями: Git. TeXLive с набором для работы с TeX (LaTeX/XeLaTeX), Beamer, Biber. | ||||
6.4. Перечень информационных справочных систем | ||||
использование не предусмотрено. |
Аудитория | Назначение | Оборудование |
---|---|---|
Учебная аудитория | для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик | Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска, мультимедийное оборудование стационарное или переносное) |
419К | лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации; | Учебная мебель на 17 посадочных мест; рабочее место преподавателя; доска маркерная - 1 шт.; компьютеры: NAIO Corp Z520, НЭТА - 4 in - 13 ед. |
Изучение курса «Языки программирования высокого уровня» предполагает последовательное изучение всех лекций и примеров программ представленных в разделе «Ресурсы»: изучение материалов лекций; ответы на вопросы по лекциям; прохождение всех итоговых тестов по каждой теме курса; изучение материалов курса. Рекомендуется лекционный материал изучать в тот же день, когда была лекция или позднее. После освоения всего лекционного материала рекомендуется изучить ещё раз все материалы представленные в курсе. После этого преступить к выполнению итоговых тестов по курсу. Зачёт/экзамен проходит в виде лабораторного занятия на котором студент получает билет в котором представлен один вопрос по теории и 2 практических задания, которые нужно реализовать на одном из изученных языков программирования. |