Первая страница
Наша команда
Контакты
О нас

    Главная страница


Рабочая программа дисциплины Информатика и программирование Направление подготовки бакалавриата




страница1/4
Дата20.05.2017
Размер0.52 Mb.
ТипРабочая программа
  1   2   3   4
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

ФГБОУ ВО «СГУ имени Н.Г. Чернышевского»
Факультет компьютерных наук и информационных технологий

УТВЕРЖДАЮ

___________________________

"__" __________________20__ г.


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

Информатика и программирование

Направление подготовки бакалавриата

02.03.03 Математическое обеспечение и администрирование

информационных систем

Профиль подготовки

Параллельное программирование

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


Бакалавр

Форма обучения

очная

Саратов,


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

Целями освоения дисциплины Информатика и программирование являются:



  • освоение и систематизация знаний, относящихся к математическим объектам информатики; построению математических и алгоритмических моделей таких объектов и процессов;

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

  • знакомство с архитектурой ЭВМ, принципами и технологиями программирования, теорией алгоритмов, и разработкой программ с помощью языков программирования как высокого, так и низкого уровня.

  • овладение умениями строить математические объекты информатики, в том числе логические формулы и программы на формальном языке, удовлетворяющие заданному описанию; создавать программы на языке программирования по их описанию;

  • развитие алгоритмического мышления, способностей к формализации, элементов системного мышления;

  • изучение технологий разработки архитектуры, алгоритмических и программных решений системного и прикладного программного обеспечения;

  • изучение языков программирования, алгоритмов, библиотек и пакетов программ, продуктов системного и прикладного программного обеспечения;

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

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


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

Дисциплина «Информатика и программирование» относится к базовой части блока «Дисциплины» - Б1.Б.17. Для освоения данной дисциплины обучающийся должен владеть основами компьютерной грамотности в объёме школьной программы: основами работы с операционной системой Windows, приложениями Microsoft Office и навыками работы в Интернет. Курс «Информатика и программирование» является вводным и основополагающим для дисциплин компьютерного цикла, определенных стандартом министерства высшего и профессионального образования России для выпускников направления «Математическое моделирование и администрирование информационных систем».

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

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

Этот курс для студентов факультета компьютерных наук и информационных технологий обеспечивается кафедрой информатики и программирования.

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



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

1. ОПК-3 - готовностью анализировать проблемы и направления развития технологий программирования. В результате освоения дисциплины «Информатика и программирование» обучаемый должен:

Знать: основные понятия технологий программирования: структурный подход, объектно-ориентированный подход, функциональное программирование, логическое программирование, основные проблемы и направления развития технологий программирования.

Уметь: анализировать проблемы и направления развития технологий программирования.

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

2. ПК-6 - способностью формировать суждения о проблемах современной информатики, ее категорий и связей с другими научными дисциплинами. В результате освоения дисциплины «Информатика и программирование» обучаемый должен:

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

Уметь: анализировать направления развития теоретических и технических средств информатики; искать, собирать, систематизировать и использовать научную информацию в профессиональной деятельности; использовать математические методы и средства обработки информации.

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

ПК-7 - владением знаниями о содержании, основных этапов и тенденций развития программирования, математического обеспечения и информационных технологий. В результате освоения дисциплины обучаемый должен:

Знать: проблемы и направления развития программных средств; основные принципы модульного, структурного и объектно-ориентированного программирования.

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

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

Знать:


• основные понятия информатики и информации, информационных систем, кодирования информации.

• понятия алгоритма: интуитивного и формализованных, связанных с понятиями рекурсивных функций, машин Тьюринга, нормальных алгоритмов Маркова.

• понятия формального языка и метаязыка, способы строгого описания формальных языков.

• основные принципы и стили программирования, основы тестирования и верификации программ.

• структуры и типы данных для представления информации.

• абстрактные структуры данных, их представление в ЭВМ и использование при решении конкретных задач;

• понятие временной сложности и времени выполнения. Основные правила анализа программ;

• управляющие структуры языков программирования высокого уровня;

• методы и алгоритмы сортировки данных;

• основные принципы модульного, структурного и объектно-ориентированного программирования.

• математические основы информатики как науки;

• проблемы современной информатики, ее категории и связи с другими научными дисциплинами;

• содержание, основных этапов и тенденций развития программирования, математического обеспечения и информационных технологий;

• проблемы и направления развития технологий программирования;

• способы и средства обеспечения надежного функционирования средств ИКТ;

• нормы информационной этики и права, информационной безопасности, принципы обеспечения информационной безопасности;

Уметь:

• понять поставленную задачу и формулировать результат.



• грамотно пользоваться языком предметной области, самостоятельно разрабатывать алгоритмы и их анализировать.

• представлять информацию в виде, удобном для ее обработки с помощью ЭВМ, представлять числовую информацию в различных позиционных системах счисления.

• описывать основные управляющие структуры языка программирования с помощью БНФ-нотации и синтаксических диаграмм.

• записать правила вывода для основных управляющих структур языка программирования.

• формализовать задачу и разработать эффективный алгоритм ее решения.

• представлять алгоритм с помощью словесного описания, блок-схем или псевдокода.

• оптимально использовать средства языка высокого уровня для решения практических задач.

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

• применять принципы модульного, структурного и объектно-ориентированного программирования.

• решать типовые задачи числового и нечислового характера.

Владеть навыками:

• поиска и отбора информации, в частности, относящейся к личным познавательным интересам, связанной с самообразованием и профессиональной ориентацией;

• реализации методов сортировок, оценки времени их выполнения, сравнительного анализа;

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

• подготовки и проведения выступления, участия в коллективном обсуждении, фиксации его хода и результатов;

• личного и коллективного общения с использованием современных программных и аппаратных средств коммуникаций;



• соблюдения требований информационной безопасности, информационной этики и права.

4. Структура и содержание дисциплины «Информатика и программирование»

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



п/п

Раздел дисциплины

Семестр

Неделя семестра

Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах)

Лек Лаб Прак Сам р-та

Формы текущего контроля успеваемости (по неделям семестра)

Форма промежуточной аттестации (по семестрам)

1

Понятия алгоритма: интуитивное и формализованные.

1

1 - 2

4

2

1

6

Тестирование и контрольная работа в интерактивном режиме с использованием портала school.sgu.ru

2

Понятие формального языка, описание языков программирования.

1

3

2




1

4

Собеседование, опрос, реферат

3

  1. Понятия спецификации и корректности программы.




1

4 – 6

6

2

1

10

Опрос, выполнение собеседование, реферат

4

  1. Программирование на языках высокого уровня.




1

7 – 8

4

4

2

6

Опрос, и выполнение заданий из портала school.sgu.ru, реферат.

5

Программирование на языке высокого уровня: стандартные типы данных; представление основных управляющих структур.

1

9 – 11

6

10

4

10

Опрос, обсуждение, и выполнение заданий из портала school.sgu.ru

6

Типы данных, определяемые пользователем, сложные типы данных.

1

12 – 14

6

10

5

14

Опрос, обсуждение, и выполнение заданий из портала school.sgu.ru

Контрольная работа.



7

Понятие подпрограммы, функции и процедуры: описание и использование; рекурсивные функции, шаблоны функций.

1

15 – 18

8

8

4

13

Опрос, обсуждение, и выполнение заданий из портала school.sgu.ru, контрольная работа.

9

Время выполнения программ. Асимтотические соотношения. Правила анализа программ.

2

1-4

8

8




10

Опрос


10

Алгоритмы сортировок

2

5-8

8

8

10

8

Опрос, реферат

14

Динамические структуры данных; списки: основные виды и способы реализации;

2

9 - 12

8

8

12

10

Выполнение индивидуальных заданий в режиме on-line и самостоятельной работы, контрольная работа.

15

Современные методологии разработки программ.

Структурный подход в программировании. Основы объектно-ориентированного программирования.



2

13 - 16

8

8

10

9

Выполнение индивидуальных заданий в режиме on-line и самостоятельной работы, контрольная работа




Итого

1 семестр

198

36

36

18

63

Зачет и экзамен

45







2 семестр

162

32

32

16

37

Зачет и экзамен 45


Содержание учебной дисциплины

Понятия алгоритма: интуитивное и формализованные. История возникновения и развития понятия алгоритма. Интуитивное понятие алгоритма, типы алгоритмов, свойства алгоритмов и способы их записи. Алгоритмически разрешимые и неразрешимые задачи. Формализованные понятия алгоритма: рекурсивные функции, машины Тьюринга, системы текстовых замен, нормальные алгоритмы Маркова. Вычислимые функции, рекурсивные функции, понятие алгоритма как сопутствующего рекурсивной функции. Понятие об исполнителе алгоритмов. Машина Тьюринга, тезис Тьюринга и понятие алгоритмической неразрешимости.

Понятие формального языка, описание языков программирования. Естественные и формальные языки, синтаксис и семантика формальных языков, примеры формальных языков. Способы описания языков программирования, метасинтаксические и метасемантические языки. Описание синтаксиса языка с помощью металингвистических формул (БНФ-нотация) и с помощью синтаксических диаграмм.

Понятия спецификации и корректности программы.

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



Программирование на языках высокого уровня.

История развития и классификация языков программирования (ЯП): машинные, машинно-ориентированные и машинно-независимые. Методы разработки алгоритмов и программ: программирование функциональное, структурное, объектно-ориентированное. ЯП аппликативные (функциональные), продукционные (логические), императивные (процедурные), характеристики некоторых императивных языков, примеры программ. Классификация данных, атрибуты данных и средства их описания. Понятие типа данных, вычислительные структуры, характеристики, связанные с типом (класс значений, множество операций). Эквивалентность и совместимость типов, совместимость по присваиванию.



Программирование на языке высокого уровня; стандартные типы данных; представление основных управляющих структур. Структура программы на С/С . Стандартные типы данных в традиционных процедурных языках программирования. Операторный базис традиционных ЯП. Описания величин: область действия и область видимости, класс памяти. Операторы языка С/С , операторы простые, составные и структурные. Типы данных, создаваемые пользователем. Указатели и работа с указателями.

Типы данных, определяемые пользователем, сложные типы данных. Массивы – одномерные и двумерные, статические и динамические, работа с массивами. Строковый тип данных в С и С , стандартные функции для работы со строками в С и С , строка, как массив символов, особенности работы. Ввод и вывод строковых величин, работа со строками. Структурный тип данных в С и С , описание величин строкового типа и работа с полями-данными. Объединения, описание и использование, отличия объединений от структур. Неименованные объединения, экономия памяти. Файлы последовательного и прямого доступа к данным, текстовые и бинарные файлы, функции для работы с файлами, файловый ввод и вывод.

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

Время выполнения программ. Асимтотические соотношения. Правила анализа программ.

Анализ и сравнение алгоритмов, основные характеристики. Понятие временной сложности или времени выполнения. Степень роста функции, асимтотические соотношения. Основные правила анализа программ.



Алгоритмы сортировок

Сортировка: основные понятия. Простые алгоритмы сортировки: "пузырек", выбор, вставка. Реализация, оценка времени выполнения, сравнительный анализ. Сортировка Хоара. Проблема выбора опорного элемента. Оценка времени выполнения. Пирамидальная сортировка. Оценка времени выполнения. Анализ сортировок "сравнениями". Сортировки за линейное время.



Динамические структуры данных, их описание и использование.

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



Структурный подход в программировании. Объектно-ориентированное программирование на С .

Объектно-ориентированное программирование: инкапсуляция, наследование и полиморфизм. Понятие объекта, его состояние и поведение, классы, определение класса и объявление класса. Статические, дружественные и виртуальные поля и методы, особенности их использования. Абстрактные классы, их назначение и использование. Понятие области видимости: общие, личные, защищенные и опубликованные поля и методы объекта. Перегрузка методов. Конструкторы и деструкторы, их назначение и использование.

  1   2   3   4

  • Рабочая программа дисциплины
  • 1. Цели освоения дисциплины
  • 2. Место дисциплины в структуре ООП
  • 3. Компетенции обучающегося, формируемые в результате освоения дисциплины.
  • 4. Структура и содержание дисциплины «Информатика и программирование» Общая трудоемкость дисциплины составляет 10 зачетных единиц 360 часа.
  • Формы текущего контроля успеваемости (по неделям семестра) Форма промежуточной аттестации (по семестрам)
  • Итого 1 семестр
  • Содержание учебной дисциплины Понятия алгоритма: интуитивное и формализованные.
  • Понятие формального языка, описание языков программирования.
  • Понятия спецификации и корректности программы.
  • Программирование на языках высокого уровня.
  • Программирование на языке высокого уровня; стандартные типы данных; представление основных управляющих структур
  • Типы данных, определяемые пользователем, сложные типы данных.
  • Понятие подпрограммы, функции и процедуры: описание и использование; рекурсивные функции, шаблоны функций.
  • Время выполнения программ. Асимтотические соотношения. Правила анализа программ.
  • Динамические структуры данных, их описание и использование.
  • Структурный подход в программировании. Объектно-ориентированное программирование на С++.