Рабочая программа дисциплины Программирование и основы алгоритмизации (Наименование дисциплины)
Вид материала | Рабочая программа |
- Рабочая программа дисциплины Программирование и основы алгоритмизации (Наименование, 216.94kb.
- В. А. Давыденко программирование и основы алгоритмизации лабораторный практикум, 1951.1kb.
- Рабочая программа наименование дисциплины Объектно-ориентированное программирование, 207.39kb.
- Рабочая программа дисциплины Основы информатики Направление подготовки, 192.72kb.
- Рабочая программа по учебной дисциплине Основы электронной коммерции, оэк наименование, 744.36kb.
- Рабочая программа дисциплины сд. 07. 02. «Основы технологического развития производства», 199.77kb.
- Рабочая учебная программа дисциплины для студентов (Syllabus) Наименование дисциплины, 190.86kb.
- Рабочая программа дисциплины Основы теории управления (Наименование дисциплины), 164.42kb.
- Рабочая программа дисциплины Основы конструирования систем управления (Наименование, 142.46kb.
- Рабочая программа дисциплины Основы идентификации технических объектов управления (Наименование, 109.07kb.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ В Г. ТАГАНРОГЕ
(ТТИ Южного федерального университета)
Факультет автоматики и вычислительной техники
УТВЕРЖДАЮ
Декан ФАВТ ______________ Ю.М.Вишняков
"_____"__________________2011 г.
Рабочая программа дисциплины
Программирование и основы алгоритмизации
(Наименование дисциплины)
Направление подготовки
180800.62 «Корабельное вооружение»
Профили подготовки
«Системы управления морской техникой »
Квалификация (степень) выпускника
Бакалавр
Форма обучения
Очная
(очная, очно-заочная и др.)
г. Таганрог
2011
- Цели освоения дисциплины
Организация базовой бакалаврской подготовки, позволяющей всем выпускникам продолжить свое образование как с целью получения диплома бакаклавра в области автоматизированных управляющих комплексов морской техники и технических средств корабельного вооружения, так и с целью дальнейшего самосовершенствования.
Целями освоения дисциплины «Программирование и основы алгоритмизации» является формирование у студентов знаний об основных принципах алгоритмизации и теории алгоритмов, программе и программировании, а также формирование практических навыков создания прикладных программных продуктов на основе современных технологий программирования с использованием одного из наиболее распространенных алгоритмических языков, языка С++.
Изучение дисциплины «Программирование и основы алгоритмизации» является одной из важнейших составляющих в подготовке бакалавра поскольку основы алгоритмизации, создание программных приложений, с одной стороны, являются важной областью эффективного освоения и применения современных средств вычислительной техники, а с другой стороны, они служат основой для совершенствования существующих и создания новых современных систем автоматики и автоматизации. Поскольку в процессе обучения студент знакомится с современными программными средствами, используемыми при разработке, решении и описании поставленных задач в программировании, то при овладении этими навыками в достаточной степени его резюме заинтересует многих заказчиков. Изучение данной дисциплины будет способствовать достижению целей 2 и 3 ООП:
- Цель 2. Организация базовой бакалаврской подготовки, позволяющей всем выпускникам продолжить свое образование как с целью получения диплома магистра в области корабельных систем автоматизации и управления, так и с целью дальнейшего самосовершенствования.
- Цель 3. Удовлетворение потребностей общества в квалифицированных кадрах путем подготовки специалистов по проектированию, разработке и эксплуатации корабельных автоматизированных информационно-управляющих комплексов и информационно-управляющих систем.
2. Место дисциплины в структуре ООП бакалавриата по направлению подготовки 180800.62 «Корабельное вооружение».
Дисциплина «Программирование и основы алгоритмизации» относится к базовой части профессионального цикла. Для успешного обучения студенту понадобятся знания в области таких дисциплин, как "Математика", "Основы информатики (школьный курс)". Изучение дисциплины опирается на знания, получаемые студентами в ходе текущего обучения при изучении дисциплин «Информатика», «Математический анализ» и других. Результаты изучения курса «Программирование и основы алгоритмизации» используются в дальнейшем при изучении дисциплин «Информационные технологии», «Прикладное программирование в технических системах», «Объектно-ориентированное программирование», «Компьютерная графика и геометрические преобразования», «Автоматизированные судовые системы», «Автоматизированные управляющие комплексы», а также при изучении всех других дисциплин, использующих в процессе обучения средства вычислительной техники. Полученные знания и навыки могут широко применяться в процессе дипломного проектирования.
3. Компетенции обучающегося, формируемые в результате освоения дисциплины «Программирование и основы алгоритмизации»:
- использует основные законы естественнонаучных дисциплин в профессиональной деятельности, применяет методы математического анализа и моделирования, теоретического и экспериментального исследования (ОК-11);
- способен понимать сущность и значение информации в развитии современного информационного общества, сознавать опасности и угрозы, возникающие в этом процессе, соблюдать основные требования информационной безопасности, в том числе защиты государственной тайны (ОК-12);
- владеет основными методами, способами и средствами получения, хранения, переработки информации, имеет навыки работы с компьютером как средством управления информацией (ОК-13);
- готов участвовать в разработке средств морской оборонной техники (ПК-1);
- способен использовать информационные технологии при разработке проектов новых образцов морской оборонной техники (ПК-3).
В результате изучения дисциплины «Программирование и основы алгоритмизации» студенты должны:
- Знать: принципы программного управления компьютером, методы формального представления алгоритмов: язык блок-схем, структограммы, язык псевдокода; основные (типовые) алгоритмы обработки данных: рекурсия, сортировка, поиск; принципы структурного и модульного программирования с использованием операторов языка С/С++;
- Уметь: разрабатывать алгоритмы решения прикладных задач на основе типовых структур алгоритмов, на их основе разрабатывать прикладные программные продукты с помощью современных средств разработки и языков программирования с применением современных информационных технологий обработки данных (включая СУБД);
- Владеть: навыками работы с современными инструментариями разработки прикладных программных продуктах на базе современных язsrjd программирования;
4. Структура и содержание дисциплины «Программирование и основы алгоритмизации».
Общая трудоемкость дисциплины составляет 3 зачетных единиц 108 часа.
Вид учебной работы | Всего часов |
Общая трудоемкость дисциплины | 108/3 ЗЕТ |
Аудиторные занятия | 54 |
- лекции | 18 |
- практические занятия | 18 |
- лабораторные работы | 18 |
- другие виды аудиторных занятий | - |
Самостоятельная работа | 54 |
Курсовой проект (работа) | - |
Контроль самостоятельной работы | - |
Аттестация | Зачет (1 семестр) |
4.1. Разделы дисциплины и виды занятий
№ п/п | Раздел Дисциплины | Семестр | Неделя семестра | Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах) | Формы текущего контроля успеваемости (по неделям семестра) Форма промежуточной аттестации (по семестрам) | |||
лек | лаб | пр | СРС | |||||
| Хронология развития теории программирования | 4 | 1 | 2 | - | - | 3 | Собеседование |
| Программное управление ЭВМ | 4 | 3 | 2 | - | - | 3 | Собеседование, устный опрос |
| Формализованные способы описания алгоритмов | 4 | 1,3 | - | - | 4 | 6 | Индивидуальная домашняя работа, собеседования |
| Типовые алгоритмы | 4 | 5,7 | | 4 | 4 | 6 | Индивидуальная домашняя работа, собеседования |
| Базовые конструкции языка С/С++ | 4 | 5,7 | 4 | 4 | - | 9 | Собеседования, промежуточный тест/письменная контрольная работа |
| Механизмы работы с указателями | 4 | 9 | 2 | 2 | 2 | 3 | Собеседования |
| Массивы | 4 | 11,13 | 4 | 4 | 4 | 12 | Индивидуальная домашняя работа, собеседования |
| Строки | 4 | 15 | 1 | 2 | 2 | 3 | Собеседования |
| Функции | 4 | 15 | 1 | - | - | 3 | Собеседования |
| Типы данных, определяемые пользователем | 4 | 17 | 2 | 2 | 2 | 6 | Собеседования, промежуточный тест/письменная контрольная работа |
ИТОГО | 18 | 18 | 18 | 54 | |
4.2. Содержание разделов дисциплины
Раздел 1 Хронология развития теории программирования
Хронология развития языков программирования. Понятие алгоритма, программы и программирования. Понятие язык программирования. Классификация языков программирования. Особенности структурного программирования. Особенности модульного программирования. Особенности объектно-ориентированной программирования (ООП). Этапы разработки программного обеспечения. Перспективы развития.
Раздел 2 Программное управление ЭВМ
Понятие машинной команды. Механизм обработки машинных команд. Принципы трансляции (компилятор и интерпретатор).
Раздел 3. Формализованные способы описания алгоритмов
Понятие алгоритма. Свойства алгоритма. Оценка сложности алгоритмов. Формализованные методы представления алгоритмов: словесный алгоритм, блок-схема, структограммы, псевдокод.
Раздел 4. Типовые алгоритмы
Рекурсивные алгоритмы. Алгоритмы поиска. Алгоритмы сортировки. Оценка сложности алгоритмов
Раздел 5. Базовые конструкции языка С/С++
Базовые элементы языка программирования С/С++. Состав языка. Формализованное представление конструкций языка. Концепция типа данных в С и С++. Основные типы данных. Структура программы. Схема работы компилятора. Переменные и выражения. Основные операторы языка: оператор «выражение», операторы ветвления, операторы цикла, операторы передачи управления.
Раздел 6. Механизмы работы с указателями
Машинная реализация механизма работы с указателями. Синтаксис и типы указателей. Инициализация указателей. Динамические переменные. Операторы выделения и освобождения памяти. Операции с указателями. Арифметические операции с указателями. Ссылки.
Раздел 7. Массивы
Определение массива в Си/Си++. Обработка одномерных и многомерных массивов. Использование датчика случайных чисел для формирования массива. Псевдодинамические массивы. Динамические массивы. Сортировка массивов. Поиск. Указатели и доступ к элементам массивов.
Раздел 8. Строки
Определение строковых данных в Си/Си++. Обработка символьных данных. Строки и указатели.
Раздел 9. Функции
Объявление и определение функций. Функции и массивы. Передача строк в качестве параметров функции.
Раздел 10. Типы данных, определяемые пользователем
Переименование типов. Перечисления. Структуры. Использование массивов и указателей при формировании структур. Битовые поля. Объединения. Сложные модели данных (списки, деревья, очереди, стеки).
5. Образовательные технологии
Используется:
- – при чтении лекций – компьютерная и проекционная техника и презентации;
При этом основным аспектом изложения является разбор конкретных ситуаций прикладного характера на демонстрационных примерах;
- – при проведении практических и лабораторных занятий – интерактивная доска, пакеты прикладных программ (среда программирования С++Builder/Visual Studio);
6. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины и учебно-методическое обеспечение самостоятельной работы студентов
6.1. Лабораторные занятия
Лабораторная работа №1. «ПРОСТЕЙШИЕ ВЫЧИСЛЕНИЯ»; |
Лабораторная работа №2. «ОСНОВНЫЕ ОПЕРАТОРЫ ЯЗЫКА C++»; |
Лабораторная работа №3. «ВЫЧИСЛЕНИЕ ФУНКЦИЙ, ИХ СУММ И ПРОИЗВЕДЕНИЙ ПРИ ПОМОЩИ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ»; |
Лабораторная работа №4. «РАБОТА С МАССИВАМИ»; |
Лабораторная работа №5. «СТРУКТУРЫ В ЯЗЫКЕ С/С++»; |
6.2. Дидактические тесты рубежного контроля
Для оценки уровня теоретических и практических знаний используется тест или контрольный письменный опрос
Разделы 1-5
Перечень некоторых вопросов теста представлен ниже.
1.Какой из перечисленных операторов является оператором немедленной передачи управления в начало следующей итерации цикла?
1 if;
2 switch;
3 break;
4 continue.
2.Какой из перечисленных операторов является оператором немедленной передачи управления в начало следующей итерации цикла?
1 if;
2 switch;
3 break;
4 continue.
3. Если оператор continue встретится в операторе цикла, то:
1 он передает управление на начало следующей итерации цикла;
2 он передает управление на конец предыдущей итерации цикла;
3 он передает управление итерации цикла находящейся после метки;
4 ничего не произойдет.
4. Какой из перечисленных ниже циклов является бесконечным?
1 for (i=1;i>23;i++); printf("цикл ");
2 for (i=0;i>=1;i++); printf("цикл ");
3 for (i=10;i>6;i++); printf("цикл ");
4 for (i=5;i>15;i++); printf("цикл ");
5.Укажите порядок присваивания переменными числового значения, в выражении вида:
a=b=c=10;
1 a,b,c
2 c,b,a
3 b,c,a
4 c,a,b
В случае использования контрольного письменного опроса, студентам предлагается ответить на 4 вопроса ( 2 теоретических и 2 практических) с целью оценки полученных ими навыков. Пример вопросов контрольной работы за 1 модуль представлен ниже:
- Классы памяти в С/С++: auto, extern. Синтаксис. Назначение. Примеры.
- Операторы передачи управления. Назначение. Синтаксис. Примеры.
- Составить алгоритм в виде блок-схемы для решения следующей задачи:
- Вычислить значения выражений при заданных m=10; n=8 для следующей последовательности действий в программе. Записать окончательное значение параметров m и n после выполнения всей серии действий (1-3).
- --m-++n
- m*n
- n-- > m++
Контрольная работа проводится в течении 45 минут, группой студентов в отдельной лекционной аудитории по вариантам.
Разделы 6-10
1.По Вашему мнению, с точки зрения С++ верен ли приведенный код:
double A;
void main ()
{
int A;
A=5;
::A = 2.5;
}
1 код содержит синтаксическую ошибку;
2 код верный;
3 это код не на С/С++;
4 код неверный.
2. Алгоритм какого типа изображен на блок-схеме?
1. циклический;
2. разветвляющийся;
3. линейный;
4. комбинация развилки и цикла.
3. После исполнения фрагмента программы, изображенного на блок-схеме
при A = 5, B = 4 значение X будет равно
1. 20;
2. 9;
3. 5;
4. 4;
4. Следуещеий фрагмент программы описывает:
struct Options
{
bool centerX:1;
bool centerY:l;
unsigned int shadow:2;
unsigned int palette:4;
};
1. Структуру;
2. Объединение;
3. Перечисление;
4. Битовое поле;
5. После исполнения фрагмента программы, представленного ниже, переменная fa равна:
#include
int function (int a)
{ a++;
return a;
}
void main(void)
{ int fa=5;
function(fa);
cout<
}
1.5;
2. 4;
3. 6;
4. 0;
В случае использования контрольного письменного опроса, студентам предлагается ответить на 4 вопроса ( 2 теоретических и 2 практических) с целью оценки полученных ими навыков. Пример вопросов контрольной работы за 1 модуль представлен ниже:
- Многомерные массивы: синтаксис, особенности инициализации и использования. Указатели и доступ к элементам массивов через указатели (показать на примере).
- 2. Объединения (union): назначение, синтаксис, особенности использования. Примеры.
- 3. Сформировать одномерный массив вещественных чисел, используя ввод с клавиатуры.
- Отыскать в массиве элементы кратные 2 и заменить их на значение кратности.
- 4. Проверить является ли слово палиндромом. (Палиндром - это выражение (слово), которое читается одинакова слева направо и справа налево Например: ШАЛАШ или 12321).
6.3 Список контрольных вопросов по теоретической части курса
- Что такое алгоритм, программа, программирование?
- Какие основные этапы создания программного обеспечения Вы знаете? В чем их особенности?
- Каковы основные свойства алгоритма?
- Какие формализованные способы описания алгоритмов Вы знаете?
- Как оценить сложность алгоритма?
- Что такое рекурсивный алгоритм?
- Что такое сортировка? Какие алгоритмы сортировки Вы знаете?
- Что такое поиск? Какие алгоритмы поиска Вы знаете?
- Каковы особенности структурного, модульного и объектно-ориентированного программирования?
- В чем особенности структуры программы на C/С++?
- Каковы правила построения идентификаторов на C/С++?
- В чем состоит концепция типов данных языка C/С++?
- Каковы особенности операторов ветвления языка C/С++?
- Каковы особенности операторов цикла языка C/С++?
- Каковы особенности операторов передачи управления языка C/С++?
- Что такое указатель? Каковы особенности работы с указателями языка C/С++?
- В чем особенности операций над указателями?
- Что такое массив? Каковы особенности работы с массивами на языке C/С++ (псевдодинамические массивы, динамические массивы, использование датчика случайных чисел при задании массива)?
- В чем различие в передачи значений в качестве параметров функции «по значению» и «по ссылке»?
- В чем особенность представления и обработки строковых данных в языке C/С++?
- Каковы особенности работы со структурами?
- Что такое битовые поля?
- В чем особенность использования объединений.
- Какова суть модели списка, стека ?
- В чем суть модели бинарных деревьев при обработке данных?
________________________________________________________________________
(Указываются темы эссе, рефератов, курсовых работ и др. Приводятся контрольные вопросы и задания для проведения текущего контроля и промежуточной аттестации по итогам освоения дисциплины, а также для контроля самостоятельной работы обучающегося по отдельным разделам дисциплины).
7. Учебно-методическое и информационное обеспечение дисциплины «Программирование и основы алгоритмизации».
а) основная литература:
- С. В. Тицкий, Е. Ю. Косенко Программирование и основы алгоритмизации: для студ. спец. 220201; ТРТУ, Каф. САУ. - Таганрог: ТРТУ, 2004. - 224 с.: ил.
- С. В. Тицкий, Е. Ю. Косенко Практикум по программированию и основам алгоритмизации; ТРТУ, Каф. САУ. - Таганрог: ТРТУ, 2005. - 140 с. - Библиогр.: с.139. - б/ц.
- Е.Ю.Косенко, Е.С. Никул. Программирование и основы алгоритмизации. Практикум: Учебное поcобие. - Таганрог: Изд-во Технологического института ЮФУ, 2008 - 242 с.
- В. В. Подбельский Программирование на языке Си: учеб. пособие для вузов / - М.: Финансы и статистика, 2008. - 560 с.: ил.
- В. В. Подбельский Стандартный Си++ / - М.: Финансы и статистика, 2008. - 687 с.: ил. - Библиогр.
б) дополнительная литература:
- Б. И. Березин, С. Б. Березин. Начальный курс C и C++. - М.: Диалог-МИФИ, 2008. - 288 с. - ISBN 5-86404-075-4
- Цехоня В.И. Основы программирования на языках высокого уровня Pascal и C. - Таганрог : Изд-во ТТИ ЮФУ, 2008. - 175 с.
- Кнут Д. Искусство программирования, 13 т., Изд. дом «Вильямс», 2000.
- Вирт Н. Алгоритмы и структуры данных, Мир, 1989.
в) программное обеспечение и Интернет-ресурсы
1. ru/programming/ Библиотека on-line
2. ссылка скрыта Программирование, статьи, документация по C/C++, Форумы по программированию, исходники.
3. ссылка скрыта Сайт "Программирование в Borland C++ Builder" предназначен для программистов, работающих в среде программирования Borland C++ Builder.
4. ссылка скрыта Сайт, посвященный программированию на Visual C++.
8. Материально-техническое обеспечение дисциплины
Среды программирования: Borland С++ Builder; Visual Studio.
В лаборатории информационных технологий имеется 9 рабочих мест, оборудованных современными персональными компьютерами и программным обеспечением.
Программа составлена в соответствии с требованиями ФГОС ВПО с учетом рекомендаций и ПрООП ВПО по направлению и профилю подготовки 180800.62 «Корабельное вооружение», профиль подготовки «Системы управления морской техникой»
Автор: ___________________ Косенко Е.Ю., к.т.н., доцент каф. САУ
(подпись)
д.т.н., профессор
Зав. кафедрой САУ _______________ В.И. Финаев
(подпись)
Программа одобрена на заседании УМК ФАВТ от 20.01.2011 года, протокол № 1.