В книге обобщен многолетний опыт обучения программированию в ЕТН, Цюрих. В ней удачно сочетаются три грани, характерные для профессионального программирования, - наука, искусство и инженерия. Она в первую очередь ориентирована на студентов, обучающихся в области информационных технологий, и их преподавателей, но представляет несомненный интерес для всех программистов, создающих программный продукт высокого качества. В книге излагаются основы объектно-ориентированного программирования (ООП). Особое внимание уделяется корректности программ за счет введения контрактов - предусловий, постусловий методов класса, инвариантов классов. Глубоко и подробно рассматриваются такие механизмы ООП, как наследование и универсальность. Изучаются алгоритмы и структуры данных - массивы, кортежи, списки, хэш-таблицы, различные виды распределителей, деревья. Подробно рассматриваются рекурсивные алгоритмы и рекурсивные структуры данных. Даются основы лямбда-исчисления и вводятся агенты,...
V knige obobschen mnogoletnij opyt obuchenija programmirovaniju v ETN, Tsjurikh. V nej udachno sochetajutsja tri grani, kharakternye dlja professionalnogo programmirovanija, - nauka, iskusstvo i inzhenerija. Ona v pervuju ochered orientirovana na studentov, obuchajuschikhsja v oblasti informatsionnykh tekhnologij, i ikh prepodavatelej, no predstavljaet nesomnennyj interes dlja vsekh programmistov, sozdajuschikh programmnyj produkt vysokogo kachestva. V knige izlagajutsja osnovy obektno-orientirovannogo programmirovanija (OOP). Osoboe vnimanie udeljaetsja korrektnosti programm za schet vvedenija kontraktov - preduslovij, postuslovij metodov klassa, invariantov klassov. Gluboko i podrobno rassmatrivajutsja takie mekhanizmy OOP, kak nasledovanie i universalnost. Izuchajutsja algoritmy i struktury dannykh - massivy, kortezhi, spiski, khesh-tablitsy, razlichnye vidy raspredelitelej, derevja. Podrobno rassmatrivajutsja rekursivnye algoritmy i rekursivnye struktury dannykh. Dajutsja osnovy ljambda-ischislenija i vvodjatsja agenty,...