Учебная программа дисциплины "Основы программирования".

Рекомендуется для направления (ий) подготовки (специальности (ей))

01.03.02 Прикладная математика и информатика

Квалификация (степень) выпускника: Бакалавр

(указывается квалификация (степень) выпускника в соответствии с ФГОС)

1. Цели и задачи дисциплины: Студент должен приобрести практические навыки самостоятельной постановки и решения задач на компьютере, понимать важность разработки эффективного алгоритма и выбора подходящих структур данных для решения поставленной задачи, знать программирование типовых алгоритмов и уметь ими пользоваться. Знать основы языка программирования Си.__________________

2. Место дисциплины в структуре ООП: студент должен обладать знаниями основ информатики и программирования на одном из структурных языков программирования, уметь использовать компьютерную технику, обладать следующими общекультурными компетенциями: способностью работать с информацией в глобальных компьютерный сетях (ОК-12), способностью использовать в научной и познавательной деятельности, а также в социальной сфере профессиональные навыки работы с информационными и компьютерными технологиями (ОК-14).________________

(указывается цикл, к которому относится дисциплина; формулируются требования к входным знаниям, умениям и компетенциям студента, необходимым для ее изучения; определяются дисциплины, для которых данная дисциплина является предшествующей)

3. Требования к результатам освоения дисциплины:

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

НЕ нашли? Не то? Что вы ищете?

Способность решать задачи производственной и технологической деятельности на профессиональном уровне, включая: разработку алгоритмических и программных решений в области системного и прикладного программирования (ПК-9), способность применять в профессиональной деятельности современные языки программирования, операционные системы, электронные библиотеки и пакеты программ (ПК-10)______________________________________________________________________

(указываются в соответствии с ФГОС ВПО)

В результате изучения дисциплины студент должен:

Знать: теоретические основы программирования на языке Си.

Уметь: самостоятельно ставить и решать с помощью компьютера

задачи по текущим профильным дисциплинам.

Владеть: навыками работы в средах программирования Geany и Dev-C++.

4. Объем дисциплины и виды учебной работы

Общая трудоемкость дисциплины составляет ____4_______ зачетных единиц.

Вид учебной работы

Всего часов

Семестры

1

2

3

4

Аудиторные занятия (всего)

68

68

В том числе:

-

-

-

-

-

Лекции

17

17

Практические занятия (ПЗ)

Семинары (С)

Лабораторные работы (ЛР)

51

51

Самостоятельная работа (всего)

76

76

В том числе:

-

-

-

-

-

Курсовой проект (работа)

Расчетно-графические работы

Реферат

Другие виды самостоятельной работы

76

76

Вид промежуточной аттестации (зачет, экзамен)

Общая трудоёмкость, час

144

144

Зач. ед.

  4

  4

5. Содержание дисциплины

5.1. Содержание разделов дисциплины

№ п/п

Наименование раздела дисциплины

Содержание раздела

1.

Базовые средства программирования

Составление простейшей программы в среде программирования Geany или Dev-C++. Синтаксис и семантика языка Си (алфавит, идентификаторы, константы, переменные, основные простые типы данных, операции над данными, приоритеты и порядок (направление) выполнения операций). Операторы языка Си (арифметическое выражение, простого присваивания, перехода, условный, переключатель, циклы, составные). Программирование линейных, альтернативных и циклических управляющих конструкций. Массивы и строки. Указатели, их назначение, операции над указателями. Указатели и массивы. Использование различных типов цикла для работы с массивами и строками. Программирование типовых алгоритмов. Накопление сумм, произведений, нахождение наибольшего и наименьшего значений в массиве, вычисление среднего и дисперсии, программирование рекуррентных формул, приближенное вычисление сумм сходящихся числовых рядов. Применение схемы Горнера для вычисления значений полинома, реализация методов сортировки элементов массива (метод пузырька, метод выбора). Интерполяционный полином Лагранжа.

2.

Модульное программирование

Функции. Объявление и определение функций. Назначение, способы передачи параметров. Указатели в параметрах функции. функции. Массивы и строки как параметры функций. Указатели на функции как параметры. Указатель на функцию как возвращаемое функцией значение. Рекурсивные функции. Перегрузка функций. Шаблоны функций. Файлы, их типы. Функции файлового ввода-вывода. Классы памяти и организация программ. Области действия и пространства имён.

3.

Структуры и объединения

Производный тип данных структура. Структуры, массивы и указатели. Структуры и функции. Выделение и освобождение динамической памяти. Динамические структуры данных. Линейные списки. Стеки. Очереди. Бинарные деревья. Реализация динамических структур с помощью массивов. Объединения.

(Содержание указывается в дидактических единицах. По усмотрению разработчиков материал может излагаться не в форме таблицы)

5.2 Разделы дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами

№ п/п

Наименование обеспе-чиваемых (последую-щих) дисциплин

1

2

3

1.

Технология программирования

+

+

+

  2.

Линейное программирование

  +

  +

  +

  3.

Системы компьютерной алгебры и пакеты математических вычислений

  +

+

+

5.3. Разделы дисциплин и виды занятий

№ п/п

Наименование раздела дисциплины

Лекц.

Лаб.

зан.

СРС

Все-го

час.

1.

Базовые средства программирования

10

30

38

78

2.

Модульное программирование

4

10

20

34

3.

Структуры и объединения

3

11

18

32

6. Лабораторные занятия

№ раздела дисциплины

Тематика лабораторных работ

Трудо-емкость

(час.)

1

Составление блок-схем для решения задач. Написание простейших программ для компьютера на языке С. Знакомство с форматированным вводом-выводом данных. Набор, компиляция и прогон программ в средах разработки Geany. Составление программ с использованием различного типа данных, с вводом данных с клавиатуры и выводом данных на экран. Программирование арифметических и логических выражений с использованием стандартных математических функций. Программирование альтернативных и циклических алгоритмических структур. Использование различных типов цикла для работы с массивами и строками. Нахождение наибольшего и наименьшего элементов в массиве. Вычисление среднего и дисперсии. Использование в циклах операторов break, continue.  Вычисление  рекуррентных формул, приближённое вычисление сумм сходящихся числовых рядов, вычисление значений полинома по схеме Горнера. Примеры использования типовых алгоритмов: сортировка выбором, применения интерполяционного полинома Лагранжа.

25

2

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

25

3

Составление программы с инициализацией структуры и выводом значений её элементов. Решение задачи о центре масс системы материальных точек с применением массива структур. Рассмотрение программ с операциями над указателями на структуры. Примеры с реализацией функций, возвращающей структуру и использующую структуру в качестве параметра.  Демонстрация выделения и освобождения динамической памяти. Формирование однонаправленного связного списка. Составление программы использующей объединение.

18

7. Практические занятия (семинары)

№ п/п

№ раздела дисциплины

Тематика практических занятий (семинаров)

Трудо-емкость

(час.)

1.

2.

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

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

1. Программирование на языке Си. М.: «Финансы и статистика», 2006.

2. С/С++. Программирование на языке высокого уровня. СПб., Питер, 2006, 2013.

, , Задачи по программированию. Часть 1. – М.: РУДН, 2012, – 60 с.

б) дополнительная литература

1. зык программирования C. — Москва: Вильямс, 2015. - 304 с.

2.   труктуры данных и алгоритмы. М., изд. Вильямс, 2003.

, , Программирование на С и С++. Практикум: Учеб. пособие для вузов. – М.: Горячая линия – Телеком, 2000. – 344 с. Программирование на языках Си и Си++ . Минск: Высш. школа, 1996. – 240 с. С &С++. Правила программирования. М.: БИНОМ, 1996. – 272 с. , Язык программирования Си для персонального компьютера. М: Радио и связь, 1990. – 384 с

7. зык программирования Си. Задачи по языку Си. — Москва: Финансы и статистика, 1985. — 279 с.

в) программное обеспечение компилятор с языков С/С++

г) базы данных, информационно-справочные и поисковые системы___________________

____________________________________________________________________________

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

программным обеспечением, со средами разработки Geany и Dev-C++ и с выходом в локальную

сеть и глобальную сеть Интернет.

11. Методические рекомендации по организации изучения дисциплины:

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

(указываются рекомендуемые модули внутри дисциплины или междисциплинарные модули, в состав которых она может входить, образовательные технологии, а также примеры оценочных средств для текущего контроля успеваемости и промежуточной аттестации)

_____________________________________________________________________________

Лектор