- •Часть 1. Варианты заданий.
- •Содержание
- •1Общие сведения
- •2Требования к выполнению лабораторных работ
- •2.1Методика подготовки и выполнения лабораторных работ
- •2.2Требования к содержанию лабораторных работ
- •3Требования к выполнению курсовой работы
- •3.1Методика подготовки и выполнения курсовой работы
- •3.2Требования к содержанию курсовой работы
- •Литература.
- •4Требования к оформлению программного кода
- •5Варианты заданий Вариант №1
- •5.1Автоматизация учета и анализа результатов испытаний артиллерийских установок
- •Вариант №2
- •5.2Автоматизация учета и анализа результатов собеседований соискателей на бирже труда
- •Вариант №3
- •5.3Автоматизация учета поставок товаров на оптовый склад
- •Вариант №4
- •5.4Автоматизация учета и анализа результатов проведения акций по продвижению товара на рынок
- •Вариант №5
- •5.5Автоматизация учета и контроля технического состояния парка самолетов
- •Вариант №6
- •5.6Автоматизация учета планового технического обслуживания парка автомобилей, сдаваемых в прокат
- •Вариант №7
- •5.7Автоматизация учета и анализа результатов тренировок спортсменов.
- •Вариант №8
- •5.8Автоматизация учета результатов продвижения рекламных интернет‑услуг
- •Вариант №9
- •5.9Автоматизация учета и контроля успеваемости студентов.
- •Вариант №10
- •5.10Автоматизация учета и контроля назначений в процедурном кабинете поликлиники
- •6Литература
1Общие сведения
Программирование в широком смысле слова определяется как процесс создания компьютерных программ; компьютерная программа — как последовательность инструкций, предназначенная для исполнения устройством управления вычислительной машины.
Любая последовательность инструкций ориентирована в первую очередь на понимание исполнителем – в данном случае ЭВМ. Чтобы сформировать корректную последовательность инструкций, разработчик должен знать систему команд исполнителя и принципы их выполнения. Поэтому в широком смысле слова, метод программирования - это способ, порядок действий, в результате выполнения которых вычислительную задачу можно описать в терминах системы команд исполнителя.
Сложность процесса написания программы определяется сложностью вычислительной задачи и сложностью системы команд исполнителя. Сама по себе сложность определяется количеством элементов и разнообразием связей между ними. Чем проще задача, тем легче ее понять и тем меньше существует ее альтернативных решений, а значит и инструкций исполнителя и методов описания этих инструкций – тоже.
Сложение – элементарная, интуитивно понятная для большинства людей операция, которая выполняется исполнителем только одним способом. А вот для вычисления площади треугольника требуется знание нескольких характеристик, зависимостей между ними, в том числе альтернативных (существует несколько формул расчета площади). Соответственно, количество инструкций, которые должен выполнить исполнитель, будет больше; последовательность исполнения данных инструкций будет не столь очевидной и интуитивно понятной.
По мере роста сложности актуальных задач программирования многие интуитивно понятные этапы программирования начинают требовать осмысления и разработки собственных методов. Помимо этого, в какой-то момент количество ресурсов (времени и сил), затрачиваемое на создание программы становится критичным. Чтобы повысить эффективность написания программы, разрабатываются новые средства разработки, (например, языки программирования высокого уровня пришли на смену языкам низкого уровня). Сам факт использования нового средства разработки является еще одним, альтернативным, методом программирования.
Современные задачи требуют создания больших программных систем, их коллективную разработку, последующее активное сопровождение при эксплуатации и регулярные модификации. Соответственно, требуются методы, позволяющие осмыслить саму задачу, структурировать ее исходные данные, цели и способы достижения. Требуются методы, позволяющие написать наиболее понятную и корректную инструкцию для ЭВМ за как можно более короткий промежуток времени. Требуются средства и методы, позволяющие программисту легко ориентироваться в созданном коде, быстро его понимать и при необходимости изменять. Требуются методы, позволяющие организовать совместную работу нескольких разработчиков.
Таким образом, разработка программы интегрирует знания из различных областей: математики, вычислительной техники, информатики, коммуникаций, эргономики, правового обеспечения и т.д. Соответственно методы программирования подразумевают применение методов из различных областей знаний, причем не каждый сам по себе, а в совокупности, сочетая один с другим.
Одной из задач данного практикума является формирование целостного понимания , какие методы применяются на основных этапах разработки программ, с какой целью и как они применяются, а также демонстрация альтернативного выбора тех или иных методов в процессе разработки.
С этой целью в рамках практикума к решению предлагается задача, которая предполагает интегрированное применение методов программирования, предусмотренных государственным образовательным стандартом по данной дисциплине.
Так как современные методы ориентированы на необходимость создания больших систем, то и учебная задача должна иметь достаточный объем, чтобы продемонстрировать не только принципы, но и необходимость применения того или иного метода. Поэтому одна задача решается поэтапно, каждый этап оформлен в виде отдельной лабораторной работы.
Тем не менее, задача остается учебной, а значит в ней принято много допущений; демонстрируемое в примерах решение не является оптимальным и лишь отдаленно имитирует реальный процесс.
Другой задачей практикума является совершенствование навыков непосредственно программирования:
ознакомление с современными средствами разработки;
изучение конструкций языка программирования C++, специфики работы с динамической памятью, поддержки объектно-ориентированного программирования в С++, в том числе наследования и полиморфизма; механизма обработки исключительных ситуаций; основ обобщенного программирования с использованием шаблонов и т.д.
получение опыта создания более-менее крупных многомодульных программ,
отработка приемов отладки программного кода,
формирование «хорошего стиля» программирования.
