Дисциплины:Программирование и основы алгоритмизации — различия между версиями
Материал из Кафедра Автоматики и телемеханики
Mvk (обсуждение | вклад) |
Mvk (обсуждение | вклад) |
||
(не показана одна промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
{{Дисциплина | {{Дисциплина | ||
− | |Предназначена для= | + | |Предназначена для=* Направление:220200.62 "Автоматизация и управление" |
− | * Направление:220200.62 "Автоматизация и управление" | + | |
* Специальность:220201.65 "Управление и информатика в технических системах" | * Специальность:220201.65 "Управление и информатика в технических системах" | ||
− | |Базируется на дисциплин(е,ах)= | + | |Базируется на дисциплин(е,ах)=* Информатика |
− | * Информатика | + | |Является базовой для дисциплин(ы)=* Технические средства автоматизации и управления |
− | |Является базовой для дисциплин(ы)= | + | * Микропроцессорные средства и системы управления |
* Системное программное обеспечение | * Системное программное обеспечение | ||
* Информационное обеспечение систем управления | * Информационное обеспечение систем управления | ||
− | * Технические средства автоматизации и управления | + | |Преподавател(ь,и)=* Кавалеров, Максим Владимирович |
− | + | |Лаборатори(я,и)={{Лаборатории:Оформление|Системы автоматизации и управления|315|Учебная}} | |
− | | | + | |Цель изучения дисциплины=формирование комплекса знаний о базовых принципах алгоритмизации и программирования применительно к алгоритмическим языкам высокого уровня |
− | * | + | |Общая информация=В настоящее время при построении систем автоматизации и управления все больший удельный вес занимает проектирование алгоритмов (алгоритмизация) и разработка программного обеспечения (программирование). Поэтому очень важно научиться основным принципам программирования и алгоритмизации, для начала, применительно к алгоритмическим языкам высокого уровня. |
+ | |||
+ | Используя эти сведения, студент в дальнейшем в ходе изучении дисциплин "[[Дисциплины:Технические средства автоматизации и управления|Технические средства автоматизации и управления]]", "[[Дисциплины:Микропроцессорные средства и системы управления|Микропроцессорные средства и системы управления]]" сможет перейти непосредственно к освоению особенностей программирования контроллеров и разработки программного обеспечения верхнего уровня систем автоматизации и управления. При изучении дисциплины "[[Дисциплины:Системное программное обеспечение|Системное программное обеспечение]]", "[[Дисциплины:Информационное обеспечение систем управления|Информационное обеспечение систем управления]]" также пригодятся знания об основах программирования и алгоритмизации. | ||
+ | |||
+ | В качестве базовых языков высокого уровня при изучении дисциплины используются языки программирования [http://ru.wikipedia.org/wiki/%D0%A1%D0%B8_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29 C] и [http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%2B%2B C++]. | ||
+ | |||
+ | === Почему выбраны языки C и C++? === | ||
+ | {{{!}}align="right" | ||
+ | {{!}}-valign="top" | ||
+ | {{!}}[[Файл:TIOBE Programming Community Index for October 2011.png|мини|120пкс|Индекс TIOBE за октябрь 2011 года]] | ||
+ | {{!}}[[Файл:TIOBE Programming Community Index.png|мини|120пкс|Изменения индекса TIOBE за несколько лет]] | ||
+ | {{!}}[[Файл:Job Trends from Indeed.com - August 2011.gif|мини|справа|120пкс|Тенденции предложений работы по языкам программирования]] | ||
+ | {{!}}} | ||
+ | |||
+ | # Язык C является достаточно низкоуровневым, хотя и относится к классу языков высокого уровня. В частности, это проявляется в том, что он является, пожалуй, самым популярным языком системного программирования. Например, с помощью него обычно создаются драйверы устройств, что часто бывает необходимым в случае разработки нового технического устройства или при подключении нестандартного устройства. И подобные ситуации нередко возникают при разработке системы автоматизации и управления. | ||
+ | # Во многих [http://ru.wikipedia.org/wiki/SCADA SCADA-пакетах] в качестве встроенных языков программирования используются языки, очень похожие на язык C. | ||
+ | # Язык C++ удобен для разработки программного обеспечения верхнего уровня, в частности, для разработки графического интерфейса с пользователем. Например, свободный и кроссплатформенный фреймворк [http://ru.wikipedia.org/wiki/Qt Qt] имеет в своей основе именно язык 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пкс|Пример программы в среде Code<nowiki>::</nowiki>Blocks]] | ||
+ | В качестве среды разработки используется интегрированная программная среда [http://ru.wikipedia.org/wiki/Code::Blocks Code::Blocks]. К основным преимуществам Code::Blocks относятся: | ||
+ | * свободная лицензия [http://www.codeblocks.org/license/3 GPL v3.0], в частности, разрешается бесплатное распространение и использование; | ||
+ | * среда может работать в операционных системах семейств Windows, Linux, OS X (то есть является кросс-платформенной); | ||
+ | * возможность работы с различными компиляторами. | ||
+ | |||
+ | При этом обычно устанавливается как сама среда Code::Blocks, так и среда [http://ru.wikipedia.org/wiki/MinGW MinGW], которая предоставляет компиляторы семейства [http://ru.wikipedia.org/wiki/Gcc GCC]. Среда MinGW тоже относится к свободно распространяемому программному обеспечению. | ||
+ | |||
+ | [[Файл:italc-screenshot.png|мини|120px|Пример окна iTALC]] | ||
+ | Для организации эффективного взаимодействия преподавателя со студентами в ходе лабораторных занятий используется программное обеспечение [http://italc.sourceforge.net iTALC]. При этом взаимодействие реализуется в следующих основных режимах. | ||
+ | # ''Режим проектора''. Преподаватель может транслировать изображение со своего монитора на мониторы студентов. Этот режим удобен для объяснения учебного материала и демонстрации примеров работы в программных средах. | ||
+ | # ''Режим наблюдения''. Преподаватель видит изображения на мониторах студентов. | ||
+ | # ''Режим удаленного управления''. Преподаватель может перехватывать управление компьютером студента. В этом режиме удобно вносить коррективы в действия студентов и помогать им в решении тех или иных практических задач, которые могут возникать в ходе выполнения учебных заданий.{{-}} | ||
+ | |Литература и учебные материалы=# Давыдов В.Г. Программирование и основы алгоритмизации: учебное пособие для вузов. – М.: Высш. шк., 2005.— 448 с.: ил. | ||
+ | # Давыдов В.Г. Программирование и основы алгоритмизации: учебное пособие для вузов. – М.: Высш. шк., 2003.— 448 с.: ил. | ||
+ | # Керниган Б., Ритчи Д. Язык программирования С: пер. с англ. – М.: Вильямс, 2006 .— 289 с.: ил. | ||
+ | # Подбельский В.В. Программирование на языке Си: учебное пособие для вузов. – М.: Финансы и статистика, 2003.— 600 с.: ил. | ||
+ | # Подбельский В.В. Язык Си++: учебное пособие для вузов. – М.: Финансы и статистика, 2008.— 559 с: ил. | ||
+ | # Шилдт Г. Полный справочник по C: Пер. с англ. – М.: Вильямс, 2002 .— 699 с. | ||
+ | # Шилдт Г. Полный справочник по C++: Пер. с англ. – М.: Вильямс, 2003 .— 796 с. | ||
+ | # Дейтел Х.М, Дейтел П.Д. Как программировать на С: пер. с англ. – М.: БИНОМ, 2006.— 908 с.: ил. | ||
+ | # [[Учебные материалы:Языки программирования C и C++]] | ||
+ | |Название раздела примечаний=Примечания | ||
}} | }} |
Текущая версия на 00:30, 23 января 2012
Дисциплина "Программирование и основы алгоритмизации"
- Направление:220200.62 "Автоматизация и управление"
- Специальность:220201.65 "Управление и информатика в технических системах"
Базируется на дисциплине:
Является базовой для дисциплин:
- Технические средства автоматизации и управления
- Микропроцессорные средства и системы управления
- Системное программное обеспечение
- Информационное обеспечение систем управления
Преподаватель:
Учебная лаборатория:
- Системы автоматизации и управления (ауд.315, к.А ЭТФ)
Цель изучения дисциплины: формирование комплекса знаний о базовых принципах алгоритмизации и программирования применительно к алгоритмическим языкам высокого уровня.
Общая информация
В настоящее время при построении систем автоматизации и управления все больший удельный вес занимает проектирование алгоритмов (алгоритмизация) и разработка программного обеспечения (программирование). Поэтому очень важно научиться основным принципам программирования и алгоритмизации, для начала, применительно к алгоритмическим языкам высокого уровня.
Используя эти сведения, студент в дальнейшем в ходе изучении дисциплин "Технические средства автоматизации и управления", "Микропроцессорные средства и системы управления" сможет перейти непосредственно к освоению особенностей программирования контроллеров и разработки программного обеспечения верхнего уровня систем автоматизации и управления. При изучении дисциплины "Системное программное обеспечение", "Информационное обеспечение систем управления" также пригодятся знания об основах программирования и алгоритмизации.
В качестве базовых языков высокого уровня при изучении дисциплины используются языки программирования C и C++.
Почему выбраны языки C и C++?
- Язык C является достаточно низкоуровневым, хотя и относится к классу языков высокого уровня. В частности, это проявляется в том, что он является, пожалуй, самым популярным языком системного программирования. Например, с помощью него обычно создаются драйверы устройств, что часто бывает необходимым в случае разработки нового технического устройства или при подключении нестандартного устройства. И подобные ситуации нередко возникают при разработке системы автоматизации и управления.
- Во многих SCADA-пакетах в качестве встроенных языков программирования используются языки, очень похожие на язык C.
- Язык C++ удобен для разработки программного обеспечения верхнего уровня, в частности, для разработки графического интерфейса с пользователем. Например, свободный и кроссплатформенный фреймворк Qt имеет в своей основе именно язык C++.
- Языки 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 относятся:
- свободная лицензия GPL v3.0, в частности, разрешается бесплатное распространение и использование;
- среда может работать в операционных системах семейств Windows, Linux, OS X (то есть является кросс-платформенной);
- возможность работы с различными компиляторами.
При этом обычно устанавливается как сама среда Code::Blocks, так и среда MinGW, которая предоставляет компиляторы семейства GCC. Среда MinGW тоже относится к свободно распространяемому программному обеспечению.
Для организации эффективного взаимодействия преподавателя со студентами в ходе лабораторных занятий используется программное обеспечение iTALC. При этом взаимодействие реализуется в следующих основных режимах.
- Режим проектора. Преподаватель может транслировать изображение со своего монитора на мониторы студентов. Этот режим удобен для объяснения учебного материала и демонстрации примеров работы в программных средах.
- Режим наблюдения. Преподаватель видит изображения на мониторах студентов.
- Режим удаленного управления. Преподаватель может перехватывать управление компьютером студента. В этом режиме удобно вносить коррективы в действия студентов и помогать им в решении тех или иных практических задач, которые могут возникать в ходе выполнения учебных заданий.
Литература и учебные материалы, используемые при изучении дисциплины
- Давыдов В.Г. Программирование и основы алгоритмизации: учебное пособие для вузов. – М.: Высш. шк., 2005.— 448 с.: ил.
- Давыдов В.Г. Программирование и основы алгоритмизации: учебное пособие для вузов. – М.: Высш. шк., 2003.— 448 с.: ил.
- Керниган Б., Ритчи Д. Язык программирования С: пер. с англ. – М.: Вильямс, 2006 .— 289 с.: ил.
- Подбельский В.В. Программирование на языке Си: учебное пособие для вузов. – М.: Финансы и статистика, 2003.— 600 с.: ил.
- Подбельский В.В. Язык Си++: учебное пособие для вузов. – М.: Финансы и статистика, 2008.— 559 с: ил.
- Шилдт Г. Полный справочник по C: Пер. с англ. – М.: Вильямс, 2002 .— 699 с.
- Шилдт Г. Полный справочник по C++: Пер. с англ. – М.: Вильямс, 2003 .— 796 с.
- Дейтел Х.М, Дейтел П.Д. Как программировать на С: пер. с англ. – М.: БИНОМ, 2006.— 908 с.: ил.
- Учебные материалы:Языки программирования C и C++
Примечания