В настоящее время программирование трансформировалось в целую индустрию производства программных изделий. Поэтому уже мало знать только язык программирования и операционный подход к составлению алгоритмов. Профессиональный разработчик программных изделий должен владеть теорией проектирования, методами активизации мышления. Ему необходимо умение оперирования моделями, методами генерации решений и выбора их оптимальных вариантов. Создание программных изделий коллективом разработчиков предопределило необходимость умения планирования работ и их распределения между отдельными участниками проекта.
В современном программировании требуется активное владение дедуктивным мышлением, что не достигается школьным, а зачастую и вузовским образованием.
Данная книга ориентирована именно на решение данных проблем.
Материалы книги были использованы в более чем двадцатилетней педагогической практике авторов по подготовке такой массовой профессии, как программист. Практика показала, что большая часть студентов второго курса способна коллективно выполнять проекты программных систем средней сложности и их успешно реализовывать при достигнутом уровне производительности реализации 100–200 отлаженных строк в день. При этом достигается самодокументированность текстов программ.
Данная книга содержит теоретические знания, необходимые как программистам-кодировщикам программ, так и системным аналитикам. В ней излагаются методики овладения дедуктивным мышлением.
Авторы книги сделали максимум возможного, чтобы избежать привязки только к одному языку программирования. Иллюстрирующие примеры даются в основном на языках Pascal и Object Pascal, являющихся «языком эксперанто» для программистов. Авторы надеются, что знание других процедурно-ориентированных и объектно-ориентированных языков программирования, например С, C++, позволит без дополнительного обучения понять суть иллюстрирующих примеров.
Данный учебник содержит объем знаний, необходимый программистам первого уровня подготовки специалистов с высшим образованием (квалификация — бакалавр), но может быть использован при подготовке специалистов второй ступени образования.
Согласно квалификационному справочнику должностей руководителей, специалистов и других служащих (утв. постановлением Минтруда РФ от 21 августа 1998 г. № 37) (с изменениями от 21 января, 4 августа 2000 г., 20 апреля 2001 г.), обязанности, знания, навыки и умения инженера-программиста (программиста) характеризуются следующими нормативами.
Должностные обязанности. На основе анализа математических моделей и алгоритмов решения экономических и других задач, программист обязан:
— разрабатывать программы, обеспечивающие возможность выполнения алгоритма и соответственно поставленной задачи средствами вычислительной техники; проводить их тестирование и отладку;
— разрабатывать технологию решения задачи по всем этапам обработки информации;
— осуществлять выбор языка программирования для описания алгоритмов и структур данных;
— определять информацию, подлежащую обработке средствами вычислительной техники, ее объемы, структуру, макеты и схемы ввода, обработки, хранения и вывода, методы ее контроля;
— выполнять работу по подготовке программ к отладке и проводить отладку;
— определять объем и содержание данных контрольных примеров, обеспечивающих наиболее полную проверку соответствия программ их функциональному назначению;
— осуществлять запуск отлаженных программ и ввод исходных данных, определяемых условиями поставленных задач;
— проводить корректировку разработанной программы на основе анализа выходных данных;
— разрабатывать инструкции по работе с программами, оформлять необходимую техническую документацию;
— определять возможность использования готовых программных продуктов;
— осуществлять сопровождение внедренных программ и программных средств;
— разрабатывать и внедрять системы автоматической проверки правильности программ, типовые и стандартные программные средства;
— составлять технологию обработки информации;
— выполнять работу по унификации и типизации вычислительных процессов;
— принимать участие в создании каталогов и картотек стандартных программ, в разработке форм документов, подлежащих машинной обработке, в проектировании программ, позволяющих расширить область применения вычислительной техники.
Должен знать:
— руководящие и нормативные материалы, регламентирующие методы разработки алгоритмов и программ и использования вычислительной техники при обработке информации, основные принципы структурного программирования;
— виды программного обеспечения;
— технико-эксплуатационные характеристики, конструктивные особенности, назначение и режимы работы ЭВМ, правила ее технической эксплуатации;
— технологию автоматической обработки информации;
— виды технических носителей информации;
— методы классификации и кодирования информации;
— формализованные языки программирования;
— действующие стандарты, системы счислений, шифров и кодов;
— порядок оформления технической документации;
— передовой отечественный и зарубежный опыт программирования и использования вычислительной техники;