Search found 500 matches

Author Message

Программист

Post 12-Jul-2020 20:00

[Quote]

Дизайн и эволюция языка C++, 2-ое издание
Год издания: 2011
Автор: Страуструп Б.
Издательство: ДМК-Пресс
ISBN: 5940740057
Язык: Русский
Серия: Для программистов
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 444
Описание: В книге, написанной создателем языка С++ Бьерном Страуструтоп, представлено описание процесса проектирования и разработки языка программирования С++.
Здесь изложены цели, принципы и практические ограничения, наложившие отпечаток на структуру и облик С++, обсужден дизайн недавно добавленных в язык средств: шаблонов, исключений, идентификации типа во время исполнения и пространств имен. Автор анализирует решения, принятые в ходе работы над языком, и демонстрирует, как правильно применять "реальный объектно-ориентированный язык программирования".
Книга удобно организована, поучительна, написана с юмором. Описание ключевых идей даст начинающему пользователю ту основу, на которой позже он выстроит свое понимание всех деталей языка. Опытный программист найдет здесь обсуждение принципиальных вопросов проектирования, что позволит ему лучше понять язык, с которым он работает.

Примеры страниц

Оглавление

Содержание
П р е д и с л о в и е ......................................................................................................................13
Б л а го д а р н о с ти .................................................................................................................15
О б р а щ е н и е к ч и т а т е л ю ............................................................................................. 16
Ч а С Т Ь I ...............................................................................................................................29
Глава 1. П р ед ы стор и я C + + .....................................................................................30
1.1. Язык Simula и распределенные системы ....................................................... 30
1.2. Язык С и системное программирование....................................................... 33
1.3. Немного об авторе книги ................................................................................... 33
Глава 2 . Язы к С with C la s s e s ................................................................................... 36
2.1. Рождение С with Classes ......................................................................................36
2.2. Обзор языковых возможностей ........................................................................38
2.3. Классы ........................................................................................................................39
2.4. Эффективность исполнения ...............................................................................41
2.4.1. Встраивание .....................................................................................................42
2.5. Модель компоновки ..............................................................................................43
2.5.1. Простые реализации ........................................................................................46
2.5.2. Модель размещения объекта в памяти ...........................................................48
2.6. Статический контроль типов ............................................................................. 49
2.6.1. Сужающие преобразования ........................................................................... 50
2.6.2. О пользе предупреждений ...............................................................................51
2.7. Почему С? ................................................................................................................ 52
2.8 Проблемы синтаксиса .......................................................................................... 54
2.8.1. Синтаксис объявлений в языке С ..................................................................... 54
2.8.2. Тэги структур и имена типов ............................................................................ 56
2.8.3. Важность синтаксиса .......................................................................................58
2.9. Производные классы .............................................................................................58
2.9.1. Полиморфизм без виртуальных функций ........................................................ 59
2.9.2. Контейнерные классы без шаблонов .............................................................. 60
2.9.3. Модель размещения объекта в памяти ...........................................................61
2.9.4.Ретроспектива ................................................................................................ 62
2.10. Модель защиты .....................................................................................................626 Дизайн и эволюция C++
2.11. Гарантии времени исполнения .......................................................................65
2.11.1. Конструкторы и деструкторы .........................................................................65
2.1 1.2. Распределение памяти и конструкторы .......................................................66
2.11.3. Функции call и return .....................................................................................67
2 .1 2 . М енее существенные средства ..................................................................... 67
2.12.1. Перегрузка оператора присваивания ..........................................................67
2.12.2. Аргументы по умолчанию ...............................................................................68
2 .1 3. Что не реализовано в С with Classes ..........................................................69
2 .1 4. Рабочая обстановка .......................................................................................... 70
Глава 3 . Р о ж д е н и е C + + .............................................................................................73
3.1. От С with Classes к C++ .......................................................................................73
3.2. Цел и C + + ...................................................................................................................74
3.3. Компилятор Cfront ................................................................................................. 76
3.3.1. Генерирование С-кода .....................................................................................77
3.3.2. Синтаксический анализ C++ ........................................................................... 79
3.3.3. Проблемы компоновки .....................................................................................80
3.3.4. Версии Cfront ....................................................................................................80
3.4. Возможности языка ............................................................................................... 82
3.5. Виртуальные функции ............................................................................................82
3.5.1. Модель размещения объекта в памяти ...........................................................85
3.5.2. Замещение и поиск подходящей виртуальной функции ................................. 87
3.5.3. Сокрытие членов базового класса ..................................................................87
3.6. П ер егр узка................................................................................................................88
3.6.1. Основы перегрузки .......................................................................................... 89
3.6.2. Функции-члены и дружественные функции ...................................................... 91
3.6.3. Операторные функции .....................................................................................93
3.6.4. Перегрузка и эффективность ........................................................................... 94
3.6.5. Изменение языка и новые операторы ............................................................. 96
3.7. Ссылки ........................................................................................................................96
3.7.1. Lvalue и Rvalue ...................................................................................................98
3.8. Константы ..................................................................................................................99
3.9. Управление памятью ...........................................................................................101
3.10. Контроль типов ...................................................................................................103
3 .1 1. Второстепенные возможности ......................................................................104
3.11.1. Комментарии ..............................................................................................104
3.11.2. Нотация для конструкторов ....................................................................... 104
3.11.3. Квалификация .............................................................................................. 105
3.11.4. Инициализация глобальных объектов ....................................................... 106
3.11.5. Предложения объявления .......................................................................... 109
3 .12 . Языки С и C + + ................................................................................................... 111
3.13. Инструменты для проектирования языка ..................................................1143.14. Книга «Язык программирования C + + » .......................................................116
3.15. Статья «W hatis?»................................................................................................ 117
Глава 4 . П р а в и л а п р о е к т и р о в а н и я язы ка C + + .......................................120
4.1. Правила и принципы ....................................................................................... 120
4.2. Общие правила ................................................................................................ 121
4.3. Правила поддержки проектирования ...................................................... 125
4.4. Технические правила ..................................................................................... 128
4.5. Правила поддержки низкоуровневого программирования ............ 132
4.6. Заключительное слово................................................................................... 134
Глава 5 . Х р о н о л о ги я 1 9 8 5 - 1 9 9 3 гг............................................................. 135
5 .1. Введение .............................................................................................................. 135
5 .2. Версия 2 .0 .......................................................................................................... 136
5.2.1. Обзор возможностей ................................................................................. 1 37
5 .3. Аннотированное справочное руководство ........................................... 138
5.3.1. Обзор ARM ................................................................................................ 139
5.4. Стандартизация ANSI и ISO ....................................................................... 140
5.4.1. Обзор возможностей ................................................................................. 1 43
Глава 6 . С т а н д а р т и з а ц и я .......................................................................................144
6.1. Что такое стандарт? ........................................................................................ 144
6.1.1. Детали реализации ................................................................................... 1 45
6.1.2. Тест на реалистичность .............................................................................. 146
6.2. Работа комитета ............................................................................................... 146
6.2.1. Кто работает в комитете ............................................................................ 148
6.3. Как велась работа ........................................................................................... 148
6.3.1. Разрешение имен ....................................................................................... 149
6.3.2. Время жизни объектов ................................................................................ 1 53
6.4. Расширения ........................................................................................................ 157
6.4.1. Критерии рассмотрения предложений ..................................................... 159
6.4.2. Текущее состояние дел .............................................................................. 161
6.4.3. Проблемы, связанные с полезными расширениями ................................. 1 62
6.4.4. Логическая непротиворечивость ............................................................... 1 63
6.5. Примеры предлагавшихся расширений ................................................. 164
6.5.1. Именованные аргументы ........................................................................... 1 64
6.5.2. Ограниченные указатели .......................................................................... 168
6.5.3. Наборы символов ....................................................................................... 1 69
Глава 7 . З а и н т е р е с о в а н н о с т ь и и с п о л ь з о в а н и е ................................... 174
7.1. Рост интереса к C++ ...................................................................................... 174
7.1.1. Отсутствие маркетинга C++ ...................................................................... 175
7.1.2. Конференции .............................................................................................. 175
Содержание пшяяшші8 Дизайн и эволюция C++
7.1.3. Журналы и книги .............................................................................................176
7.1.4. Компиляторы ................................................................................................. 177
7.1.5. Инструментальные средства и среды программирования ......................... 177
7.2. Преподавание и изучение C++ ......................................................................178
7.3. Пользователи и приложения ........................................................................... 183
7.3.1. Первые пользователи ................................................................................... 183
7.3.2. Сферы применения C++ .............................................................................. 184
7.4. Коммерческая конкуренция ...........................................................................184
7.4.1. Традиционные языки ......................................................................................185
7.4.2. Современные языки ....................................................................................... 186
7.4.3. Как выдержать конкуренцию ....................................................................... 187
Глава 8 . Б и б л и о теки ...................................................................................................189
8.1. Введение ..................................................................................................................189
8.2. Проектирование библиотеки C++ ................................................................189
8.2.1 .Альтернативы при проектировании библиотеки ....................................... 190
8.2.2. Языковые средства и построение библиотеки ............................................. 190
8.2.3. Как работать с разнообразными библиотеками ........................................ 191
8.3. Ранние библиотеки .............................................................................................192
8.3.1. Библиотека потокового ввода/вывода ....................................................... 193
8.3.2. Поддержка параллельности ......................................................................... 196
8.4. Другие библиотеки .............................................................................................. 198
8.4.1. Базовые библиотеки ......................................................................................199
8.4.2. Устойчивость и базы данных ..........................................................................200
8.4.3. Библиотеки для численных расчетов ............................................................. 200
8.4.4. Специализированные библиотеки ................................................................201
8.5. Стандартная библиотека .................................................................................201
Глава 9 . П ер сп екти в ы р азв и ти я язы ка C + + ..............................................203
9.1. Введение ..................................................................................................................203
9.2. Оценка пройденного пути ................................................................................203
9.2.1. Достигнуты ли основные цели C++? .............................................................. 204
9.2.2. Является ли C++ логически последовательным языком? ............................. 204
9.2.3. Основная недоработка языка ...................................................................... 207
9.3. Всего лишь мост? ................................................................................................. 208
9.3.1. Мост нужен надолго ......................................................................................208
9.3.2. Если C++ - это ответ, то на какой вопрос? ................................................. 209
9.4. Что может сделать C++ более эффективным ............................................213
9.4.1. Стабильность и стандарты ............................................................................ 213
9.4.2. Обучение и приемы .......................................................................................213
9.4.3. Системные вопросы .......................................................................................213
9.4.4. За пределами файлов и синтаксиса ............................................................. 214
9.4.5. Подведение итогов и перспективы ............................................................... 215Содержание п и я т ш ш
Ч а с т ь I I .......................................................................................................................... 217
Гл ав а 1 0 . У п р а в л е н и е пам ятью .........................................................................218
10.1. Введение .............................................................................................................. 218
10.2. Отделение распределения памяти и инициализации ..........................219
10.3. Выделение памяти для м ассива....................................................................220
10.4. Размещение объекта в памяти .................................................................... 221
10.5. Проблемы освобождения памяти ............................................................... 222
10.5.1. Освобождение памяти для массивов..........................................................224
10.6. Нехватка памяти ................................................................................................ 225
10.7. Автоматическая сборка мусора ..................................................................226
1 0.7.1. Необязательный сборщик мусора .............................................................. 226
1 0.7.2. Как должен выглядеть необязательный сборщик мусора? .........................228
Глава 1 1 . П е р е гр у з к а ...............................................................................................230
1 1 .1 .Введение .............................................................................................................. 230
11.2. Разрешение перегрузки .................................................................................230
11.2.1 .Детальноеразрешение ...............................................................................231
11.2.2. Управление неоднозначностью ..................................................................233
11.2.3. Нулевой указатель .......................................................................................236
1 1.2.4. Ключевое слово overload ............................................................................ 238
11.3. Типобезопасная компоновка........................................................................239
11.3.1. Перегрузка и компоновка ........................................................................... 239
11.3.2. Реализация компоновки в C++ ...................................................................240
11.3.3. Анализ пройденного пути ........................................................................... 241
11.4. Создание и копирование объектов ...........................................................244
1 1.4.1. Контроль допустимости копирования ........................................................ 244
1 1.4.2. Управление распределением памяти ..........................................................244
1 1.4.3. Управление наследованием ........................................................................245
11.4.4. Почленное копирование ............................................................................. 246
11.5. Удобство нотации..............................................................................................248
11.5.1. «Умные» указатели .......................................................................................248
11.5.2. «Умные» ссылки ............................. 249
11.5.3. Перегрузка операторов инкремента и декремента .................................. 252
11.5.4. Перегрузка ->* .............................................................................................254
1 1.5.5. Перегрузка оператора «запятая» .............................................................. 254
11.6. Добавление в C++ операторов ..................................................................254
11.6.1. Оператор возведения в степень .................................................................254
11.6.2. Операторы, определяемые пользователем ............................................... 257
11.6.3. Составные операторы .................................................................................258
11.7. Перечисления .....................................................................................................259
11.7.1 Перегрузка на базе перечислений .............................................................. 261
11.7.2.Тип Boolean .................................................................................................. 261Дизайн и эволюция C++
Глава 1 2 . М н о ж е с т в е н н о е н а с л е д о в а н и е ................................................. 263
12.1. Введение .............................................................................................................. 263
12.2. Базовые классы ................................................................................................. 264
12.3. Виртуальные базовые классы ...................................................................... 265
12.3.1. Виртуальные базовые классы и виртуальные функции ............................. 267
12.4. Модель размещения объекта в памяти .....................................................270
12.4.1. Размещение в памяти объекта виртуального базового класса .................272
12.4.2. Виртуальные базовые классы и приведение типов .....................................273
12.5. Комбинирование методов............................................................................. 274
12.6. Полемика о множественном наследовании .......................................... 276
12.7. Делегирование .................................................................................................. 279
12.8. Переименование...............................................................................................280
12.9. Инициализаторы членов и базовых классов .......................................... 282
Глава 1 3 . У то ч н е н и я понятия кл а с с а .............................................................284
13.1 Введение ............................................................................................................... 284
13.2. Абстрактные классы ......................................................................................... 284
1 3.2.1 .Абстрактные классы и обработка ошибок ................................................ 284
1 3.2.2. Абстрактные типы ........................................................................................286
13.2.3. Синтаксис .....................................................................................................288
1 3.2.4. Виртуальные функции и конструкторы ........................................................ 288
13.3. Константные функции-члены .........................................................................291
13.3.1. Игнорирование const при приведении типов .............................................291
13.3.2. Уточнение определения const ..................................................................... 292
1 3.3.3. Ключевое слово mutable и приведение типов ........................................... 293
13.4. Статические функции-члены ..........................................................................294
13.5. Вложенные классы.............................................................................................295
13.6. Ключевое слово inherited ...............................................................................297
13.7. Ослабление правил замещения ..................................................................299
13.7.1. Ослабление правил аргументов .................................................................301
13.8. Мультиметоды .....................................................................................................303
13.8.1. Когда нет мультиметодов ............................................................................ 305
13.9. Защищенные члены .......................................................................................... 307
13.10. Улучшенная генерация кода ...................................................................... 308
13.11. Указатели на функции-члены ..................................................................... 309
Глава 1 4 . П р и в е д е н и е ти п о в ...............................................................................311
14.1. Крупные расширения .......................................................................................311
14.2. Идентификация типа во время исполнения .............................................312
14.2.1. Зачем нужен механизм RTTI ........................................................................313
14.2.2. Оператор dynamic_cast ............................................................................. 313
14.2.3. Правильное и неправильное использование RTTI ......................................319Содержание ι ι · · · · · ο
14.2.4. Зачем давать «опасные средства» .............................................................. 321
14.2.5. Операторtypeid() ........................................................................................322
14.2.6. Модель размещения объекта в памяти ......................................................326
14.2.7. Простой ввод/вывод объектов .................................................................... 327
14.2.8. Другие варианты .......................................................................................... 329
14.3. Новая нотация для приведения типов ..................................................... 333
14.3.1. Недостатки старых приведений типов ........................................................ 334
14.3.2. Оператор static_cast ................................................................................... 335
14.3.3. Оператор reinterpret_cast ........................................................................... 337
14.3.4. Оператор const_cast ................................................................................... 339
14.3.5. Преимущества новых приведений типов ....................................................340
Глава 15 . Ш а б л о н ы ....................................................................................................343
15.1. Введение .............................................................................................................. 343
15.2. Зачем нужны шаблоны ................................................................................... 344
15.3. Шаблоны классов .............................................................................................346
15.3.1 .Аргументы шаблонов, не являющиеся типами ............................................347
15.4. Ограничения на аргументы шаблонов .....................................................348
15.4.1. Ограничения за счет наследования ............................................................349
15.4.2. Ограничения за счет использования ..........................................................350
15.5. Устранение дублирования кода ..................................................................351
15.6. Шаблоны ф ункций.............................................................................................353
15.6.1. Выведение аргументов шаблона функции ................................................. 354
15.6.2. Задание аргументов шаблона функции .....................................................355
15.6.3. Перегрузка шаблона функции .................................................................... 357
15.7. Синтаксис.............................................................................................................360
15.8. Методы композиции ......................................................................................... 361
15.8.1. Представление стратегии реализации ....................................................... 362
15.8.2. Представление отношений порядка ...........................................................363
15.9. Соотношения между шаблонами классов ..............................................365
15.9.1. Отношения наследования ........................................................................... 365
15.9.2. Преобразования ......................................................................................... 367
15.9.3. Шаблоны-члены ............................. 368
15.10. Инстанцирование шаблонов..................................................................... 369
15.10.1. Явное инстанцирование ............................................................................ 371
15.10.2. Точка инстанцирования ............................................................................ 372
15.10.3. Специализация .......................................................................................... 378
15.10.4. Нахождение определений шаблонов ....................................................... 381
15.11. Последствия введения шаблонов ............................................................. 383
15.11.1. Отделение реализации от интерфейса ....................................................384
15.11.2. Гибкость и эффективность .........................................................................384
15.1 1.3. Влияние на другие компоненты C++ ........................................................ 385Дизайн и эволюция C++
Глава 1 6 . О б р а б о т к а и с кл ю ч е н и й ..................................................................387
16.1. Введение .............................................................................................................. 387
16.2. Цели и предположения ................................................................................... 388
16.3. Синтаксис.............................................................................................................389
16.4. Группировка ........................................................................................................ 390
16.5. Управление ресурсами .................................................................................. 391
1 6.5.1. Ошибки в конструкторах ............................................................................ 393
1 6.6. Возобновление или завершение? .............................................................. 394
1 6.6.1. Обходные пути для реализации возобновления ........................................397
16.7. Асинхронные события ......................................................................................398
16.8. Распространение на несколько уровней ................................................ 399
16.9. Статическая проверка .................................................................................... 399
16.9.1. Вопросы реализации ................................................................................... 401
16.10. Инварианты ......................................................................................................402
Глава 1 7 . П р о с тр а н с тв а им ен ...........................................................................403
17.1. Введение .............................................................................................................. 403
17.2. Для чего нужны пространства имен ...........................................................404
17.2.1. Обходные пути .............................................................................................404
17.3. Какое решение было бы лучшим? .............................................................. 406
17.4. Решение: пространства имен ...................................................................... 408
17.4.1. Мнения по поводу пространств имен ......................................................... 410
17.4.2. Внедрение пространств имен ....................................................................411
17.4.3. Псевдонимы пространства имен .................................................................412
17.4.4. Использование пространств имен для управления версиями ...................413
17.4.5. Технические детали ..................................................................................... 415
17.5. Классы и пространства имен ........................................................................421
17.5.1. Производные классы ................................................................................... 421
17.5.2. Использование базовых классов ............................................................... 423
17.5.3. Исключение глобальных статических объявлений ......................................424
17.6. Совместимость с С ........................................................................................... 425
Глава 18 . П р е п р о ц е с с о р е .................................................................................. 427
А лф авитны й у к а з а т е л ь .............................................................................................431

Программист

Post 11-Jul-2020 02:35

[Quote]

Foundations of Computer Science. Fourth Edition / Основы информатики. Четвёртое издание
Год издания: 2018
Автор: Forouzan B. / Фороузан Б. А.
Издательство: Cengage Learning EMEA; 4 edition (15 Dec. 2017)
ISBN: 978-1473751040
Язык: Английский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 672
Описание: "Основы информатики. Четвёртое издание" Бехроуза А. Фороузана (издание на английском языке).
Based on the Association for Computing Imagery model curriculum guidelines, Foundations of Computer Science gives students a bird’s eye view of Computer Science. This easy-to-read and easy-to-navigate text covers all the fundamentals of computer science required for first year undergraduates embarking on a computing degree. Updated to cover the latest technologies and changes to course requirements, this fourth edition features new chapters, including new coverage on social media and ethical issues.
Product description
About the Author
Behrouz Forouzan has more than 35 years of electronics and computer science experience in industry and academia. His industry experience includes designing electronic systems. After leaving the industry, he joined De Anza College as a professor of computer science. In addition to this text, he has authored and co-authored nine other textbooks including: Computer Science: A Structured Approach Using C, Computer Science: A Structured Approach Using C++, and Data Structures: A Pseudocode Approach with C++.

Примеры страниц

Оглавление

Программист

Post 09-Jul-2020 18:20

[Quote]

Конструктор игр Clickteam Fusion
Год издания: 2018
Автор: Углев С.Л.
Жанр или тематика: Программирование, Разработка игр, Игровые движки
Издательство: ЛитРес: Самиздат
Язык: Русский
Формат: FB2/RTF/PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 430 стр
Описание: Книга "Конструктор игр Clickteam Fusion" была создана в рамках проекта Youtube-канала "Clickteam по-русски". Автор выражает надежду, что новая книга оправдает себя, облегчит работу и поможет творчеству читателя в таком непростом деле.

Примеры страниц

-Скачать "Clickteam Fusion 2.5"

Программист

Post 02-Jul-2020 19:40

[Quote]

Программист-прагматик, 2-е юбилейное издание
Год издания: 2020
Автор: Хант Э., Томас Д.
Издательство: Диалектика
ISBN: 978-5-907203-32-7
Язык: Русский
Формат: PDF
Качество: Отсканированные страницы + слой распознанного текста
Количество страниц: 370
Описание: Книга «программист-прагматик» написана в виде последовательных законченных разделов и изобилует анекдотами, серьезными примерами и разнообразными аналогиями. В ней описываются самые интересные случаи из практики авторов и основные ловушки, относящиеся к разным аспектам разработки программ. Будь вы новичок, опытный программист или менеджер, ответственный за проекты в области программного обеспечения, — в любом случае используйте в своей работе уроки, описанные в книге, и вскоре ваша производительность, точность и удовлетворение от сделанной работы возрастут. Вы получите навыки и сформируете привычки, которые станут основой для долгосрочной успешной карьеры. Вы станете программистом-прагматиком.

Примеры страниц

Оглавление

Об авторах 15
Предисловие 16
Глава 1. Философия прагматизма 29
Тема 1. Это ваша жизнь 30
Тема 2. Кот съел мой исходный код 31
Доверие в команде 32
Взятие на себя ответственности 32
Тема 3. Программная энтропия 34
Прежде всего — не навредить 36
Тема 4. Суп из камней и вареные лягушки 37
Со стороны селян 38
Тема 5. Достаточно хорошее программное обеспечение 40
Идите на компромиссы с пользователями 41
Знайте меру 42
Тема 6. Ваш багаж знаний 43
Ваш багаж знаний 43
Создание своего багажа знаний 44
Цели 45
Возможности для обучения 47
Критическое мышление 47
Тема 7. Общайтесь! 49
Знайте, с кем вы общаетесь 50
Знайте, что вам требуется сказать 51
Выбирайте удобный момент 51
Выбирайте стиль общения 52
Подавайте свои идеи в привлекательной форме 52
Привлекайте тех, с кем общаетесь 53
Учитесь слушать 53
Отвечайте людям 53
Документация 54
Краткие итоги 54
Глава 2. Прагматичный подход 57
Тема 8. Сущность качественного проектирования 58
Принцип ETC — это ценность, а не правило 58
Тема 9. DRY — пороки дублирования 60
Принцип DRY не только для кодирования 61
Дублирование в исходном коде 62
Оглавление 7
Дублирование в документации 64
Представительное дублирование 67
Дублирование среди разработчиков 68
Тема 10. Ортогональность 69
Что такое ортогональность 69
Преимущества ортогональности 71
Проектирование 72
Инструментальные средства и библиотеки 74
Кодирование 75
Тестирование 76
Документация 76
Как уживаться с ортогональностью 77
Тема 11. Обратимость 79
Обратимость 80
Гибкая архитектура 81
Тема 12. Трассирующие пули 83
Код, сверкающий в темноте 84
Трассирующие пули не всегда попадают в цель 87
Трассирующий код в сравнении с прототипированием 87
Тема 13. Прототипы и памятные записки 89
Что подлежит прототипированию 90
Как пользоваться прототипами 91
Прототипирование архитектуры 91
Как не следует пользоваться прототипами 92
Тема 14. Предметно-ориентированные языки 93
Некоторые предметно-ориентированные языки 94
Характеристики предметно-ориентированных языков 96
Компромисс между внутренними и внешними предметноориентированными языками 97
Внутренний предметно-ориентированный язык почти даром 98
Тема 15. Оценивание 100
Какой точности оценки достаточно? 100
Откуда берутся оценки 101
Оценивание сроков выполнения проектов 103
Что ответить на просьбу что-нибудь оценить 105
Глава 3. Основные инструментальные средства 107
Тема 16. Сила простого текста 109
Что такое простой текст 109
В чем сила простого текста 110
Наименьший общий знаменатель 112
8 Оглавление
Тема 17. Игры в скорлупки 113
Ваша собственная оболочка 114
Тема 18. Эффективное редактирование 116
Что означает свободное владение редактором 116
Стремление к свободному владению редактором 117
Тема 19. Контроль версий 119
Все начинается с исходного кода 120
Ветвление 121
Контроль версий как центральный узел проекта 122
Тема 20. Отладка 124
Психология отладки программ 125
Мысленная установка на отладку 125
С чего начинать отладку 126
Стратегии отладки 127
Программист в чужой стране 128
Бинарный поиск 129
Метод резинового утенка 131
Элемент удивления 133
Контрольный список вопросов по отладке 134
Тема 21. Манипулирование текстом 134
Тема 22. Технические дневники 137
Глава 4. Прагматичная паранойя 139
Тема 23. Проектирование по контракту 140
Принцип проектирования по контракту 141
Реализация проектирования по контракту 145
Проектирование по контракту и аварийное завершение 146
Семантические инварианты 146
Динамические контракты и агенты 148
Тема 24. Мертвые программы не лгут 149
Принцип “поймал–отпустил” — только для ловли рыбы 150
Аварийное завершение вместо отправки на свалку 151
Тема 25. Утвердительное программирование 152
Утверждения и побочные эффекты 153
Оставляйте включенным режим утверждений 154
Тема 26. Как сбалансировать ресурсы 156
Вложенное выделение ресурсов 159
Объекты и исключения 159
Баланс исключений 160
Когда нельзя сбалансировать ресурсы 161
Проверка баланса 162
Оглавление 9
Тема 27. Не опережайте свет фар вашего автомобиля 163
Черные лебеди 165
Глава 5. Гибкость или ломкость 167
Тема 28. Развязывание 168
Крушения поездов 170
Изъяны глобализации 173
Наследование усугубляет связывание 175
Все дело в изменениях 175
Тема 29. Манипулирование реальным миром 176
События 176
Конечные автоматы 177
Проектный шаблон “Обозреватель” 181
Модель “издатель–подписчик” 182
Реактивное программирование, потоки данных и события 183
События вездесущи 185
Тема 30. Преобразовательное программирование 186
Обнаружение преобразований 189
В чем же здесь польза 193
А как насчет обработки ошибок 194
Преобразования преобразуют программирование 198
Тема 31. Налог на наследование 199
Немного предыстории 199
Трудности применения наследования для совместного использования кода 200
Лучшие альтернативы 202
Наследование редко является ответом 207
Тема 32. Конфигурирование 208
Статическая конфигурация 208
Конфигурация как служба 209
Не пишите морально устаревший код 210
Глава 6. Параллельность 213
Тема 33. Разрывание временного связывания 214
В поисках параллельности 215
Возможности для достижения параллельности 216
Возможности для достижения параллелизма 217
Выявить возможности проще всего 219
Тема 34. Общее состояние — неверное состояние 219
Неатомарные обновления 220
Множественные транзакции ресурсов 224
Обновления без транзакций 225
10 Оглавление
Другие виды исключительного доступа 226
Доктор, мне больно… 226
Тема 35. Акторы и процессы 227
Акторы могут быть только параллельными 227
Простой актор 228
Отсутствие явной параллельности 232
Erlang подготавливает почву 232
Тема 36. Классные доски 233
Классная доска в действии 235
Системы обмена сообщениями могут быть подобны классным доскам 236
Но не все так просто… 237
Глава 7. По ходу кодирования 239
Тема 37. Прислушивайтесь к своим инстинктам 241
Боязнь пустой страницы 241
Борьба с собой 242
Как прислушиваться к своим инстинктам 243
Время играть! 243
Не только свой код 244
Не только код 245
Тема 38. Программирование по совпадению 245
Как программировать по совпадению 246
Как программировать обдуманно 250
Тема 39. Быстродействие алгоритмов 252
Что подразумевается под оценкой алгоритмов 252
Асимптотическое обозначение 253
Разумное оценивание алгоритмов 255
Быстродействие алгоритма на практике 256
Тема 40. Рефакторинг 259
Когда следует выполнять рефакторинг 261
Порядок выполнения рефакторинга 263
Тема 41. Тестировать, чтобы кодировать 265
Обдумывание тестов 265
Кодирование на основе тестов 266
Применяя разработку, на основе тестирования,
нужно знать, куда идти 268
Возврат к коду 270
Модульное тестирование 271
Тестирование соответствия контракту 271
Специальное тестирование 273
Создание тестового окна 273
Культура тестирования 274
Оглавление 11
Тема 42. Тестирование на основе свойств 276
Контракты, инварианты и свойства 276
Генерация тестовых данных 277
Выявление неудачных допущений 278
Тесты на основе свойств способны удивлять 281
Тесты на основе свойств помогают проектировать 282
Тема 43. Будьте осторожны 283
Другие 90% 283
Основные принципы защиты 284
Здравый смысл и криптография 288
Тема 44. Именование 291
Уважение к культуре 293
Согласованность 294
Переименовывать еще труднее 295
Глава 8. До начала проекта 297
Тема 45. Западня требований 298
Миф о требованиях 298
Программирование как терапия 299
Требования — это процесс 300
Поставьте себя на место клиента 301
Требования и правила 302
Требования и реальность 303
Документирование требований 303
Излишне подробная спецификация 305
“Еще одну мятную вафельную пластинку…” 305
Ведение словаря терминов проекта 305
Тема 46. Решение неразрешимых головоломок 307
Степени свободы 308
Идите своим путем! 309
Судьба благоволит подготовленному уму 310
Тема 47. Совместная работа 311
Парное программирование 312
Групповое программирование 313
Что следует делать? 313
Тема 48. Сущность гибкости 315
Гибкий процесс вообще невозможен 316
Что же тогда делать? 317
И это движет проект 318
12 Оглавление
Глава 9. Прагматичные проекты 319
Тема 49. Прагматичные команды 320
Никаких разбитых окон 321
Сваренные лягушки 321
Планирование пополнения багажа знаний 322
Внешнее общение команды 323
Не повторяйтесь 323
Трассирующие пули в команде 324
Автоматизация 325
Знайте, когда остановиться 325
Тема 50. Кокосами не обойтись 326
Все дело в контексте 327
Один и тот же подход годится не всем 328
Главная цель 329
Тема 51. Начальный набор инструментальных средств
программиста-прагматика 331
Ведение проекта путем контроля версий 332
Строгое и непрерывное тестирование 332
Затягивание сетки 336
Полная автоматизация 337
Тема 52. Доставляйте удовольствие своим пользователям 338
Тема 53. Гордость и предубеждение 340
Приложение А. Послесловие 343
Нравственный ориентир 344
Представляйте будущее таким, каким вы хотите его видеть 345
Приложение Б. Библиография 347
Приложение В. Возможные ответы на упражнения 349
Предметный указатель 364

Программист

Post 23-Jun-2020 02:35

[Quote]

Код. Тайный язык информатики
Год издания: 2019
Автор: Петцольд Чарльз
Переводчик: Олег Сивченко
Жанр или тематика: зарубежная компьютерная литература, зарубежная образовательная литература, книги о компьютерах, научно-популярная литература
Теги: алгоритмы, изобретения, компьютерные технологии, технологии, электронные устройства
Издательство: Манн, Иванов и Фербер (МИФ)
ISBN: 978-5-00117-545-2
Язык: Русский
Формат: EPUB/FB2/MOBI/PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 750 стр. 526 иллюстраций
Описание: Аннотация от ЛитРес
Какое отношение имеют карманные фонарики, британское вторжение, черные кошки и качели к… компьютерам? Используя предметы и явления повседневности, а также знакомые всем языковые системы, такие как шрифт Брайля и азбука Морзе, американский программист и специалист по работе с Microsoft Windows Чарльз Петцольд рассказывает о загадочной внутренней жизни компьютеров и других «умных» машин.
Автор описывает способы манипулирования языком, граничащие с гениальностью, а также рассказывает об инновациях в сфере коммуникации и о том, каким образом изобретательность и человеческое стремление к общению стимулировали технологические открытия последних двух столетий.
«Код» – это детально иллюстрированная и максимально понятная книга, дающая реальный контекст для понимания современного мира ПК, цифровых медиа и Интернета. Ваш уровень технической подготовки не имеет значения: «Код» захватит вас с первых страниц и, возможно, даже растормошит вашего внутреннего технофила.
Читайте научно-популярную книгу Чарльза Петцольда «Код. Тайный язык информатики» онлайн или скачайте в подходящем формате на ЛитРес.
Описание от издательства
Книга «Код» представляет собой увлекательное путешествие в прошлое – мир электрических устройств и телеграфных машин. Знакомство с прообразами первых компьютеров позволит читателю с любым уровнем технической подготовки узнать о том, как работают современные электронные устройства.
Возрастное ограничение: 16+

Примеры страниц

Оглавление

Чарльз Петцольд. Код. Тайный язык информатики
Информация от издательства
Предисловие к оригинальному изданию
Глава 1. Лучшие друзья
Глава 2. Коды и комбинации
Глава 3. Брайль и двоичные коды
Глава 4. Устройство фонарика
Глава 5. Заглядывая за угол
Глава 6. Телеграфы и реле
Глава 7. Наши десять цифр
Глава 8. Альтернативы десятке
Глава 9. За битом бит
Глава 10. Логика и переключатели
Глава 11. Логические вентили
Глава 12. Двоичный сумматор
Глава 13. А как насчет вычитания?
Глава 14. Обратная связь и триггеры
Глава 15. Байты и шестнадцатеричные числа
Глава 16. Сборка памяти
Глава 17. Автоматизация
Глава 18. От счетов к микросхемам
Глава 19. Два классических микропроцессора
Глава 20. Набор символов ASCII
Глава 21. Шины
Глава 22. Операционная система
Глава 23. Фиксированная точка, плавающая точка
Глава 24. Языки высокого и низкого уровня
Глава 25. Графическая революция
Благодарности
Об авторе
Эту книгу хорошо дополняют:
Доп. информация: Дата написания: 2000

Программист

Post 23-Jun-2020 00:15

[Quote]

Programming Computer Vision With Python / Программирование компьютерного зрения на Python
Год издания: 2016
Автор: Jan Erik Solem / Ян Эрик Солем
Переводчик: Слинкин А.А.
Издательство: ДМК Пресс
ISBN: 978-5-97060-200-3
Язык: Русский
Формат: PDF
Качество: Отсканированные страницы
Интерактивное оглавление: Нет
Количество страниц: 312
Описание:
Если вы хотите разобраться в основах теории и алгоритмов компьютерного зрения, то эта книга - как раз то, что вам нужно. Вы узнаете о методах распознавания объектов, трехмерной реконструкции, обработке стереоизображений, дополненной реальности и других приложениях компьютерного зрения.
Изложение сопровождается понятными примерами на языке Python. При этом объяснения даются в общих чертах, без погружения в сухую теорию.
Издание идеально подходит для студентов, исследователей и энтузиастов-любителей с базовыми знаниями математики и навыками программирования.
Код доступен по адресу - http://dl.dmkpress.com/978-5-97060-200-3.zip

Примеры страниц

Программист

Post 22-Jun-2020 23:05

[Quote]

Learning Robotics using Python / Изучение робототехники с использованием Python. Второе издание
Год издания: 2019
Автор: Joseph Lentin / Джозеф Лентин
Переводчик: Корягин А.В. 
Издательство: ДМК Пресс
ISBN: 978-5-97060-749-7
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 251
Описание: В данной книге рассказывается, как с нуля построить автономный мобильный обслуживающий робот, с помощью которого можно подавать еду в квартире, гостинице и ресторане. Благодаря подробным пошаговым инструкциям читатель узнает весь процесс разработки робота - начиная с теоретической части (принципы дифференциального привода, кинематики и обратной кинематики) и заканчивая практической реализацией (сборка отдельных компонентов, согласование приводов и датчиков с контроллерами).
Много внимания уделено программной части - использованию метаоперационной системы ROS, моделированию в Gazebo, обработке изображений в OpenCV, разработке GUI робота на Qt и Python.
Издание предназначено для широкого круга читателей, увлеченных робототехникой, программированием и самостоятельной сборкой различных DIY-устройств.
Код доступен по адресу - https://github.com/PacktPublishing/Learning-Robotics-using-Python-Second-Edition

Примеры страниц

Программист

Post 22-Jun-2020 21:55

[Quote]

Программирование для детей. Делай игры и учи язык Scratch!
Год издания: 2017
Автор: Эл Свейгарт
Переводчик: Михаил Райтман
Жанр или тематика: Программирование
Издательство: Эксмо
ISBN: 978-5-699-98943-0
Серия: Программирование для детей
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 301
Описание: Интересный, понятный и красочный самоучитель для детей по самому популярному в мире языку для начинающих программистов – Scratch. На примере создания веселых классических игр, таких как «Змейка» и «Фруктовый ниндзя», читатели не только осваивают Scratch, но и лучше понимают основные принципы программирования. Книга будет интересна и тем, кто никогда не программировал, и тем, кто хочет создавать собственные игры, но не знает как. Она подходит как для самостоятельного изучения Scratch, так и для совместных занятий с родителями или педагогом.

Примеры страниц

Программист

Post 22-Jun-2020 06:45

[Quote]

Clean Agile: Back to Basics / Чистый Agile. Основы гибкости
Год издания: 2020
Автор: Robert C. Martin / Роберт Мартин
Переводчик: Сигайлюк И.
Издательство: Питер
ISBN: 978-5-4461-1552-5
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 272
Описание: Прошло почти двадцать лет с тех пор, как появился Манифест Agile. Легендарный Роберт Мартин (Дядя Боб) понял, что пора стряхнуть пыль с принципов Agile и заново рассказать о гибком подходе не только новому поколению программистов, но и специалистам из других отраслей.
Автор полюбившихся айтишникам книг «Чистый код», «Идеальный программист», «Чистая архитектура» стоял у истоков Agile. «Чистый Agile» устраняет недопонимание и путаницу, которые за годы существования Agile усложнили его применение по сравнению с изначальным замыслом.
По сути Agile — это всего лишь небольшая подборка методов и инструментов, помогающая небольшим командам программистов управлять небольшими проектами, но приводящая к большим результатам, потому что каждый крупный проект состоит из огромного количества кирпичиков. Пять десятков лет работы с проектами всех мыслимых видов и размеров позволяют Дяде Бобу показать, как на самом деле должен работать Agile.
Если вы хотите понять преимущества Agile, не ищите легких путей — нужно правильно применять Agile. «Чистый Agile» расскажет, как это делать разработчикам, тестировщикам, руководителям, менеджерам проектов и клиентам.

Примеры страниц

Программист

Post 16-Jun-2020 20:50

[Quote]

Нейронные сети. Эволюция
Год издания: 2019
Автор: Каниа Кан
Издательство: ЛитРес: Самиздат
Язык: Русский
Формат: PDF/EPUB
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Нет
Количество страниц: 400/417
Описание:
Эта книга предназначена для всех, кто хочет разобраться в том, как устроены нейронные сети. Для тех читателей, кто хочет сам научиться программировать нейронные сети, без использования специализированных библиотек машинного обучения. Книга предоставляет возможность с нуля разобраться в сути работы искусственных нейронов и нейронных сетей, математических идей, лежащих в их основе, где от вас не требуется никаких специальных знаний, не выходящих за пределы школьного курса в области математики.
Код доступен по адресу - https://github.com/CaniaCan/neuralmaster

Примеры страниц

Программист

Post 15-Jun-2020 11:40

[Quote]

Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd edition / Практическое Машинное обучение с Scikit-Learn, Keras, и TensorFlow, 2-е издание
Год издания: 2019
Автор: Geron A. / Герон А.
Издательство: O'Reilly
ISBN: 978-1-492-03264-9
Язык: Английский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 851
Описание: Through a series of recent breakthroughs, deep learning has boosted the entire field of machine learning. Now, even programmers who know close to nothing about this technology can use simple, efficient tools to implement programs capable of learning from data.
The updated edition of this best-selling book uses concrete examples, minimal theory, and two production-ready Python frameworks—Scikit-Learn and TensorFlow 2—to help you gain an intuitive understanding of the concepts and tools for building intelligent systems. Practitioners will learn a range of techniques that they can quickly put to use on the job. Part 1 employs Scikit-Learn to introduce fundamental machine learning tasks, such as simple linear regression. Part 2, which has been significantly updated, employs Keras and TensorFlow 2 to guide the reader through more advanced machine learning methods using deep neural networks. With exercises in each chapter to help you apply what you’ve learned, all you need is programming experience to get started.

Примеры страниц

Оглавление

Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Part I. The Fundamentals of Machine Learning
1. The Machine Learning Landscape. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
What Is Machine Learning? 2
Why Use Machine Learning? 2
Examples of Applications 5
Types of Machine Learning Systems 7
Supervised/Unsupervised Learning 7
Batch and Online Learning 14
Instance-Based Versus Model-Based Learning 17
Main Challenges of Machine Learning 23
Insufficient Quantity of Training Data 23
Nonrepresentative Training Data 25
Poor-Quality Data 26
Irrelevant Features 27
Overfitting the Training Data 27
Underfitting the Training Data 29
Stepping Back 30
Testing and Validating 30
Hyperparameter Tuning and Model Selection 31
Data Mismatch 32
Exercises 33
2. End-to-End Machine Learning Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Working with Real Data 35
iiiLook at the Big Picture 37
Frame the Problem 37
Select a Performance Measure 39
Check the Assumptions 42
Get the Data 42
Create the Workspace 42
Download the Data 46
Take a Quick Look at the Data Structure 47
Create a Test Set 51
Discover and Visualize the Data to Gain Insights 56
Visualizing Geographical Data 56
Looking for Correlations 58
Experimenting with Attribute Combinations 61
Prepare the Data for Machine Learning Algorithms 62
Data Cleaning 63
Handling Text and Categorical Attributes 65
Custom Transformers 68
Feature Scaling 69
Transformation Pipelines 70
Select and Train a Model 72
Training and Evaluating on the Training Set 72
Better Evaluation Using Cross-Validation 73
Fine-Tune Your Model 75
Grid Search 76
Randomized Search 78
Ensemble Methods 78
Analyze the Best Models and Their Errors 78
Evaluate Your System on the Test Set 79
Launch, Monitor, and Maintain Your System 80
Try It Out! 83
Exercises 84
3. Classification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
MNIST 85
Training a Binary Classifier 88
Performance Measures 88
Measuring Accuracy Using Cross-Validation 89
Confusion Matrix 90
Precision and Recall 92
Precision/Recall Trade-off 93
The ROC Curve 97
Multiclass Classification 100
iv | Table of ContentsError Analysis 102
Multilabel Classification 106
Multioutput Classification 107
Exercises 108
4. Training Models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Linear Regression 112
The Normal Equation 114
Computational Complexity 117
Gradient Descent 118
Batch Gradient Descent 121
Stochastic Gradient Descent 124
Mini-batch Gradient Descent 127
Polynomial Regression 128
Learning Curves 130
Regularized Linear Models 134
Ridge Regression 135
Lasso Regression 137
Elastic Net 140
Early Stopping 141
Logistic Regression 142
Estimating Probabilities 143
Training and Cost Function 144
Decision Boundaries 145
Softmax Regression 148
Exercises 151
5. Support Vector Machines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Linear SVM Classification 153
Soft Margin Classification 154
Nonlinear SVM Classification 157
Polynomial Kernel 158
Similarity Features 159
Gaussian RBF Kernel 160
Computational Complexity 162
SVM Regression 162
Under the Hood 164
Decision Function and Predictions 165
Training Objective 166
Quadratic Programming 167
The Dual Problem 168
Kernelized SVMs 169
Table of Contents | vOnline SVMs 172
Exercises 174
6. Decision Trees. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Training and Visualizing a Decision Tree 175
Making Predictions 176
Estimating Class Probabilities 178
The CART Training Algorithm 179
Computational Complexity 180
Gini Impurity or Entropy? 180
Regularization Hyperparameters 181
Regression 183
Instability 185
Exercises 186
7. Ensemble Learning and Random Forests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Voting Classifiers 189
Bagging and Pasting 192
Bagging and Pasting in Scikit-Learn 194
Out-of-Bag Evaluation 195
Random Patches and Random Subspaces 196
Random Forests 197
Extra-Trees 198
Feature Importance 198
Boosting 199
AdaBoost 200
Gradient Boosting 203
Stacking 208
Exercises 211
8. Dimensionality Reduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
The Curse of Dimensionality 214
Main Approaches for Dimensionality Reduction 215
Projection 215
Manifold Learning 218
PCA 219
Preserving the Variance 219
Principal Components 220
Projecting Down to d Dimensions 221
Using Scikit-Learn 222
Explained Variance Ratio 222
Choosing the Right Number of Dimensions 223
vi | Table of ContentsPCA for Compression 224
Randomized PCA 225
Incremental PCA 225
Kernel PCA 226
Selecting a Kernel and Tuning Hyperparameters 227
LLE 230
Other Dimensionality Reduction Techniques 232
Exercises 233
9. Unsupervised Learning Techniques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Clustering 236
K-Means 238
Limits of K-Means 248
Using Clustering for Image Segmentation 249
Using Clustering for Preprocessing 251
Using Clustering for Semi-Supervised Learning 253
DBSCAN 255
Other Clustering Algorithms 258
Gaussian Mixtures 260
Anomaly Detection Using Gaussian Mixtures 266
Selecting the Number of Clusters 267
Bayesian Gaussian Mixture Models 270
Other Algorithms for Anomaly and Novelty Detection 274
Exercises 275
Part II. Neural Networks and Deep Learning
10. Introduction to Artificial Neural Networks with Keras. . . . . . . . . . . . . . . . . . . . . . . . . . 279
From Biological to Artificial Neurons 280
Biological Neurons 281
Logical Computations with Neurons 283
The Perceptron 284
The Multilayer Perceptron and Backpropagation 289
Regression MLPs 292
Classification MLPs 294
Implementing MLPs with Keras 295
Installing TensorFlow 2 296
Building an Image Classifier Using the Sequential API 297
Building a Regression MLP Using the Sequential API 307
Building Complex Models Using the Functional API 308
Using the Subclassing API to Build Dynamic Models 313
Table of Contents | viiSaving and Restoring a Model 314
Using Callbacks 315
Using TensorBoard for Visualization 317
Fine-Tuning Neural Network Hyperparameters 320
Number of Hidden Layers 323
Number of Neurons per Hidden Layer 324
Learning Rate, Batch Size, and Other Hyperparameters 325
Exercises 327
11. Training Deep Neural Networks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
The Vanishing/Exploding Gradients Problems 332
Glorot and He Initialization 333
Nonsaturating Activation Functions 335
Batch Normalization 338
Gradient Clipping 345
Reusing Pretrained Layers 345
Transfer Learning with Keras 347
Unsupervised Pretraining 349
Pretraining on an Auxiliary Task 350
Faster Optimizers 351
Momentum Optimization 351
Nesterov Accelerated Gradient 353
AdaGrad 354
RMSProp 355
Adam and Nadam Optimization 356
Learning Rate Scheduling 359
Avoiding Overfitting Through Regularization 364
ℓ1 and ℓ2 Regularization 364
Dropout 365
Monte Carlo (MC) Dropout 368
Max-Norm Regularization 370
Summary and Practical Guidelines 371
Exercises 373
12. Custom Models and Training with TensorFlow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
A Quick Tour of TensorFlow 376
Using TensorFlow like NumPy 379
Tensors and Operations 379
Tensors and NumPy 381
Type Conversions 381
Variables 382
Other Data Structures 383
viii | Table of ContentsCustomizing Models and Training Algorithms 384
Custom Loss Functions 384
Saving and Loading Models That Contain Custom Components 385
Custom Activation Functions, Initializers, Regularizers, and Constraints 387
Custom Metrics 388
Custom Layers 391
Custom Models 394
Losses and Metrics Based on Model Internals 397
Computing Gradients Using Autodiff 399
Custom Training Loops 402
TensorFlow Functions and Graphs 405
AutoGraph and Tracing 407
TF Function Rules 409
Exercises 410
13. Loading and Preprocessing Data with TensorFlow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
The Data API 414
Chaining Transformations 415
Shuffling the Data 416
Preprocessing the Data 419
Putting Everything Together 420
Prefetching 421
Using the Dataset with tf.keras 423
The TFRecord Format 424
Compressed TFRecord Files 425
A Brief Introduction to Protocol Buffers 425
TensorFlow Protobufs 427
Loading and Parsing Examples 428
Handling Lists of Lists Using the SequenceExample Protobuf 429
Preprocessing the Input Features 430
Encoding Categorical Features Using One-Hot Vectors 431
Encoding Categorical Features Using Embeddings 433
Keras Preprocessing Layers 437
TF Transform 439
The TensorFlow Datasets (TFDS) Project 441
Exercises 442
14. Deep Computer Vision Using Convolutional Neural Networks. . . . . . . . . . . . . . . . . . . 445
The Architecture of the Visual Cortex 446
Convolutional Layers 448
Filters 450
Stacking Multiple Feature Maps 451
Table of Contents | ixTensorFlow Implementation 453
Memory Requirements 456
Pooling Layers 456
TensorFlow Implementation 458
CNN Architectures 460
LeNet-5 463
AlexNet 464
GoogLeNet 466
VGGNet 470
ResNet 471
Xception 474
SENet 476
Implementing a ResNet-34 CNN Using Keras 478
Using Pretrained Models from Keras 479
Pretrained Models for Transfer Learning 481
Classification and Localization 483
Object Detection 485
Fully Convolutional Networks 487
You Only Look Once (YOLO) 489
Semantic Segmentation 492
Exercises 496
15. Processing Sequences Using RNNs and CNNs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Recurrent Neurons and Layers 498
Memory Cells 500
Input and Output Sequences 501
Training RNNs 502
Forecasting a Time Series 503
Baseline Metrics 505
Implementing a Simple RNN 505
Deep RNNs 506
Forecasting Several Time Steps Ahead 508
Handling Long Sequences 511
Fighting the Unstable Gradients Problem 512
Tackling the Short-Term Memory Problem 514
Exercises 523
16. Natural Language Processing with RNNs and Attention. . . . . . . . . . . . . . . . . . . . . . . . 525
Generating Shakespearean Text Using a Character RNN 526
Creating the Training Dataset 527
How to Split a Sequential Dataset 527
Chopping the Sequential Dataset into Multiple Windows 528
x | Table of ContentsBuilding and Training the Char-RNN Model 530
Using the Char-RNN Model 531
Generating Fake Shakespearean Text 531
Stateful RNN 532
Sentiment Analysis 534
Masking 538
Reusing Pretrained Embeddings 540
An Encoder–Decoder Network for Neural Machine Translation 542
Bidirectional RNNs 546
Beam Search 547
Attention Mechanisms 549
Visual Attention 552
Attention Is All You Need: The Transformer Architecture 554
Recent Innovations in Language Models 563
Exercises 565
17. Representation Learning and Generative Learning Using Autoencoders and GANs. 567
Efficient Data Representations 569
Performing PCA with an Undercomplete Linear Autoencoder 570
Stacked Autoencoders 572
Implementing a Stacked Autoencoder Using Keras 572
Visualizing the Reconstructions 574
Visualizing the Fashion MNIST Dataset 574
Unsupervised Pretraining Using Stacked Autoencoders 576
Tying Weights 577
Training One Autoencoder at a Time 578
Convolutional Autoencoders 579
Recurrent Autoencoders 580
Denoising Autoencoders 581
Sparse Autoencoders 582
Variational Autoencoders 586
Generating Fashion MNIST Images 590
Generative Adversarial Networks 592
The Difficulties of Training GANs 596
Deep Convolutional GANs 598
Progressive Growing of GANs 601
StyleGANs 604
Exercises 607
18. Reinforcement Learning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Learning to Optimize Rewards 610
Policy Search 612
Table of Contents | xiIntroduction to OpenAI Gym 613
Neural Network Policies 617
Evaluating Actions: The Credit Assignment Problem 619
Policy Gradients 620
Markov Decision Processes 625
Temporal Difference Learning 629
Q-Learning 630
Exploration Policies 632
Approximate Q-Learning and Deep Q-Learning 633
Implementing Deep Q-Learning 634
Deep Q-Learning Variants 639
Fixed Q-Value Targets 639
Double DQN 640
Prioritized Experience Replay 640
Dueling DQN 641
The TF-Agents Library 642
Installing TF-Agents 643
TF-Agents Environments 643
Environment Specifications 644
Environment Wrappers and Atari Preprocessing 645
Training Architecture 649
Creating the Deep Q-Network 650
Creating the DQN Agent 652
Creating the Replay Buffer and the Corresponding Observer 654
Creating Training Metrics 655
Creating the Collect Driver 656
Creating the Dataset 658
Creating the Training Loop 661
Overview of Some Popular RL Algorithms 662
Exercises 664
19. Training and Deploying TensorFlow Models at Scale. . . . . . . . . . . . . . . . . . . . . . . . . . . 667
Serving a TensorFlow Model 668
Using TensorFlow Serving 668
Creating a Prediction Service on GCP AI Platform 677
Using the Prediction Service 682
Deploying a Model to a Mobile or Embedded Device 685
Using GPUs to Speed Up Computations 689
Getting Your Own GPU 690
Using a GPU-Equipped Virtual Machine 692
Colaboratory 693
Managing the GPU RAM 694
xii | Table of ContentsPlacing Operations and Variables on Devices 697
Parallel Execution Across Multiple Devices 699
Training Models Across Multiple Devices 701
Model Parallelism 701
Data Parallelism 704
Training at Scale Using the Distribution Strategies API 709
Training a Model on a TensorFlow Cluster 711
Running Large Training Jobs on Google Cloud AI Platform 714
Black Box Hyperparameter Tuning on AI Platform 716
Exercises 717
Thank You! 718
A. Exercise Solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
B. Machine Learning Project Checklist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
C. SVM Dual Problem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
D. Autodiff. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
E. Other Popular ANN Architectures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
F. Special Data Structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
G. TensorFlow Graphs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
Code: https://github.com/ageron/handson-ml2/archive/master.zip

Программист

Post 14-Jun-2020 22:05

[Quote]

Accelerate. The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations
Год издания: 2018
Автор: Nicole Forsgren, Jez Humble, Gene Kim
Издательство: IT Revolution Press
ISBN: 978-1942788331
Язык: Английский
Формат: EPUB
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 203
Описание:
"We strongly recommend this book to anyone involved in a digital transformation for solid guidance about what works, what doesn't work, and what doesn't matter."
Tom & Mary Poppendieck, Authors of the Lean Software Development Series
"A must read! In a sea of books about technology approaches, Accelerate stands out in its clarity and practicality."
Karen Martin, Author, Clarity First and The Outstanding Organization
"This is the kind of foresight that CEOs, CFOs, and CIOs desperately need if their company is going to survive in this new software-centric world.Anyone that doesn't read this book will be replaced by someone that has." Thomas A. Limoncelli, Co-Author of The Practice of Cloud System Administration
“'Here, do this!' The evidence presented in Accelerate is a triumph of research, tenacity and insight, proving not just correlation but a causal link between good technical and management behaviours and business performance. It also exposes the myth of “maturity models” and offers a realistic, actionable alternative. As an independent consultant working at the intersection of people, technology, process, and organisation design this is manna from heaven!As chapter 3 concludes: 'You can act your way to a better culture through implementing these practices in technology organizations'. There is no mystical culture magic, just 24 concrete, specific capabilities that will lead not only to better business results, but more importantly to happier, healthier, more motivated people and an organisation people want to work at. I will be giving copies of this book to all my clients."
Dan North, Independent Technology and Organization consultant
"The 'art' of constructing a building is a well understood engineering practice nowadays. However, in the software world, we have been been looking for patterns and practices that can deliver the same predictable and reliable results whilst minimizing waste and producing the increasingly high performance our businesses demand.Accelerate provides research backed, quantifiable and real world principles to create world class, high performing IT teams enabling amazing business outcomes.Backed by the two leading thought leaders (Kim and Humble) in the DevOps community and world class research from PHD Forsgren, this book is a highly recommended asset!"
Jonathan Fletcher, Group CTO, Hiscox
"In their book Accelerate, Nicole Forsgren, Jez Humble and Gene Kim don't break any new conceptual ground regarding agile, lean and DevOps. Instead, they provide something that might be even more valuable which is a look inside the methodological rigor of their data collection and analysis approach which lead them to their earlier conclusions on the key capabilities that make IT organizations better contributors to the business. This is a book that I will gladly be placing on my bookshelf next to the other great works by the authors."
Cameron Haight, VP & CTO, Americas, VMware
"Accelerate does a fantastic job of explaining not only what changes organizations should make to improve their software delivery performance, but also the why, enabling people at all levels to truly understand how to level up their organizations."
Ryn Daniels, Infrastructure Operations Engineer at Travis CI and author of Effective DevOps
"With this work, the authors have made a significant contribution to the understanding and application of DevOps. They show that when properly understood, DevOps is more than just a fad or a new name for an old concept. Their work illustrates how DevOps can improve the state of the art in organizational design, software development culture, and systems architecture. And beyond merely showing, they advance the DevOps community's qualitative findings with research-based insights that I have heard from no other source."
Baron Schwartz, Founder & CEO of VividCortex and Co-Author of High Performance MySQL

About the Author

Dr. Nicole Forsgren does research and strategy at Google Cloud following the acquisition of her startup DevOps Research and Assessment (DORA) by Google. She is best known for her work measuring the technology process and as the lead investigator on the largest DevOps studies to date. She has been an entrepreneur, professor, sysadmin, and performance engineer. Nicole's work has been published in several peer-reviewed journals. Nicole earned her PhD in Management Information Systems from the University of Arizona, and is a Research Affiliate at Clemson University and Florida International University. She lives in San Francisco, CA.
Jez Humble is co-author of The DevOps Handbook, Lean Enterprise, and the Jolt Award-winning Continuous Delivery. He is currently researching how to build high performing teams at his startup, DevOps Research and Assessment, LLC, and teaching at UC Berkeley. He lives in California.
Gene Kim is a multiple award-winning CTO, researcher, and co-author of The Phoenix Project, Beyond The Phoenix Project, The DevOps Handbook, and The Visible Ops Handbook. He is founder of IT Revolution, hosts the DevOps Enterprise Summit conferences, and speaks around the world. He lives in Portland, OR with his wife and children.
Можно ли с помощью технологий повышать прибыльность бизнеса? На протяжении многих лет нам говорили, что производительность команд программистов не так уж и важна, потому что она не может обеспечить конкурентное преимущество компании. Основу этой книги составляют исследования с использованием строгих статистических методов, включая данные, собранные из отчетов о состоянии DevOps, проведенные совместно с Puppet доктором Николь Форсгрен, Джезом Хамблом и Джином Кимом.
На протяжении четырех лет они искали способы измерения производительности доставки программного обеспечения и того, что ею управляет. В этой книге представлены как результаты, так и научные подходы, которые стоят за этими исследованиями, чтобы вы могли применять все это на практике в своих организациях. Вы узнаете, как измерить производительность своих команд и в какие направления стоит инвестировать, чтобы повысить производительность.
Эта же книга на русском языке - https://rutracker.org/forum/viewtopic.php?t=5861867
Мои остальные раздачи - [url=tracker.php?rid=43141996]https://rutracker.org/forum/tracker.php?rid=43141996[/url]

Программист

Post 14-Jun-2020 22:05

[Quote]

Программирование: введение в профессию. Том 4: парадигмы
Год издания: 2020
Автор: Столяров А.В.
Издательство: МАКС Пресс
ISBN: 978-5-317-06379-5
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Нет
Количество страниц: 659
Описание:
Четвёртый том книги «Программирование: введение в профессию» (Том 1, Том 2, Том 3) составляют части IX–XII.
Часть IX посвящена парадигмам программирования как общему явлению; примеры рассматриваются на языках, уже известных читателю, в основном это язык Си. Здесь стоит особенно выделить параграф, посвящённый концептуальным различиям между Паскалем и Си (см. 9.3.2, стр. 69).
В части X рассматривается язык Си++ и поддержанные в нём парадигмы объектно-ориентированного программирования и абстрактных типов данных. В основном эта часть сформирована из текста, ранее публиковавшегося отдельной книжкой (Введение в язык Си++), но содержит несколько глав, в той книжке отсутствовавших; в том числе здесь имеется глава, посвящённая графическим пользовательским интерфейсам и их созданию с помощью библиотеки FLTK.
Часть XI отдана экзотическим языкам программирования; здесь рассмотрены Лисп, Scheme, Пролог, а для демонстрации ленивых вычислений привлечён Хоуп (Hope).
Основной целью последней, XII части была демонстрация интерпретации и компиляции как самостоятельных парадигм программирования. Часть начинается с рассмотрения языка Tcl, интерпретируемая сущность которого вряд ли может хоть у кого-нибудь вызвать сомнения. Для полноты картины рассмотрена также библиотека Tcl/Tk, позволяющая очень быстро создавать оконные приложения с GUI. Остаток части содержит обзор концептуальных особенностей интерпретации и компиляции; в самом конце делается попытка сформулировать требования к гипотетическому «чистому компилятору», полностью лишённому каких-либо элементов интерпретации.

Примеры страниц

Оглавление

Программист

Post 14-Jun-2020 19:45

[Quote]

Программирование: введение в профессию. Том 3: системы и сети
Год издания: 2017
Автор: Столяров А.В.
Издательство: МАКС Пресс
ISBN: 978-5-317-05606-3
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Нет
Количество страниц: 403
Описание:
В третий том книги «Программирование: введение в профессию» (Том 1, Том 2) вошли части V–VIII.
В части V рассматриваются системные вызовы для ввода-вывода, управление процессами, механизмы взаимодействия процессов, такие как сигналы и каналы, а также понятие терминала и связанные с ним явления, в том числе сеансы и группы процессов, виртуальные терминалы, управление дисциплиной линии.
Часть VI посвящена компьютерным сетям; даётся небольшой обзор протоколов, используемых в сети Интернет, рассмотрена подсистема сокетов и событийно-ориентированное построение серверных программ.
В части VII рассматриваются вопросы, связанные с разделяемыми данными, критические секции, взаимоисключение; даются базовые сведения о библиотеке pthread.
Часть VIII содержит ряд сведений о внутреннем устройстве операционной системы; в частности, рассматриваются различные модели виртуальной памяти, подсистема ввода-вывода и т.п.

Примеры страниц

Оглавление

Программист

Post 07-Jun-2020 01:25

[Quote]

Minecraft. Продвинутое руководство
Год издания: 2017
Автор: О'Брайен Стивен
Переводчик: М. А. Райтман
Жанр или тематика: зарубежная компьютерная литература, зарубежная прикладная литература, программы, развлечения
Теги: Minecraft, компьютерные игры, руководство пользователя
Издательство: Бомбора (Эксмо)
ISBN: 978-5-699-92475-2
Серия: Подарочные издания. Компьютер
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Количество страниц: 255
Описание: Minecraft – это одна из самых популярных компьютерных игр последних лет. В ней можно добывать ресурсы и сражаться с противниками, придумывать заклинания и создавать собственные миры. Это не просто игра, это жизнь.
Вы сможете строить уникальные транспортные системы, добывать огромное количество ресурсов, управлять фермами мобов, строить здания в любом стиле и многое другое.
Продвинутое руководство станет отличным помощником в процессе постижения тайн игры. С его помощью вы достигнете небывалых успехов!
Возрастное ограничение: 12+

Примеры страниц

Оглавление

Доп. информация: 2-е издание
 

The time now is: Today 03:06

All times are GMT + 4 Hours