Программирование — страница 13 из 57

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

Уже, т.е. мы не стремились к систематическому изложению основ компьютерных наук.


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

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


0.4. Творческое начало и решение задач

Основная цель книги — помочь вам выражать свои идеи в программах, а не научить придумывать эти идеи. Кроме того, мы приводим множество примеров решения задач, как правило, с помощью анализа, за которым следует последовательное уточнение решения. Мы считаем, что программирование само по себе является формой решения задач: только полностью поняв задачу и ее решение, можно написать правильную программу; и только через конструирование и тестирование программ можно прийти к полному пониманию задачи. Таким образом, программирование является неотъемлемой частью процесса познания. Однако мы стараемся продемонстрировать это на примерах, а не путем “проповеди” или подробного описания процесса решения задач.


0.5. Обратная связь

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

www.stroustrup.com/Programming
.


0.6. Библиографические ссылки

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

Austern, Matthew H. Generic Programming and the STL: Using and Extending the C++ Standard Template Library. Addison-Wesley, 1999. ISBN 0201309564.

Austern, Matthew H. (editor). “Technical Report on C++ Standard Library Extensions.” ISO/IEC PDTR 19768.

Blanchette, Jasmin, and Mark Summerfield. C++ GUI Programming with Qt 4. Prentice Hall, 2006. ISBN 0131872493.

Gamma, Erich, Richard Helm, Ralph Johnson, and John M. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. ISBN 0201633612.

Goldthwaite, Lois (editor). “Technical Report on C++ Performance.” ISO/IEC PDTR 18015.

Koenig, Andrew (editor). The C++ Standard. ISO/IEC 14882:2002. Wiley, 2003. ISBN 0470846747.

Koenig, Andrew, and Barbara Moo. Accelerated C++: Practical Programming by Example. Addison-Wesley, 2000. ISBN 020170353X.

Langer, Angelika, and Klaus Kreft. Standard C++ IOStreams and Locales: Advanced Programmer’s Guide and Reference. Addison-Wesley, 2000. ISBN 0201183951.

Meyers, Scott. Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library. Addison-Wesley, 2001. ISBN 0201749625.

Meyers, Scott. Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition). Addison-Wesley, 2005. ISBN 0321334876.

Schmidt, Douglas C., and Stephen D. Huston. C++ Network Programming, Volume 1: Mastering Complexity with ACE and Patterns. Addison-Wesley, 2002. ISBN 0201604647.

Schmidt, Douglas C., and Stephen D. Huston. C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks. Addison-Wesley, 2003. ISBN 0201795256.

Stroustrup, Bjarne. The Design and Evolution of C++. Addison-Wesley, 1994. ISBN 0201543303.

Stroustrup, Bjarne. “Learning Standard C++ as a New Language.” C/C++ Users Journal, May 1999.

Stroustrup, Bjarne. The C++ Programming Language (Special Edition). Addison-Wesley, 2000. ISBN 0201700735.

Stroustrup, Bjarne. “C and C++: Siblings”; “C and C++: A Case for Compatibility”; and “C and C++: Case Studies in Compatibility.” C/C++ Users Journal, July, Aug., Sept. 2002.

Sutter, Herb. Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions. Addison-Wesley, 2000. ISBN 0201615622.


Более полный список библиографических ссылок приведен в конце книги.


0.7. Биографии

Бьярне Страуструп

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

Это моя первая книга, представляющая собой вводный курс. Мои другие книги, такие как “Язык программирования С++” и “Дизайн и эволюция С++”, предназначены для опытных программистов.

Я родился в рабочей семье в Архусе, Дания, и получил магистерскую степень по математике и компьютерным наукам в местном университете. Докторскую степень по компьютерным наукам я получил в Кембридже, Англия. Более двадцати пяти лет я работал в компании AT&T, сначала в знаменитом Исследовательском компьютерном центре лабораторий Белла (Computer Science Research Center of Bell Labs) — именно там были изобретены операционная система Unix, языки C и C++, а также многое другое, — а позднее в подразделении AT&T Labs–Research.

Я являюсь членом Национальной технической академии США (U.S. National Academy of Engineering), Ассоциации по вычислительной технике (Association for Computing Machinery — ACM), Института инженеров по электротехнике и электронике (Institute of Electrical and Electronics Engineers — IEEE), а также сотрудником компаний Bell Laboratories и AT&T. Я был первым специалистом по компьютерным наукам, получившим в 2005 году премию Уильяма Проктера за научные достижения (William Procter Prize for Scientific Achievement), которую присуждает научное общество Sigma Xi.

Работа не занимает все мое время. Я женат, у меня двое детей. Один из них стал врачом, а другой учится в аспирантуре. Я читаю много книг (исторические повести, фантастику, детективы и труды по дипломатии) и люблю музыку (классику, рок, блюз и кантри). Застолья с друзьями составляют существенную часть моей жизни. Я люблю посещать интересные места по всему миру. Для того чтобы застолья проходили без последствий, я бегаю трусцой. За дальнейшей информацией обращайтесь на мои персональные страницы

www.research.att.com/~bs
и 
http://www.cs.tamu.edu/people/faculty/bs
. В частности, там вы узнаете, как правильно произносится мое имя[4].


Лоуренс "Пит" Петерсен

 В конце 2006 года Пит представлялся так: “Я — учитель. Почти двадцать лет я преподаю языки программирования в Техасском университете агрокультуры и машиностроения (Texas A&M). Студенты пять раз выдвигали меня на присуждение премий за успехи в преподавании (Teaching Excellence Awards), и в 1996 году я получил премию за достижения в преподавании (Distinguished Teaching Award) от ассоциации выпускников Технического колледжа (Alumni Association for the College of Engineering). Я участвую в программе усовершенствования преподавания (Wakonse Program for Teaching Excellence), а также являюсь членом Академии усовершенствования учителей (Academy for Educator Development).

Будучи сыном офицера, я легок на подъем. Получив степень по философии в университете Вашингтона (University of Washington), я двадцать два года прослужил в армии полевым артиллерийским офицером и аналитиком-исследователем по опытной эксплуатации. С 1971-го по 1973-й год я прошел Высшие курсы полевых артиллерийских офицеров в Форт-Силле, Оклахома (Field Artillery Officer’s Advanced Course at Fort Sill, Oklahoma). В 1979 я помог организовать Учебный центр офицеров-испытателей и с 1978-го по 1981-й год и с 1985-го по 1989-й год работал ведущим преподавателем на девяти разных должностях в разных регионах США.

В 1991 году я создал небольшую компанию, разрабатывавшую программное обеспечение для университетов вплоть до 1999 года. Мои интересы сосредоточены в области преподавания, проектирования и разработки программного обеспечения, предназначенного для реальных людей. Я получил магистерскую степень по техническим наукам в Технологическом институте штата Джорджия (Georgia Tech), а также магистерскую степень по педагогике в Техасском университете агрокультуры и машиностроения. Я также прошел программу подготовки магистров по микрокомпьютерам. Моя докторская диссертация по информатике и управлению написана в Техасском университете агрокультуры и машиностроения.

С женой Барбарой мы живем в г. Брайан, штат Техас. Я люблю путешествовать, ухаживать за садом и принимать гостей. Мы стараемся проводить как можно больше времени с нашими сыновьями и их семьями, особенно с внуками Ангелиной, Карлосом, Тесс, Эйвери, Николасом и Джорданом.” К несчастью, в 2007 году Пит умер от рака легкого. Без него этот курс никогда не достиг бы успеха.