МИНОБРНАУКИ РОССИИ
федеральное государственное бюджетное образовательное учреждение высшего образования
«Алтайский государственный университет»

Основы программирования

рабочая программа дисциплины
Закреплена за кафедройКафедра информатики
Направление подготовки09.03.04. Программная инженерия
ПрофильРазработка программно-информационных систем
Форма обученияОчная
Общая трудоемкость6 ЗЕТ
Учебный план09_03_04_Программная инженерия_РПИС-2022
Часов по учебному плану 216
в том числе:
аудиторные занятия 72
самостоятельная работа 117
контроль 27
Виды контроля по семестрам
экзамены: 2

Распределение часов по семестрам

Курс (семестр) 1 (2) Итого
Недель 22
Вид занятий УПРПДУПРПД
Лабораторные 72 72 72 72
Сам. работа 117 117 117 117
Часы на контроль 27 27 27 27
Итого 216 216 216 216

Программу составил(и):
старший преподаватель, Смолякова Лариса Ленгардовна

Рецензент(ы):
к.ф.-м.н., доцент, Пономорев И.В.

Рабочая программа дисциплины
Основы программирования

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования - бакалавриат по направлению подготовки 09.03.04 Программная инженерия (приказ Минобрнауки России от 19.09.2017 г. № 920)

составлена на основании учебного плана:
09.03.04 Программная инженерия
утвержденного учёным советом вуза от 29.10.2021 протокол № 1/1.

Рабочая программа одобрена на заседании кафедры
Кафедра информатики

Протокол от 26.06.2023 г. № 4
Срок действия программы: 2023-2024 уч. г.

Заведующий кафедрой
к.ф.-м.н., доцент Козлов Денис Юрьевич


Визирование РПД для исполнения в очередном учебном году

Рабочая программа пересмотрена, обсуждена и одобрена для
исполнения в 2023-2024 учебном году на заседании кафедры

Кафедра информатики

Протокол от 26.06.2023 г. № 4
Заведующий кафедрой к.ф.-м.н., доцент Козлов Денис Юрьевич


1. Цели освоения дисциплины

1.1.Целями освоения дисциплины являются:
- формирование базовых знаний в области основ алгоритмизации и программирования;
- выработка навыков решения типичных задач с использованием ЭВМ;
- овладение приемами разработки и отладки программ в современных средах программирования.
Изучение дисциплины направлено
- на развитие у обучающихся алгоритмического мышления, систематизацию принципов построения языков программирования и подходов к разработке программ для ЭВМ;
- на формирование навыков реализации алгоритмов на высокоуровневом императивном языке программирования; разработки, отладки и тестирования программ;
- на подготовку обучающихся к системному восприятию дальнейших дисциплин из учебного плана, использующих навыки алгоритмизации и программирования;
- на получение представлений об основных идеях структурного программирования и развитие способностей сознательно использовать материал курса, умение разбираться в существующих языковых и программных средствах и условиях их применения.

2. Место дисциплины в структуре ООП

Цикл (раздел) ООП: Б1.О.02

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

ОПК-6Способен разрабатывать алгоритмы и программы, пригодные для практического использования, применять основы информатики и программирования к проектированию, конструированию и тестированию программных продуктов
ОПК-6.1 Знает основные языки программирования и принципы работы с базами данных, операционные системы и оболочки, современные программные среды разработки информационных систем и технологий
ОПК-6.2 Умеет разрабатывать алгоритмы, реализовывать их на основных языках программирования, работать с базами данных (вести базы данных и информационные хранилища), работать с современными программными средами разработки информационных систем и технологий для автоматизации бизнес-процессов, решать прикладные задачи различных классов
ОПК-6.3 Владеет навыками программирования, отладки и тестирования прототипов программно-технических комплексов задач
УК-6Способен управлять своим временем, выстраивать и реализовывать траекторию саморазвития на основе принципов образования в течение всей жизни
УК-6.1 Знает закономерности становления и развития личности; механизмы, принципы и закономерности процессов самоорганизации, самообразования и саморазвития; теорию тайм-менеджмента
УК-6.2 Умеет определять свои ресурсы и их пределы (личностные, ситуативные, временные и др.) для успешного выполнения порученной работы, ставить цели и устанавливать приоритеты собственного профессионально-карьерного развития с учетом условий, средств, личностных возможностей и временной перспективы достижения; осуществлять самоанализ и рефлексию собственного жизненного и профессионального пути
УК-6.3 Владеет методиками саморегуляции эмоционально- психологических состояний в различных условиях деятельности, приемами самооценки уровня развития своих индивидуально-психологических особенностей; технологиями проектирования профессионально-карьерного развития; способами планирования, организации, самоконтроля и самооценки деятельности
УК-6.4 Применяет разнообразные способы, приемы техники самообразования и самовоспитания на основе принципов образования в течение всей жизни
В результате освоения дисциплины обучающийся должен
3.1.Знать:
3.1.1.о различных парадигмах программирования и современном уровне развития языков и технологий программирования;
о сложности программных систем и методах ее преодоления;
об основах построения трансляторов;
основные понятия в области алгоритмизации, свойства алгоритмов, методы анализа сложности алгоритмов;
синтаксис и базовые конструкции языков C и С++, основные возможности и приемы программирования на этих языках;
принципы структурного программирования;
назначение, устройство и свойства основных структур данных: список, очередь, стэк, дерево, граф;
эффективные алгоритмы поиска и сортировки, алгоритмы решения задач теории графов.

3.2.Уметь:
3.2.1.разрабатывать алгоритмы решения типичных задач и реализовывать их на языке С;
применять при решении алгоритмических задач типичные алгоритмы и структуры данных;
использовать для разработки и отладки программ современные интегрированные среды разработки.
3.3.Иметь навыки и (или) опыт деятельности (владеть):
3.3.1.приемами чтения, построения и записи алгоритмов;
навыками написания и отладки программ на высокоуровневом языке программирования в интегрированной среде разработки.

4. Структура и содержание дисциплины

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Язык программирования Си
1.1. Линейный вычислительный процесс Лабораторные 2 2 Л2.1, Л1.2, Л1.3, Л1.1
1.2. Линейный вычислительный процесс Сам. работа 2 12 Л2.1, Л1.2, Л1.3, Л1.1
1.3. Ветвящийся вычислительный процесс Лабораторные 2 6 Л2.1, Л1.2, Л1.3, Л1.1
1.4. Ветвящийся вычислительный процесс Сам. работа 2 12 Л2.1, Л1.2, Л1.3, Л1.1
1.5. Циклический вычислительный процесс Лабораторные 2 8 Л2.1, Л1.2, Л1.3, Л1.1
1.6. Циклический вычислительный процесс Сам. работа 2 4 Л2.1, Л1.2, Л1.3, Л1.1
1.7. Функции Лабораторные 2 8 Л2.1, Л1.2, Л1.3, Л1.1
1.8. Функции Сам. работа 2 18 Л2.1, Л1.2, Л1.3, Л1.1
1.9. Массивы Лабораторные 2 10 Л2.1, Л1.2, Л1.3, Л1.1
1.10. Массивы Сам. работа 2 10 Л2.1, Л1.2, Л1.3, Л1.1
1.11. Строки Лабораторные 2 10 Л2.1, Л1.2, Л1.3, Л1.1
1.12. Строки Сам. работа 2 18 Л2.1, Л1.2, Л1.3, Л1.1
1.13. Структуры Лабораторные 2 6 Л2.1, Л1.2, Л1.3, Л1.1
1.14. Структуры Сам. работа 2 6 Л2.1, Л1.2, Л1.3, Л1.1
1.15. Файлы Лабораторные 2 4 Л2.1, Л1.2, Л1.3, Л1.1
1.16. Файлы Сам. работа 2 6 Л2.1, Л1.2, Л1.3, Л1.1
Раздел 2. Алгоритмы и структуры данных
2.1. Базовые методы сортировки Лабораторные 2 4 Л2.1, Л1.2, Л1.3, Л1.1
2.2. Базовые методы сортировки Сам. работа 2 10 Л2.1, Л1.2, Л1.3, Л1.1
2.3. Методы сортировки с линейно-логарифмической сложностью Лабораторные 2 4 Л2.1, Л1.2, Л1.3, Л1.1
2.4. Методы сортировки с линейно-логарифмической сложностью Сам. работа 2 7 Л2.1, Л1.2, Л1.3, Л1.1
2.5. Анализ сложности алгоритмов сортировки Лабораторные 2 4 Л2.1, Л1.2, Л1.3, Л1.1
2.6. Анализ сложности алгоритмов сортировки Сам. работа 2 8 Л2.1, Л1.2, Л1.3, Л1.1
2.7. Динамические структуры данных Лабораторные 2 6 Л2.1, Л1.2, Л1.3, Л1.1
2.8. Динамические структуры данных Сам. работа 2 6 Л2.1, Л1.2, Л1.3, Л1.1

5. Фонд оценочных средств

5.1. Контрольные вопросы и задания для проведения текущего контроля и промежуточной аттестации по итогам освоения дисциплины
смотри приложение
5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.)
Не предусматривается
5.3. Фонд оценочных средств для проведения промежуточной аттестации
смотри приложение
Приложения

6. Учебно-методическое и информационное обеспечение дисциплины

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Подбельский В.В., Фомин С.С. Курс программирования на языке Си: Учебники Издательство "ДМК Пресс", 2012 e.lanbook.com
Л1.2 Смирнов А.А. Технологии программирования : учебно-практическое пособие [Электронный ресурс]: Учебно-практическое пособие Евразийский открытый институт, 2011 // ЭБС "Университетская библиотека ONLINE" biblioclub.ru
Л1.3 Вирт Н. Алгоритмы и структуры данных. Новая версия для Оберона: Учебные пособия Издательство "ДМК Пресс", 2010 e.lanbook.com
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Кауфман В.Ш. Языки программирования. Концепции и принципы: Учебник М.: ДМК Пресс // ЭБС "Лань", 2011 e.lanbook.com
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 C — The ISO Standard — Rationale, Revision 5.10 (англ.) (апрель 2004). — Обоснование и пояснения для стандарта C99. – http://www.open-std.org/JTC1/SC22/WG14/www/docs/C99RationaleV5.10.pdf
Э2 ISO/IEC JTC1/SC22/WG14 official home – Официальная страница международной рабочей группы по стандартизации языка программирования Си. – http://www.open-std.org/JTC1/SC22/WG14/
Э3 Поисковые системы - yandex.ru, google.com
Э4 Свободная энциклопедия Википедия – http://ru.wikipedia.org
Э5 Форум разработчиков программного обеспечения - Stackoverflow.com
Э6 Интернет-университет информационных технологий. – http://www.intuit.ru
Э7 Образовательный курс Основы программирования на платформе MOODLE portal.edu.asu.ru
6.3. Перечень программного обеспечения
Интегрированная среда разработки
Компилятор С/С++
Текстовый редактор
Microsoft Windows
Microsoft Office
7-Zip
AcrobatReaderMicrosoft Office 2010 (Office 2010 Professional, № 4065231 от 08.12.2010), (бессрочно);
Microsoft Windows 7 (Windows 7 Professional, № 61834699 от 22.04.2013), (бессрочно);
Chrome (http://www.chromium.org/chromium-os/licenses), (бессрочно); 7-Zip (http://www.7-zip.org/license.txt), (бессрочно);
AcrobatReader (http://wwwimages.adobe.com/content/dam/Adobe/en/legal/servicetou/Acrobat_com_Additional_TOU-en_US-20140618_1200.pdf), (бессрочно);
ASTRA LINUX SPECIAL EDITION (https://astralinux.ru/products/astra-linux-special-edition/), (бессрочно);
LibreOffice (https://ru.libreoffice.org/), (бессрочно);
Веб-браузер Chromium (https://www.chromium.org/Home/), (бессрочно);
Антивирус Касперский (https://www.kaspersky.ru/), (до 23 июня 2024);
Архиватор Ark (https://apps.kde.org/ark/), (бессрочно);
Okular (https://okular.kde.org/ru/download/), (бессрочно);
Редактор изображений Gimp (https://www.gimp.org/), (бессрочно)
6.4. Перечень информационных справочных систем
1. Образовательный портал АлтГУ [Электронный ресурс]: http://portal.edu.asu.ru
2. Издательство «Лань» - электронно-библиотечная система [Электронный
ресурс]: http://e.lanbook.com
3. Издательство МЦНМО. Свободно распространяемые книги издательства
Московского центра непрерывного математического образования
[Электронный ресурс]: www.mccme.ru/free-books
4. Математическая библиотека [Электронный ресурс]: www.math.ru/lib
7. Электронная библиотечная система Алтайского государственного
университета [Электронный ресурс]: http://elibrary.asu.ru
8. Научная электронная библиотека Elibrary [Электронный ресурс]:
http://elibrary.ru

7. Материально-техническое обеспечение дисциплины

Аудитория Назначение Оборудование
107Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 18 посадочных мест; компьютеры: марка HP, модель ProOne 400 - 18 единиц; проектор: марка SMART, модель UF70 - 1 единица; интерактивная доска: марка SMART Board модель SMB680 - 1 единица
Помещение для самостоятельной работы помещение для самостоятельной работы обучающихся Компьютеры, ноутбуки с подключением к информационно-телекоммуникационной сети «Интернет», доступом в электронную информационно-образовательную среду АлтГУ
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска)

8. Методические указания для обучающихся по освоению дисциплины

В процессе освоения курса "Основы программирования" обучающийся будет сталкиваться с материалами разного рода. Ниже даны краткие инструкции по их использованию и освоению.

1. Рабoчая программа дисциплины

Рабочая программа дисциплины -- официальный документ, определяющий содержание курса. С ним следует ознакомиться, чтобы понимать что конкретно будет изучаться в данном курсе.

2. Глoссарий

Глоссарий -- справочник основных понятий и определений терминов, используемых в курсе. Для успешного освоения курса и сдачи экзамена, совершенно необходимо выучить наизусть и быть способным привести не только определение, но и пару-тройку фрагментов кода, иллюстрирующих данное понятие.

3. Слайды к лекциям

Слайды к лекциям могут служить кратким конспектом лекций. Используйте их как план освоения прочих материалов: видеолекций, текстов и пр. В начале каждой презентации содержатся задания для самопроверки, которые могут дать представление о наиболее сложных вопросах в тестах.

4. Видеолекции

Видеолекции смонтированы на основе звукозаписей "живых" лекций и до некоторой степени способны их заменить. Пока они не покрывают полный курс, но их коллекция неуклонно пополняется. Используйте их для освежения в памяти рассмотренного материала. К сожалению, при просмотре видеолекций нет возможности задать вопрос лектору, однако его можно задать а) в личном сообщении преподавателю, б) в группе ВКонтакте vk.com/asuop2014, в) на очной консультации.

5. Лабораторные работы

Выполнение лабораторных работ -- основа практических занятий. Основные навыки программирования вырабатываются именно в эти моменты. Для выполнения работы необходимо

получить вариант задания у преподавателя, ведущего практические занятия;
обратившись к нужной лабораторной работе,загрузить документ с описанием работы;
внимательно прочитать задание к работе (как правило, на второй странице документа);
разработать, отладить и оттестировать программы, решающие указанные задачи;
составить отчёт о лабораторной работе по шаблону (см. ссылку в 0-м разделе курса);
загрузить PDF-версию отчета, используя нужный элемент "Лабораторная работа №..." (при необходимости вместо уже загруженного варианта отчета всегда можно загрузить и его обновленную версию);
очно защитить результаты работы перед преподавателем и получить оценку.

Оценки за лабораторные работы можно просмотреть через пункт меню "Оценки", расположенном на главной странице курса в её левой нижней части (Настройки\Управление курсом\Оценки).

Как правило на выполнение лабораторной работы отводится 3 недели, при этом сложность работ возрастает с увеличением номера лабораторной работы. По этой причине не рекомендуется затягивать первые простые работы.

6. Шаблон отчета о лабораторной работе

Шаблон отчета -- Word-документ, содержащий пример оформления отчета о выполнении лабораторной работы. Используйте этот документ как образец содержания и стиля оформления отчета, в том числе и в ситуациях, когда для подготовки отчета используются текстовые редакторы, отличные от Word-а.

7. Тесты

Тесты предназначены для контроля усвоения теоретического материала, а также умения читать и понимать код программ. Количество попыток на каждый тест ограничено тремя. Зачётные попытки выполнения теста осуществляются только в присутствии преподавателя (на практическом занятии или консультации). Оценка за тест определяется как максимальная из оценок, полученных в зачетных попытках. Результаты прочих попыток аннулируются, а попытки рассматриваются как тренировочно-ознакомительные.

Оценки за тесты сообщаются по окончании попытки, а также могут быть просмотрены в любой момент через пункт меню "Оценки", расположенный на главной странице курса в её левой нижней части (Настройки\Управление курсом\Оценки).

8. Рекомендации "Чтo почитать?"

Элемент "Чтo почитать?" имеется в большинстве разделов курса и содержит ссылки на фрагменты текстов учебников, вдумчивое прочтение которых является залогом успешного выполнения как тестовых заданий, так и лабораторных работ.

9. Рекомендации "Чтo посмотреть?"

На страницах с названием "Чтo посмотреть?" содержатся ссылки на видео-материалы, служащие либо полезными иллюстрациями к материалу соответствующего раздела курса, либо излагающие дополнительные сведения, необходимые для понимания раздела, но выходящие за рамки курса.

10. Примеры прoграмм

В папках с таким названием содержатся исходные коды программ, которые рассматривались во время лекций и фрагментарно представлены на слайдах к лекциям соответствующих разделов. Используйте эти исходные коды для самостоятельной компиляции и [пошагового] выполнения программ, чтобы детально разобраться в их устройстве и принципах работы. Кроме того, исходные коды полезны в роли заготовки программ, решающих задачи, поставленные в лабораторных работах.

11. Экзамен проводится в письменном виде. Пример экзаменационного билета и пример его решения приводится на электронном ресурсе данного курса. Перед изложением нового материала каждой лекции рассматриваются задачи, которые входят в экзаменационные билеты.