Персональные инструменты

Дисциплины:Программирование и основы алгоритмизации — различия между версиями

Материал из Кафедра Автоматики и телемеханики

Перейти к: навигация, поиск
 
(не показана одна промежуточная версия этого же участника)
Строка 1: Строка 1:
 
{{Дисциплина
 
{{Дисциплина
|Предназначена для=
+
|Предназначена для=* Направление:220200.62 "Автоматизация и управление"
* Направление:220200.62 "Автоматизация и управление"
+
* Специальность:220201.65 "Управление и информатика в технических системах"
* [[Специальность:220201.65 "Управление и информатика в технических системах"]]
+
|Базируется на дисциплин(е,ах)=* Информатика
|Базируется на дисциплин(е,ах)=
+
|Является базовой для дисциплин(ы)=* Технические средства автоматизации и управления
* Информатика
+
|Является базовой для дисциплин(ы)=
+
* Технические средства автоматизации и управления
+
 
* Микропроцессорные средства и системы управления
 
* Микропроцессорные средства и системы управления
 
* Системное программное обеспечение
 
* Системное программное обеспечение
 
* Информационное обеспечение систем управления
 
* Информационное обеспечение систем управления
|Преподавател(ь,и)=
+
|Преподавател(ь,и)=* Кавалеров, Максим Владимирович
* Кавалеров, Максим Владимирович
+
|Лаборатори(я,и)={{Лаборатории:Оформление|Системы автоматизации и управления|315|Учебная}}
|Цель изучения дисциплины=
+
|Цель изучения дисциплины=формирование комплекса знаний о базовых принципах алгоритмизации и программирования применительно к алгоритмическим языкам высокого уровня
формирование комплекса знаний о базовых принципах алгоритмизации и программирования применительно к алгоритмическим языкам высокого уровня
+
|Общая информация=В настоящее время при построении систем автоматизации и управления все больший удельный вес занимает проектирование алгоритмов (алгоритмизация) и разработка программного обеспечения (программирование). Поэтому очень важно научиться основным принципам программирования и алгоритмизации, для начала, применительно к алгоритмическим языкам высокого уровня.
|Общая информация=
+
В настоящее время при построении систем автоматизации и управления все больший удельный вес занимает проектирование алгоритмов (алгоритмизация) и разработка программного обеспечения (программирование). Поэтому очень важно научиться основным принципам программирования и алгоритмизации, для начала, применительно к алгоритмическим языкам высокого уровня.
+
  
 
Используя эти сведения, студент в дальнейшем в ходе изучении дисциплин "[[Дисциплины:Технические средства автоматизации и управления|Технические средства автоматизации и управления]]", "[[Дисциплины:Микропроцессорные средства и системы управления|Микропроцессорные средства и системы управления]]" сможет перейти непосредственно к освоению особенностей программирования контроллеров и разработки программного обеспечения верхнего уровня систем автоматизации и управления. При изучении дисциплины "[[Дисциплины:Системное программное обеспечение|Системное программное обеспечение]]", "[[Дисциплины:Информационное обеспечение систем управления|Информационное обеспечение систем управления]]" также пригодятся знания об основах программирования и алгоритмизации.
 
Используя эти сведения, студент в дальнейшем в ходе изучении дисциплин "[[Дисциплины:Технические средства автоматизации и управления|Технические средства автоматизации и управления]]", "[[Дисциплины:Микропроцессорные средства и системы управления|Микропроцессорные средства и системы управления]]" сможет перейти непосредственно к освоению особенностей программирования контроллеров и разработки программного обеспечения верхнего уровня систем автоматизации и управления. При изучении дисциплины "[[Дисциплины:Системное программное обеспечение|Системное программное обеспечение]]", "[[Дисциплины:Информационное обеспечение систем управления|Информационное обеспечение систем управления]]" также пригодятся знания об основах программирования и алгоритмизации.
Строка 26: Строка 21:
 
{{!}}[[Файл:TIOBE Programming Community Index for October 2011.png|мини|120пкс|Индекс TIOBE за октябрь 2011 года]]
 
{{!}}[[Файл:TIOBE Programming Community Index for October 2011.png|мини|120пкс|Индекс TIOBE за октябрь 2011 года]]
 
{{!}}[[Файл:TIOBE Programming Community Index.png|мини|120пкс|Изменения индекса TIOBE за несколько лет]]
 
{{!}}[[Файл:TIOBE Programming Community Index.png|мини|120пкс|Изменения индекса TIOBE за несколько лет]]
{{!}}[[Файл:Job Trends from Indeed.com - August 2011.gif|мини|справа|120пкс|Изменение предложений работы по языкам программирования]]
+
{{!}}[[Файл:Job Trends from Indeed.com - August 2011.gif|мини|справа|120пкс|Тенденции предложений работы по языкам программирования]]
 
{{!}}}
 
{{!}}}
  
Строка 34: Строка 29:
 
# Языки C и C++ - это одни из самых популярных языков программирования. Действительно, согласно индексу TIOBE<ref>[http://www.tiobe.com/content/paperinfo/tpci/index.html TIOBE Programming Community Index for October 2011]</ref> языки C и С++ уверенно занимают 2-е и 3-е место в рейтинге. При этом язык С почти на одном уровне с 1-м местом, которое занимает язык Java. И что важно, в целом, эта тенденция сохраняется на протяжении 10 лет. Время от времени, язык C даже выходит на первое место. Можно также обратиться к рейтингу сайта [http://www.indeed.com/jobtrends indeed.com], который определяется по предложениям о приеме на работу, где указываются требования знания языков программирования. В августе 2011 года язык C++ занимал<ref>[http://regulargeek.com/2011/08/03/traditional-programming-language-job-trends-august-2011/ Traditional Programming Language Job Trends – August 2011]</ref> третье место среди языков Java, C++, C#, Objective C, Perl, Visual Basic. В этой группе языков отсутствует язык C, скорее всего, из-за сложности формирования правильного запроса именно для этого языка.{{-}}
 
# Языки C и C++ - это одни из самых популярных языков программирования. Действительно, согласно индексу TIOBE<ref>[http://www.tiobe.com/content/paperinfo/tpci/index.html TIOBE Programming Community Index for October 2011]</ref> языки C и С++ уверенно занимают 2-е и 3-е место в рейтинге. При этом язык С почти на одном уровне с 1-м местом, которое занимает язык Java. И что важно, в целом, эта тенденция сохраняется на протяжении 10 лет. Время от времени, язык C даже выходит на первое место. Можно также обратиться к рейтингу сайта [http://www.indeed.com/jobtrends indeed.com], который определяется по предложениям о приеме на работу, где указываются требования знания языков программирования. В августе 2011 года язык C++ занимал<ref>[http://regulargeek.com/2011/08/03/traditional-programming-language-job-trends-august-2011/ Traditional Programming Language Job Trends – August 2011]</ref> третье место среди языков Java, C++, C#, Objective C, Perl, Visual Basic. В этой группе языков отсутствует язык C, скорее всего, из-за сложности формирования правильного запроса именно для этого языка.{{-}}
  
== Используемые программные средства ==
+
== Используемое программное обеспечение ==
[[Файл:CodeBlocks.png|мини|справа|120пкс|Пример программы в среде CodeBlocks]]
+
[[Файл:CodeBlocks.png|мини|справа|120пкс|Пример программы в среде Code<nowiki>::</nowiki>Blocks]]
 
В качестве среды разработки используется интегрированная программная среда [http://ru.wikipedia.org/wiki/Code::Blocks Code::Blocks]. К основным преимуществам Code::Blocks относятся:
 
В качестве среды разработки используется интегрированная программная среда [http://ru.wikipedia.org/wiki/Code::Blocks Code::Blocks]. К основным преимуществам Code::Blocks относятся:
 
* свободная лицензия [http://www.codeblocks.org/license/3 GPL v3.0], в частности, разрешается бесплатное распространение и использование;
 
* свободная лицензия [http://www.codeblocks.org/license/3 GPL v3.0], в частности, разрешается бесплатное распространение и использование;
Строка 48: Строка 43:
 
# ''Режим наблюдения''. Преподаватель видит изображения на мониторах студентов.
 
# ''Режим наблюдения''. Преподаватель видит изображения на мониторах студентов.
 
# ''Режим удаленного управления''. Преподаватель может перехватывать управление компьютером студента. В этом режиме удобно вносить коррективы в действия студентов и помогать им в решении тех или иных практических задач, которые могут возникать в ходе выполнения учебных заданий.{{-}}
 
# ''Режим удаленного управления''. Преподаватель может перехватывать управление компьютером студента. В этом режиме удобно вносить коррективы в действия студентов и помогать им в решении тех или иных практических задач, которые могут возникать в ходе выполнения учебных заданий.{{-}}
 
+
|Литература и учебные материалы=# Давыдов В.Г. Программирование и основы алгоритмизации: учебное пособие для вузов. – М.: Высш. шк., 2005.— 448 с.: ил.
|Литература=
+
# Давыдов В.Г. Программирование и основы алгоритмизации: учебное пособие для вузов. – М.: Высш. шк., 2005.— 448 с.: ил.
+
 
# Давыдов В.Г. Программирование и основы алгоритмизации: учебное пособие для вузов. – М.: Высш. шк., 2003.— 448 с.: ил.
 
# Давыдов В.Г. Программирование и основы алгоритмизации: учебное пособие для вузов. – М.: Высш. шк., 2003.— 448 с.: ил.
 
# Керниган Б., Ритчи Д. Язык программирования С: пер. с англ. – М.: Вильямс, 2006 .— 289 с.: ил.
 
# Керниган Б., Ритчи Д. Язык программирования С: пер. с англ. – М.: Вильямс, 2006 .— 289 с.: ил.
Строка 58: Строка 51:
 
# Шилдт Г. Полный справочник по C++: Пер. с англ. – М.: Вильямс, 2003 .— 796 с.
 
# Шилдт Г. Полный справочник по C++: Пер. с англ. – М.: Вильямс, 2003 .— 796 с.
 
# Дейтел Х.М, Дейтел П.Д. Как программировать на С: пер. с англ. – М.: БИНОМ, 2006.— 908 с.: ил.
 
# Дейтел Х.М, Дейтел П.Д. Как программировать на С: пер. с англ. – М.: БИНОМ, 2006.— 908 с.: ил.
 
+
# [[Учебные материалы:Языки программирования C и C++]]
 
|Название раздела примечаний=Примечания
 
|Название раздела примечаний=Примечания
 
}}
 
}}

Текущая версия на 00:30, 23 января 2012

Дисциплина "Программирование и основы алгоритмизации"

Базируется на дисциплине:

Является базовой для дисциплин:

Преподаватель:

Учебная лаборатория:

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

Общая информация

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

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

В качестве базовых языков высокого уровня при изучении дисциплины используются языки программирования C и C++.

Почему выбраны языки C и C++?

Индекс TIOBE за октябрь 2011 года
Изменения индекса TIOBE за несколько лет
Тенденции предложений работы по языкам программирования
  1. Язык C является достаточно низкоуровневым, хотя и относится к классу языков высокого уровня. В частности, это проявляется в том, что он является, пожалуй, самым популярным языком системного программирования. Например, с помощью него обычно создаются драйверы устройств, что часто бывает необходимым в случае разработки нового технического устройства или при подключении нестандартного устройства. И подобные ситуации нередко возникают при разработке системы автоматизации и управления.
  2. Во многих SCADA-пакетах в качестве встроенных языков программирования используются языки, очень похожие на язык C.
  3. Язык C++ удобен для разработки программного обеспечения верхнего уровня, в частности, для разработки графического интерфейса с пользователем. Например, свободный и кроссплатформенный фреймворк Qt имеет в своей основе именно язык C++.
  4. Языки C и C++ - это одни из самых популярных языков программирования. Действительно, согласно индексу TIOBE[1] языки C и С++ уверенно занимают 2-е и 3-е место в рейтинге. При этом язык С почти на одном уровне с 1-м местом, которое занимает язык Java. И что важно, в целом, эта тенденция сохраняется на протяжении 10 лет. Время от времени, язык C даже выходит на первое место. Можно также обратиться к рейтингу сайта indeed.com, который определяется по предложениям о приеме на работу, где указываются требования знания языков программирования. В августе 2011 года язык C++ занимал[2] третье место среди языков Java, C++, C#, Objective C, Perl, Visual Basic. В этой группе языков отсутствует язык C, скорее всего, из-за сложности формирования правильного запроса именно для этого языка.

Используемое программное обеспечение

Пример программы в среде Code::Blocks

В качестве среды разработки используется интегрированная программная среда Code::Blocks. К основным преимуществам Code::Blocks относятся:

  • свободная лицензия GPL v3.0, в частности, разрешается бесплатное распространение и использование;
  • среда может работать в операционных системах семейств Windows, Linux, OS X (то есть является кросс-платформенной);
  • возможность работы с различными компиляторами.

При этом обычно устанавливается как сама среда Code::Blocks, так и среда MinGW, которая предоставляет компиляторы семейства GCC. Среда MinGW тоже относится к свободно распространяемому программному обеспечению.

Пример окна iTALC

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

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

Литература и учебные материалы, используемые при изучении дисциплины

  1. Давыдов В.Г. Программирование и основы алгоритмизации: учебное пособие для вузов. – М.: Высш. шк., 2005.— 448 с.: ил.
  2. Давыдов В.Г. Программирование и основы алгоритмизации: учебное пособие для вузов. – М.: Высш. шк., 2003.— 448 с.: ил.
  3. Керниган Б., Ритчи Д. Язык программирования С: пер. с англ. – М.: Вильямс, 2006 .— 289 с.: ил.
  4. Подбельский В.В. Программирование на языке Си: учебное пособие для вузов. – М.: Финансы и статистика, 2003.— 600 с.: ил.
  5. Подбельский В.В. Язык Си++: учебное пособие для вузов. – М.: Финансы и статистика, 2008.— 559 с: ил.
  6. Шилдт Г. Полный справочник по C: Пер. с англ. – М.: Вильямс, 2002 .— 699 с.
  7. Шилдт Г. Полный справочник по C++: Пер. с англ. – М.: Вильямс, 2003 .— 796 с.
  8. Дейтел Х.М, Дейтел П.Д. Как программировать на С: пер. с англ. – М.: БИНОМ, 2006.— 908 с.: ил.
  9. Учебные материалы:Языки программирования C и C++

Примечания


.