Н.В.Комлева, а.А. Смирнов информатика и программирование Учебное пособие. Создание простой программы

выпуск 2006 года

Павел Белов

Декан физико-технического факультета Университета ИТМО

В свое время я поступил на программу «Информатика и программирование», потому что в начале 2000-ых это была чуть ли не единственное направление с интересной и актуальной программой обучения в городе. Туда даже олимпиадников зачисляли только после дополнительного испытания, что говорит о достаточно высокой планке, которую ставили для студентов сотрудники факультета, а мы, абитуриенты, в свою очередь, понимали, что и качество полученного нами образования там будет соответствующим. На тот момент выпускников таких Петербургских школ, как физико-математический лицей № 30 и № 239, где я учился, в МГУ им. М.В. Ломоносова брали без дополнительных испытаний. И меня бы взяли, но так было неинтересно, поэтому я выбрал Университет ИТМО. И не прогадал, как и мои однокурсники. После выпуска я успел поработать за границей около 10 лет и вернуться в родной вуз уже в качестве сотрудника. Сейчас я руководитель успешной международной лаборатории, в которой работает более 100 человек. А мои однокурсники работают в различных IT-фирмах на руководящих должностях, в подчинении у которых по 100-300 человек. Я не буду советовать что-то конкретное для поступления, потому что каждому направлению в науке свое время - нужно учитывать тенденции. В начале 2000-ых ректор Университета ИТМО Владимир Васильев удачно угадал, что нужно заниматься развитием и изучением IT - компьютерами, программированием. Но сейчас актуальные направления в науке меняются, и вуз вместе с ними. Конечно, программирование все так же популярно, но вместе с ним и фотоника, оптические науки, которые на сегодняшний день прорывные и перспективные, активно изучаются в нашем вузе. Поэтому если вы хотите учиться в неклассическом, быстро развивающемся университете, который активно работает с зарубежными коллегами, активно трансформируется, то вам определенно нужно поступать в Университет ИТМО. Пожалуй, он один из лидеров среди развивающихся вузов. И если вы хотите быть частью этих изменений, получить квалификации, которые получить в других образовательных учреждениях вы не сможете, то вам, определенно, сюда

выпуск 2009 года

Федор Царев

В 2003 году я учился в 11 классе физико-математического лицея № 239 и думал: «Что же дальше?» На самом деле, нет:) В это время я каждую неделю ходил в Университет ИТМО на лекции по алгоритмам и готовился поступать на «Компьютерные технологии». К тому же в апреле 2003 года команда студентов Университета ИТМО заняла третье место на чемпионате мира по программированию, и мне очень захотелось тоже завоевать этот титул. Поступление в Университет ИТМО стало первым шагом в достижении этой цели: я не сомневался, что здесь есть люди, вместе с которыми этой цели достигнуть легче. Ставьте цели и добивайтесь их с Университетом ИТМО!

Дмитрий Мухутдинов

КТ, на мой взгляд, является одним из лучших в России мест, где готовят серьезных профессионалов в области IT. Благодаря факультету ИТиП я приобрел и продолжаю приобретать не только массу профессиональных навыков, но и множество знакомств с умнейшими людьми. Уверен, что моя дальнейшая профессиональная деятельность будет столь же насыщенной и интересной, как и учеба. ,

Иван Белоногов

Георгий Агапов

Когда я пришёл на первый курс, я думал, что знаю многое о программировании. Не могу сказать, что был тогда не прав. Мне и сейчас кажется, что для того, чтобы сделать карьеру в области IT, необязательно иметь диплом. Однако Компьютерные технологии дали мне кое-что более важное, чем навыки программирования. Когда ты начинаешь программировать, ты видишь мир в плоскости, ты просто шестеренка в механизмах, о существовании которых ты даже думать не мог. На факультете меня научили мыслить шире. Здесь действительно учат, дают полезные знания, беспощадно требуют погружения в эти знания. И это погружение меняет твоё восприятие мира в целом. Будьте уверены, что после десятка таких погружений вы будете ощущать себя отличным программистом.

выпуск 2013 года

Алексей Сергушичев

Магистрант Университета ИТМО

После получения диплома на всероссийской олимпиаде по информатике я мог поступить в любой вуз без экзаменов. Я выбирал между тремя сильнейшими в сфере програмирования университетами страны: МГУ, СПбГУ и Университета ИТМО. В итоге выбор пал на компьютерные технологии последнего, о чем я совершенно не жалею. Помимо основательного багажа знаний по математике, алгоритмам, языкам программирования и другим предметам, учась, я получил отличную возможность заниматься наукой. Уже на четвертом курсе я съездил на две международных конференции в Барселоне и Дублине, а сейчас у меня выходят статьи в топовых международных журналах. Так что авторитетно рекомендую «Информатику и программирование» всем, кто интересуется программированием. Даже если наука - не ваше, по окончании вуза вы точно не останетесь без хорошо оплачиваемой работы. Ну, и не стоит забывать, что Университет ИТМО находится в центре самого красивого города в России.

Софья Титова

Студентка

Обучение на КТ достаточно сложное, но очень интересное. Здесь есть возможность обучаться по усиленной программе по профильным предметам. Также высококвалифицированный и отзывчивый преподавательский состав. Приятно учиться среди интересных и целеустремленных людей, увлеченных программированием.

Борис Минаев

Мечта почти каждого программиста - разработать продукт, которым будут пользоваться миллионы людей. А для создания качественных высоконагруженных систем необходимы как знания об алгоритмах и структурах данных, так и глубокое понимание процессов, которые происходят при работе компьютера. В России существует всего несколько мест, где рассказывают об этом на высоком уровне. Программа «Информатика и программирование» Университета ИТМО - одно из таких мест. Одним из плюсов программы является тесное взаимодействие с IT-компаниями. Уже начиная со второго курса у студентов есть возможность применить полученные знания в реальных проектах. Однако, поступая, стоит понимать, что придется много учиться и, к сожалению, не у всех это получается. Например, только половина людей, которые поступили со мной на первый курс, получила диплом бакалавра.

выпуск 2000 года

Матвей Казаков

Когда мы поступали на еще совсем молодую программу, связанную с компьютерными технологиями, а в названии «ИТМО» ИТ не означало «информационные технологии», мы не понимали, что вытащили счастливый лотерейный билет. Когда через шесть лет мы выпускались с дипломами магистра, титул «выпускник ИТМО» в области ИТ стал визитной карточкой. Для нас были открыты двери в любую компанию, занимающуюся разработкой ПО и другими смежными направлениями. Сейчас, спустя 14 лет после выпуска, я могу с уверенностью сказать, что у меня есть знакомые во всех крупных компаниях Петербурга, разрабатывающих ПО, с которыми я учился в одно время на «Информатике и программировании». Многие из моих бывших сокурсников, а также коллег по вузу занимают руководящие должности, либо создали свое дело. Многие работают в крупнейших мировых компаниях. Практически никто из моих коллег не поменял специальность после выпуска, поскольку все нашли себя в отрасли информационных технологий. Безусловно, нельзя забывать о достижениях наших студентов в спортивном программировании и других соревнованиях. Именно наш вуз становился чемпионом мира в командном программировании семь раз! И это не только благодаря талантливым студентам, но во многом это заслуга уникальной, инновационной, передовой атмосферы в вузе. Именно окружение студентов, увлеченных своим делом, и всесторонняя поддержка преподавателей помогли нашему поколению стать профессионалами своего дела и стать частью профессиональной сети выпускников Университета ИТМО.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ЭКОНОМИКИ, СТАТИСТИКИ И ИНФОРМАТИКИ

Н.В.Комлева, а.А. Смирнов информатика и программирование Учебное пособие

Москва, 2006 год

Комлева Н.В., Смирнов А.А. Информатика и программирование: Учебное пособие /Московский государственный университет экономики, статистики и информатики.-М.,2006.-

Пособие содержит изложение основных понятий в сфере тнформатики и основ программироввания, а также практические примеры.

Пособие предназначено для студентов следующих специальностей:

-«Менеджмент», «Менеджмент организаций», «Управление персоналом», «Коммерция», «Маркетинг», «Мировая экономика», «Антикризисное управление», «Бухгалтерский учет, анализ и аудит», «Финансы и кредит», «Лингвистика», «Налоги и налогообложение», «Психология».

1. Информатика.

1.2. Измерение и представление информации.

1.3. Технические средства реализации информационных процессов.

1.4. Программные средства реализации информационных процессов.

1.5. Технологии программирования.

2. Алгоритмизация процессов обработки данных.

2.1. Основные понятия и определения.

2.2. Средства изображения алгоритмов.

2.3. Характеристика и классификация данных.

3. Основные конструкции языка программирования Pascal.

3.1. Основные элементы программы на языке Pascal.

3.2. Операторы языка.

3.3. Условный оператор и его применение для организации ветвлений.

3.4. Управление ветвлениями с помощью оператора Case.

3.5. Организация циклических процессов.

3.6. Оператор цикла со счетчиком.

3.7. Обработка символьной информации.

3.8. Организация выполнения программы в среде DELPHI.

4. Программная обработка структурных типов.

4.1. Организация информации в виде массивов.

4.2. Программная обработка информации, представленной в виде записей.

4.3. Особенности обработки экономической информации, организованной в виде массива записей.

4.4.Представление экономической информации в виде множества.

5. Модульное программирование.

5.1. Opганизация модульной структуры программы.

5.2. Использование процедур

5.3. Использование функций

5.4. Процедуры и функции без параметров.

5.5. Организация внешних модулей.

6. Литература и INTRNET-ресурсы

7. Глоссарий

1. Информатика.

1.1. Информация и информатизация общества.

Термин информация происходит от латинского слова “Informatio”, что означает разъяснение, осведомление, изложение. Информатика рассматривает информацию как концептуально связанные между собой сведения, данные, понятия, изменяющие наши представления о явлении или объекте окружающего мира. Наряду с информацией в информатике часто употребляется понятие данные. Данные могут рассматриваться как признаки или записанные наблюдения, которые в данный момент не используются, но хранятся. В том случае, если данные начинают использоваться, то данные превращаются в информацию.

Информация может быть преобразована в знания. Информация, полученная от специалистов, только в том случае становится знаниями, если она структурирована, специальным образом представлена, тщательно протестирована и имеет способность к развитию. Знания при использовании логического вывода позволяют порождать новые знания.

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

Под информатикой, в широком смысле понимается совокупность разнообразных отраслей науки, техники и производства, связанных с переработкой информации. В узком смысле информатику можно представить как совокупность следующих взаимосвязанных частей:

Во-первых, технические средства (hardware);

Во-вторых, программные средства (software);

В-третьих, алгоритмические средства (brainware).

Характерно, что информатику, как в широком смысле, так и в узком смысле можно рассматривать с различных позиций:

Во-первых, как отрасль народного хозяйства;

Во-вторых, как фундаментальную науку;

В-третьих, как прикладную дисциплину.

Внедрение ЭВМ, современных средств переработки и передачи информации в различные сферы деятельности послужило началом нового процесса, называемого «информатизацией».

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

Пособие содержит изложение основных понятий в сфере информатики и основ программирования, а также практические примеры.
Пособие предназначено для студентов следующих специальностей: - «Менеджмент», «Менеджмент организаций», «Управление персоналом», «Коммерция», «Маркетинг», «Мировая экономика», «Антикризисное управление», «Бухгалтерский учет, анализ и аудит», «Финансы и кредит», «Лингвистика», «Налоги и налогообложение», «Психология».

Под информатикой в широком смысле понимается совокупность разнообразных отраслей науки, техники и производства, связанных с переработкой информации. В узком смысле информатику можно представить как совокупность следующих взаимосвязанных частей:
1) технические средства (hardware);
2) программные средства (software);
3) алгоритмические средства (brainware).
Характерно, что информатику как в широком, так и в узком смысле можно рассматривать с различных позиций:
- как отрасль народного хозяйства;
- как фундаментальную науку;
- как прикладную дисциплину.
Термин «информация» происходит от латинского слова «Informatio», что означает разъяснение, осведомление, изложение. Информатика рассматривает информацию как концептуально связанные между собой сведения, данные, понятия, изменяющие наши представления о явлении или объекте окружающего мира. Наряду с информацией в информатике часто употребляется понятие данные. Данные могут рассматриваться как признаки или записанные наблюдения, которые в данный момент не используются, но хранятся. Когда данные начинают использоваться, они превращаются в информацию.

Оглавление
Сведения об авторах 5
1. Информатика 7
1.1. Информация и информатизация общества 8
1.2. Измерение и представление информации 9
1.3. Технические средства реализации информационных процессов 10
1.4. Программные средства реализации информационных процессов 14
1.5. Технологии программирования 15
2. Алгоритмизация процессов обработки данных 21
2.1. Основные понятия и определения 22
2.2. Средства изображения алгоритмов 23
2.3. Характеристика и классификация данных 24
3. Основные конструкции языка программирования Pascal 29
3.1. Основные элементы программы на языке Pascal 30
3.2. Операторы языка 32
3.3. Условный оператор и его применение для организации ветвлении 34
3.4. Управление ветвлениями с помощью оператора Case 35
3.5. Организация циклических процессов 37
3.6. Обработка символьной информации 41
3.7. Организация выполнения программы в среде DELPHI 43
4. Программная обработка структурных типов 49
4.1. Организация информации в виде массивов 50
4.2. Организация информации в виде записей 52
4.3. Организация информации в виде множества 55
4.4. Особенности обработки экономической информации, организованной в виде массива записей 58
5. Модульное программирование 65
5.1 Организация модульной структуры программы 66
5.2. Использование процедур 68
5.3. Использование функций 72
5.4. Процедуры и функции без параметров 77
5.5. Организация внешних модулей 80
Темы лабораторный работ 89
Глоссарий 90
Список рекомендуемой литература 94

Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Информатика и программирование, Комлева Н.В., Смирнов А.А., Хрипков Д.В., 2008 - fileskachat.com, быстрое и бесплатное скачивание.

Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России.

  • Перевод

Разработка программного обеспечения как будто в худшую сторону отличается от других дисциплин информатики.

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

А теперь я работаю с разработкой ПО, и это невыносимо скользкая тема. Ни одна концепция точно не определена. Результаты оцениваются с характеристиками «обычно» или «в целом». Сегодняшние исследования могут или не могут помочь завтрашней работе. Новые подходы часто опровергают предыдущие методы, а сами ярко горят недолгое время, а потом выходят из моды, когда всплывают их ограничения. Мы верили в структурное программирование. Затем начали верить в языки четвёртого поколения, потом в объектно-ориентированные методы, потом в экстремальное программирование, а теперь, может быть, в open source.

Но программирование - это именно то место, где происходит контакт шины с асфальтом. Мало кого волнует, действительно ли равняется , чисто ради красоты вопроса. Компьютерная область имеет дело с компьютерами. Это написание программ для решения реальных человеческих проблем и работа этих программ на реальных машинах. Согласно тезису Чёрча-Тюринга , всё компьютерное оборудование по существу эквивалентно. Так что пока компьютерная архитектура классная, реальным ограничением в информатике остаётся проблема создания программного обеспечения. Нам нужны программы, которые можно собрать за разумное время и за разумную стоимость, которые работают примерно так, как планировали дизайнеры, и работают без ошибок.

Имея такую цель, я всегда был озабочен одним вопросом (как и многие другие исследователи): почему программисты не могут получить более строгие результаты, как в других областях информатики? Если спросить иначе, «Какую часть архитектуры и конструкции программ можно сделать формальной и доказумой?» Ответ на этот вопрос находится на рисунке 1.


Рисунок 1: Яркая линия в информатике

Темы выше этой линии принадлежат к разработке программного обеспечения. Области исследования ниже этой линии - основные предметы информатики. У последних есть ясные, формальные результаты. Для открытых проблем в этой области мы ожидаем получения новых результатов, которые будут формально сформулированы. Эти темы основаны друг на друге: криптография на сложности, а компиляторы на алгоритмах, например. Более того, мы верим, что доказанные результаты в этих областях останутся таковыми и через 100 лет.

Так что это за яркая линия, и почему ниже неё нет ни одной из тем программирования? Линия - это качество под названием «прямое человеческое участие». У разработки ПО есть такое качество, а у традиционной информатики его нет. Результаты из дисциплин ниже линии могут быть использованы людьми, но эти результаты напрямую не подвержены влиянию людей.

У разработки ПО есть неотъемлемый человеческий компонент. Например, эксплуатационная надёжность ПО представляет собой возможность понимания, нахождения и исправления человеком дефектов программной системы. На эксплуатационную надёжность могут влиять некоторые формальные понятия информатики - может быть, цикломатическая сложность графа контроля программного обеспечения. Но эксплуатационная надёжность критически зависит от людей и их способности постигать значение и замысел исходного кода. На вопрос, обладает ли конкретная программная система высокой эксплуатационной надёжностью, невозможно ответить просто механически изучив ПО.

То же самое с безопасностью. Исследователи использовали некоторые формальные методы, чтобы узнать влияние программной системы на здоровье и собственность людей. Но никакая дискуссия о безопасности программ не может считаться завершённой без обращения к человеческому компоненту изучаемой системы. Аналогично для разработки требований. Мы можем разработать любые техники опроса, чтобы добиться от заинтересованных сторон точных требований, и можем создать различные системы для их записи. Но никакой объём исследований в этой области не изменит того факта, что сбор требований часто предусматривает разговор или наблюдение за людьми. Иногда эти люди сообщают нам правильную информацию, а иногда - нет. Иногда люди лгут, возможно, по уважительным причинам. Иногда люди честно пытаются передать правильную информацию, но не могут этого сделать.

Это наблюдение приводит к Тезису Коннелла:

Разработка программного обеспечения никогда не будет строгой дисциплиной с подтверждёнными результатами, поскольку в неё вовлечена деятельность человека.


Это экстра-математическое утверждение о границах формальных систем. Я не имею никаких доказательств за или против. Но факт в том, что человеческие проблемы остаются центральными вопросами разработки программного обеспечения:
  • Что должна делать эта программа? (требования, юзабилити, безопасность)
  • Как должна выглядеть программа внутри, чтобы её легко было починить и модифицировать? (архитектура, дизайн, масштабируемость, переносимость, расширяемость)
  • Как долго займёт её написание? (оценка)
  • Как мы должны её разрабатывать? (кодирование, тестирование, измерение, конфигурация)
  • Как следует эффективно организовать работу команды? (менеджмент, процесс, документация)
Все эти проблемы вращаются вокруг людей.

Мой тезис объясняет, почему разработка ПО настолько трудная и такая скользкая. Проверенные методы одной команды программистов не работают для других команд. Исчерпывающий анализ прошлых проектов может быть бесполезен для хорошей оценки следующего. Каждый из революционных инструментов разработки помогает по чуть-чуть, а затем не соответствует своим великим обещаниям. Причина в том, что люди слишком мягкие, разочаровывающие и непредсказуемые.

Прежде чем перейти к последствиям моего утверждения, рассмотрим три вероятных возражения:

Тезис реализует сам себя. Если какая-то область разработки программного обеспечения вдруг решена строго, то вы можете просто изменить определение разработки ПО , чтобы исключить из него эту проблему.


В чём-то это возражение верное, но не во всём. Я утверждаю, что набор дисциплин, обычно называемый разработкой программного обеспечения, будет и дальше по существу бросать вызов строгому решению. Узкие аспекты некоторых проблем могут поддаваться формальному подходу, но их успех будет лишь на периферии ключевых проблем разработки.

Статистические результаты в программировании уже опровергают этот тезис.


Эти методы в целом решают проблему оценки и включают в себя Function Point Counting, COCOMO II , PROBE и другие. Несмотря на свой математический вид, эти методы не являются доказательствами или формальными результатами. Такая статистика - просто попытка квантифицировать субъективный человеческий опыт по прошлым софтверным проектам и экстраполировать его на будущие проекты. Иногда работает. Но внешне строгие формулы в этих схемах - это свинья с губной помадой, если использовать современное выражение. Например, одна из формул в COCOMO II выглядит так: , где , а - это набор из пяти факторов масштабирования , таких как «гибкость разработки» и «сплочённость команды». Сама формула выглядит строго, но в ней доминирует показатель, составленный из человеческих факторов.

Формальные процессы разработки, такие как метод «чистой комнаты», постепенно находят строгие, доказуемые методы. Они поднимают яркую линию, чтобы перенести под неё ранее размытые темы.


Действительно, исследователи формальных процессов демонстрируют прогресс в решении разных проблем. Но их можно уличить в нарушении самого первого возражения в этом списке: они слишком узко определяют разработку ПО, чтобы она поддалась строгому решению. Формальные методы просто удобно для себя истолковывают любую проблему, которая основана на человеческом участии и интерпретации. Например, ключевым элементом формальных методов разработки является создание строгих, недвусмысленных спецификаций. Эти спецификации затем используются для проведения (и доказательства) последующих этапов разработки. Конечно, формальный метод может содержать недвусмысленную схему семантической нотации. Но никакой формальный метод не содержит точного рецепта, как перевести в недвусмысленное состояние смутные мысли людей о том, что должна делать программа.

Вопреки этим возражениям я заявляю, что разработка ПО по существу отличается от традиционной, формальной информатики. Первая зависит от людей, а вторая - нет. Это приводит нас к Заключению Коннелла:

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


Например, Дэвид Парнас в 1972 году написал замечательную научную статью «О критериях разложения системы на модули ». Она описывает простой эксперимент, который Парнас провёл с альтернативными стратегиями дизайна ПО, одна с сокрытием информации, а другая с глобальной видимостью данных. Затем на основе этого маленького эксперимента он вывел несколько заключений и привёл рекомендации. Ничего в статье не является доказанным, и Парнас не гарантирует, что следуя рекомендациям каждый получит аналогичный результат. Но статья содержит мудрые советы и сильно повлияла на популярность объектно-ориентированных языков программирования.

Другой пример - это огромная работа Института программной инженерии в Университете Карнеги - Меллон, известная как CMMI . CMMI начиналась как модель процесса разработки ПО, а теперь разрослась и включила в себя также другие типы проектов. Объём CMMI примерно 1000 страниц - не считая примеров, интерпретаций и обучающих материалов - и она представляет более 1000 человеко-лет работы. Многие крупные организации использовали её и добились значительного прогресса в своих процессах разработки ПО и продуктах. Но в CMMI нет ни единого твёрдо доказанного результата. Это просто набор (хорошо проработанных) предложений, как организовать софтверный проект на основе методов, которые были эффективны для других организаций в прошлом. На самом деле Институт программной инженерии констатирует, что CMMI - это даже не процесс, а скорее мета-процесс, детали которого заполняются каждой организацией.

Другие области исследований в том же духе - это паттерны дизайна, стили архитектуры, рефакторинг на основе сомнительных методов, гибкая методология разработки и визуализация данных. Эти дисциплины могут частично содержать проверенные результаты, но в целом нацелены на системы, которые изначально содержат человеческое участие. Чтобы внести ясность: ключевые темы информатики (ниже яркой линии) - жизненно важные инструменты для любого разработчика. Знания алгоритмов важны при проектировании высокопроизводительных приложений. Теория массового обслуживания помогает проектировать ядро операционной системы. Методология «чистой комнаты» тоже полезна в некоторых ситуациях. Анализ статистики может пригодиться при планировании похожих проектов с похожей группой участников. Но формализм - это просто необходимое, а не достаточное условие для хорошей разработки. Давайте для примера рассмотрим строительство и архитектуру (то есть дома и здания).

Представьте блестящего инженера-строителя, лучшего в мире эксперта по строительным материалам, зависимости деформаций от напряжений, распределению нагрузок, защите от сдвига ветров и подземных толчков, и т. д. Этот парень занесён в записные книжки архитекторов во всех странах, чтобы звонить ему для консультаций по каждому строительному проекту. Будет ли этот мифический инженер-строитель настолько же хорош в проектировании зданий, которые он анализирует? Совсем нет. Он может теряться в разговорах с клиентами, неспособен проектировать приятные для проживания места, его фантазии не хватает, чтобы придумать решения для новых проблем, и он до чёртиков скучен. Техника строительства полезна для реальных архитекторов, но её недостаточно для хорошего проекта. Удачная архитектура требует креативности, концепции, междисциплинарного мышления и гуманизма.

Таким же образом и классическая информатика полезна в разработке ПО, но её никогда не будет достаточно. Проектирование хорошего программного обеспечения тоже требует креативности, концепции, междисциплинарного мышления и гуманизма. Это наблюдение освобождает исследователей процесса разработки программного обеспечения. Они могут тратить время на изучение успешных методов - накапливая совокупность коллективных знаний для будущих практиков. Мы не должны втискивать разработку ПО в рамки расширения информатики на математической основе. Это не сработает и может отвлечь нас от полезных открытий, которые ещё ждут своего времени.

Выражение признательности
Благодарю Стива Гомера за дискуссию, которая разожгла мой интерес к этому вопросу.