PRINCIPIOS DE PROGRAMACIÓN

PRINCIPIOS DE PROGRAMACIÓN

CHACON SARTORI,CAMILO

33,80 €
IVA incluido
🚚 LLegada en 24/48h
Editorial:
MARCOMBO
Año de edición:
2023
Ubicación
A1-3106
ISBN:
978-84-267-3682-6
Páginas:
556
Encuadernación:
Rústica
Colección:
INFORMATICA
33,80 €
IVA incluido
🚚 LLegada en 24/48h
Añadir a favoritos

ÍNDICE DE CONTENIDOS
NOTA AL LECTOR ..................................................................................... 21
AGRADECIMIENTOS ................................................................................. 23
INTRODUCCIÓN ........................................................................................ 25
MAPA DE LECTURA .................................................................................. 31
TOMO I ? FUNDAMENTOS........................................................................ 33
CAPÍTULO 1 LOS FUNDAMENTOS MATEMÁTICOS .................................. 39
1.1. INTRODUCCIÓN............................................................................................................................. 39
1.2. LÓGICA ........................................................................................................................................... 42
1.2.1. Lógica proposicional ................................................................................................... 42
1.3. CONJUNTOS ................................................................................................................................... 55
1.3.1. Notación ........................................................................................................................... 56
1.3.2. Subconjunto .................................................................................................................... 57
1.4. CONCLUSIÓN ................................................................................................................................. 58
1.4.1. Lecturas sugeridas ....................................................................................................... 59
CAPÍTULO 2 CONCEPTOS ELEMENTALES ............................................... 61
2.1. INTRODUCCIÓN............................................................................................................................. 61
2.2. SECUENCIALES .............................................................................................................................. 62
2.2.1. Variables .......................................................................................................................... 62
2.2.2. Condicional ..................................................................................................................... 73
2.2.3. Descomposición de conectivas ................................................................................ 76
2.2.4. Bucle .................................................................................................................................. 80
2.3. FUNCIONALES ............................................................................................................................... 87
2.3.1. Función ............................................................................................................................. 87
2.3.2. Recursión ......................................................................................................................... 96
2.4. SECUENCIAL VS. RECURSIVIDAD ............................................................................................. 104
2.5. CONCLUSIÓN .............................................................................................................................. 106
CAPÍTULO 3 ALGORITMOS Y ESTRUCTURAS DE DATOS ..................... 107
3.1. INTRODUCCIÓN.......................................................................................................................... 107
3.2. ALGORITMOS COMO TECNOLOGÍA .......................................................................................... 108
3.2.1. Análisis de algoritmos ..............................................................................................109
3.2.2. Clasificación ..................................................................................................................110
3.3. ESTRUCTURAS DE DATOS COMO COMPLEMENTO ................................................................. 119
3.3.1. Arreglos ..........................................................................................................................119
3.3.2. Listas enlazadas ..........................................................................................................122
3.4. OTRAS ......................................................................................................................................... 125
3.5. CONCLUSIÓN .............................................................................................................................. 125
CAPÍTULO 4 PENSAMIENTO COMPUTACIONAL .................................... 127
4.1. INTRODUCCIÓN.......................................................................................................................... 127
4.2. ORIGEN ....................................................................................................................................... 129
4.3. LOS CINCO ASPECTOS BÁSICOS DEL PENSAMIENTO COMPUTACIONAL .............................. 131
4.3.1. Modularidad .................................................................................................................131
4.3.2. Estructura de datos ...................................................................................................133
4.3.3. Encapsulación ..............................................................................................................134
4.3.4. Estructuras de control ..............................................................................................135
4.3.5. Recursión .......................................................................................................................137
4.4. OTROS GRUPOS DE CONCEPTOS DEL PENSAMIENTO COMPUTACIONAL ............................ 139
4.5. CONCLUSIÓN .............................................................................................................................. 139
4.5.1. Lecturas sugeridas .....................................................................................................139
TOMO II ? PRINCIPIOS ............................................................................ 141
PRINCIPIOS TÉCNICOS ........................................................................... 151
CAPÍTULO 1 DISEÑO .............................................................................. 155
1.1. INTRODUCCIÓN .................................................................................................................... 155
1.2. LOS PRERREQUISITOS DE UN DISEÑO ............................................................................... 156
1.2.1. Objetivo del diseño de software ............................................................................157
1.3. CONCEPTOS GENERALES ..................................................................................................... 160
1.3.1. Descomposición y composición .............................................................................160
1.3.2. Refactorización ...........................................................................................................172
1.3.3. Patrones de diseño .....................................................................................................178
1.4. COMUNICACIÓN ENTRE PERSONAS ................................................................................... 187
1.4.1. Diseño e implementación ........................................................................................188
1.4.2. Lenguajes de modelado ............................................................................................190
1.4.3. El futuro del diseño de software ...........................................................................192
1.5. CONCLUSIÓN......................................................................................................................... 194
1.5.1. Lecturas sugeridas .....................................................................................................194
CAPÍTULO 2 ESTADO ............................................................................. 197
2.1. INTRODUCCIÓN .................................................................................................................... 197
2.2. ASIGNACIÓN ......................................................................................................................... 198
2.2.1. Flujo de estados ...........................................................................................................201
2.2.2. Lenguaje ensamblador .............................................................................................202
2.3. ORDEN Y TIEMPO ................................................................................................................. 217
2.3.1. Autómata finito (determinista y no-determinista) .......................................217
2.3.2. Autómata celular ........................................................................................................223
2.4. CONCLUSIÓN ........................................................................................................................ 227
2.4.1. Lecturas sugeridas .....................................................................................................227
CAPÍTULO 3 RECURSO ........................................................................... 229
3.1. INTRODUCCIÓN ..................................................................................................................... 229
3.2. COMPLEJIDAD ALGORÍTMICA .............................................................................................. 230
3.2.1. Lineal ...............................................................................................................................233
3.2.2. Cuadrática .....................................................................................................................236
3.2.3. Exponencial...................................................................................................................237
3.2.4. Logarítmica ..................................................................................................................239
3.3. LIMITACIONES ....................................................................................................................... 240
3.4. AVANCES DEL HARDWARE .................................................................................................. 242
3.5. MÉTRICAS .............................................................................................................................. 243
3.5.1. Particulares ..................................................................................................................244
3.5.2. Generales .......................................................................................................................245
3.6. CONCLUSIÓN .......................................................................................................................... 246
3.6.1. Lecturas sugeridas .....................................................................................................247
CAPÍTULO 4 COORDINACIÓN................................................................. 249
4.1. INTRODUCCIÓN ..................................................................................................................... 249
4.2. COMUNICACIÓN: ORDEN Y TIEMPO .................................................................................... 251
4.2.1. Exclusión mutua..........................................................................................................251
4.3. CONCURRENCIA Y PARALELISMO ........................................................................................ 255
4.3.1. Ley de Amdahl..............................................................................................................257
4.3.2. ¿Cuándo paralelizar? ................................................................................................258
4.3.3. GPU ...................................................................................................................................259
4.4. COMPUTACIÓN DISTRIBUIDA .............................................................................................. 259
4.4.1. MapReduce ....................................................................................................................260
4.4.2. Paso de mensajes ........................................................................................................261
4.4.3. Llamada a procedimiento remoto .......................................................................262
4.5. CONCLUSIÓN .......................................................................................................................... 263
4.5.1. Lecturas sugeridas .....................................................................................................264
CAPÍTULO 5 TRANSFORMACIÓN ........................................................... 265
5.1. INTRODUCCIÓN ..................................................................................................................... 265
5.2. REPRESENTACIONES ............................................................................................................ 269
5.2.1. Funciones .......................................................................................................................269
5.2.2. Formato de fichero.....................................................................................................272
5.2.3. Sistema de numeración ............................................................................................278
5.2.4. Serialización .................................................................................................................280
5.2.5. Computación reversible ...........................................................................................286
5.3. OTROS TIPOS DE TRANSFORMACIONES ............................................................................. 287
5.4. CONCLUSIÓN .......................................................................................................................... 288
5.4.1. Lecturas sugeridas .....................................................................................................289
PRINCIPIOS CONDUCTUALES ................................................................... 291
CAPÍTULO 6 DOCUMENTACIÓN ............................................................. 293
6.1. INTRODUCCIÓN ..................................................................................................................... 293
6.2. ¿DOCUMENTA, POR FAVOR?................................................................................................ 294
6.3. LOS PROBLEMAS DE DOCUMENTAR UN SOFTWARE ......................................................... 296
6.4. ESTRATEGIAS PARA DOCUMENTAR .................................................................................... 298
6.4.1. El código como documentación ............................................................................298
6.4.2. Documentación viva ..................................................................................................306
6.5. CONCLUSIÓN .......................................................................................................................... 307
6.5.1. Lecturas sugeridas .....................................................................................................308
CAPÍTULO 7 EVALUACIÓN ...................................................................... 309
7.1. INTRODUCCIÓN ..................................................................................................................... 309
7.2. PRUEBAS DINÁMICAS ........................................................................................................... 310
7.2.1. Funcionales ...................................................................................................................311
7.2.2. No funcionales .............................................................................................................312
7.3. PRUEBAS ESTÁTICAS ............................................................................................................ 316
7.3.1. Inspección de los requerimientos de software ................................................317
7.3.2. Análisis estático...........................................................................................................318
7.4. REPLICACIÓN Y CONTRASTACIÓN ....................................................................................... 322
7.4.1. ¿Cómo replicar? ...........................................................................................................323
7.4.2. ¿Cómo contrastar? .....................................................................................................324
7.5. CONCLUSIÓN .......................................................................................................................... 325
7.5.1. Lecturas sugeridas .....................................................................................................326
CAPÍTULO 8 ETHOS ................................................................................ 327
8.1. INTRODUCCIÓN ..................................................................................................................... 327
8.2. LA RESPONSABILIDAD FRENTE A LA INTELIGENCIA ARTIFICIAL ................................... 328
8.2.1. IA y robótica .................................................................................................................329
8.2.2. IA y sexualidad .............................................................................................................329
8.2.3. Principio ético ..............................................................................................................330
8.3. ¿UN PROGRAMADOR TIENE RESPONSABILIDAD? ............................................................. 331
8.4. ¿QUÉ ES SER UN BUEN PROGRAMADOR? ........................................................................... 332
8.4.1. Moralidad y programación ....................................................................................332
8.5. CONCLUSIÓN .......................................................................................................................... 334
8.5.1. Lecturas sugeridas .....................................................................................................334
TOMO III ? SISTEMAS ............................................................................ 335
CAPÍTULO 1 LENGUAJES DE PROGRAMACIÓN ..................................... 341
1.1. INTRODUCCIÓN ........................................................................................................................ 341
1.2. BREVE HISTORIA ..................................................................................................................... 344
1.3. COMPONENTES DE UN LENGUAJE DE PROGRAMACIÓN ...................................................... 350
1.3.1. Sintaxis ........................................................................................................................... 350
1.3.2. Semántica ......................................................................................................................351
1.4. CATEGORÍAS DE LENGUAJES .................................................................................................. 352
1.4.1. Generales........................................................................................................................352
1.4.2. Dominio específico .....................................................................................................353
1.5. ESTILOS DE LENGUAJES .......................................................................................................... 354
1.5.1. Funcional .......................................................................................................................354
1.5.2. Imperativo .....................................................................................................................356
1.5.3. Orientado a objeto .....................................................................................................356
1.5.4. Otros ................................................................................................................................357
1.6. DISEÑO E IMPLEMENTACIÓN ................................................................................................. 360
1.7. FUTURO .................................................................................................................................... 363
1.8. CONCLUSIÓN ............................................................................................................................ 365
1.8.1. Lecturas recomendadas ...........................................................................................365
CAPÍTULO 2 SISTEMAS OPERATIVOS ................................................... 367
2.1. INTRODUCCIÓN ........................................................................................................................ 367
2.2. BREVE HISTORIA ..................................................................................................................... 368
2.3. CONCEPTOS FUNDAMENTALES ............................................................................................. 377
2.3.1. Virtualización ..............................................................................................................377
2.3.2. Concurrencia ................................................................................................................381
2.3.3. Persistencia ...................................................................................................................384
2.4. FUTURO .................................................................................................................................... 386
2.5. CONCLUSIÓN ............................................................................................................................ 387
2.5.1. Lecturas recomendadas ...........................................................................................387
CAPÍTULO 3 BASE DE DATOS ................................................................ 389
3.1. INTRODUCCIÓN ........................................................................................................................ 389
3.2. BREVE HISTORIA ..................................................................................................................... 391
3.3. BASES DE DATOS RELACIONALES .......................................................................................... 395
3.3.1. Modelo relacional .......................................................................................................397
3.4. BASES DE DATOS NO RELACIONALES (NOSQL) ................................................................. 400
3.4.1. Documentos ..................................................................................................................401
3.4.2. Clave-valor ....................................................................................................................401
3.4.3. Grafos ..............................................................................................................................402
3.4.4. Vectores ..........................................................................................................................402
3.5. FUTURO .................................................................................................................................... 402
3.6. CONCLUSIÓN ............................................................................................................................ 404
3.6.1. Lecturas recomendadas ...........................................................................................404
CAPÍTULO 4 SISTEMAS DISTRIBUIDOS ................................................. 405
4.1. INTRODUCCIÓN ........................................................................................................................ 405
4.2. BREVE HISTORIA ..................................................................................................................... 406
4.3. ARQUITECTURAS DE COMPUTACIÓN DISTRIBUIDA ............................................................ 410
4.3.1. Basada en capas ..........................................................................................................410
4.3.2. Orientada a servicios .................................................................................................412
4.3.3. Publicador-suscriptor ...............................................................................................413
4.4. CARACTERÍSTICAS ................................................................................................................... 414
4.4.1. Procesos ..........................................................................................................................415
4.4.2. Comunicación ...............................................................................................................416
4.4.3. Coordinación ................................................................................................................421
4.4.4. Consistencia y replicación .......................................................................................421
4.4.5. Tolerancia a fallas ......................................................................................................422
4.4.6. Seguridad .......................................................................................................................422
4.5. FUTURO .................................................................................................................................... 423
4.6. CONCLUSIÓN ............................................................................................................................ 424
4.6.1. Lecturas recomendadas ...........................................................................................424
CAPÍTULO 5 INTELIGENCIA ARTIFICIAL ................................................. 425
5.1. INTRODUCCIÓN ........................................................................................................................ 425
5.2. UNA BREVE HISTORIA ............................................................................................................. 426
5.3. ENFOQUE SIMBÓLICO.............................................................................................................. 442
5.4. ENFOQUE PROBABILISTA ....................................................................................................... 443
5.4.1. Aprendizaje automático (Machine Learning) .................................................443
5.4.2. Aprendizaje profundo (Deep Learning).............................................................444
5.5. FUTURO .................................................................................................................................... 446
5.6. CONCLUSIÓN ............................................................................................................................ 447
5.6.1. Lecturas recomendadas ...........................................................................................447
TOMO IV ? SOMOS HUMANOS .............................................................. 449
CAPÍTULO 1 BUENAS PRÁCTICAS ......................................................... 455
CAPÍTULO 2 INGENIERÍA DE SOFTWARE ............................................... 461
CAPÍTULO 3 TIPOS DE SOFTWARE ........................................................ 467
TOMO V ? BUENA VIDA .......................................................................... 473
CAPÍTULO 1 APRENDIZAJE DE PROGRAMACIÓN ................................. 477
1.1. INTRODUCCIÓN ........................................................................................................................ 477
1.2. HERRAMIENTAS ...................................................................................................................... 478
1.2.1. El terminal es su mejor amigo ...............................................................................478
1.2.2. La importancia de depurar ....................................................................................481
1.2.3. Cuando el control de versiones es útil ................................................................482
1.2.4. Manipular texto...........................................................................................................485
1.2.5. Reinventar la rueda ...................................................................................................487
1.2.6. Use generadores de código .....................................................................................489
1.3. BUENAS PRÁCTICAS ................................................................................................................. 490
1.3.1. Sobre leer código ........................................................................................................491
1.3.2. Cree una historia de su código ..............................................................................492
1.3.3. Sobre escribir código .................................................................................................494
1.4. AVANZAR EN SU CARRERA ..................................................................................................... 495
1.4.1. Averigüe qué tipo de programador es ................................................................495
1.4.2. Cuando enseñar también significa aprender...................................................501
1.4.3. Construya una comunidad ......................................................................................504
1.5. FILOSÓFICOS ............................................................................................................................ 510
1.5.1. Pensar antes de programar ....................................................................................510
1.5.2. Cuide sus palabras .....................................................................................................513
1.5.3. Sea analítico .................................................................................................................514
1.5.4. Procure ser un generalista ......................................................................................515
1.6. CONCLUSIÓN ............................................................................................................................ 518
1.6.1. Lecturas sugeridas .....................................................................................................518
CAPÍTULO 2 VIDA PERSONAL ................................................................ 521
2.1. INTRODUCCIÓN ........................................................................................................................ 521
2.2. CIENCIAS ................................................................................................................................... 522
2.2.1. La programación no son matemáticas, ¡pero estas ayudan! ....................522
2.2.2. Las ciencias como un faro en la oscuridad .......................................................523
2.3. ARTES Y HUMANIDADES ......................................................................................................... 525
2.3.1. La música y la programación ................................................................................526
2.3.2. Dibujo como inspiración ........................

¿Cuáles son los principios subyacentes a toda herramienta en programación? Si quiere conocer los ocho principios, técnicos y conductuales, que dan respuesta a esta pregunta, ha llegado al libro indicado. En una época donde cada día surgen nuevas tecnologías, el beneficio de conocer conceptos transversales a todas ellas no solo es imprescindible, sino también necesario. Además, con la llegada de sofisticadas aplicaciones de inteligencia artificial, la pregunta ya no reside en qué herramienta aprender, sino en qué tienen en común para poder integrarlas. Gracias a la lectura de este libro, descubrirá los cinco tomos que lo componen y que dan soporte a la nueva forma de entender la programación. ' Tomo I: Aprenderá los fundamentos básicos de las matemáticas y de la programación. ' Tomo II: Conocerá los principios de programación. ' Tomo III: Dispondrá de una introducción histórica y práctica a los diversos sistemas de la computación, como los lenguajes de programación, los sistemas operativos, las bases de datos, los sistemas distribuidos y la inteligencia artificial. ' Tomo IV: Analizará el diálogo que presenta

Artículos relacionados

  • DISEÑO DE INTERFACES PARA LA WEB ACTUAL
    GOMEZ DELGADO, JAVIER
    1. **Diseño de interfaces web modernas** Descubre las últimas tendencias y técnicas para diseñar interfaces web modernas y atractivas, desde la jerarquía visual hasta el prototipado avanzado.2. **Optimización de la experiencia de usuario en sitios web** Mejora la usabilidad y accesibilidad de tus sitios web a través de estrategias efectivas de diseño centrado en el usua...
    ✅ Disponible - Ver Ubicación

    24,00 €

  • 10
    LOPEZ, ELIEZER
    El lenguaje de programación Rust ha ganado popularidad en los últimos años debido a su enfoque en la seguridad y el rendimiento, y se ha convertido en una excelente opción para el desarrollo de aplicaciones críticas y sistemas de alto rendimiento. Con una comunidad en constante crecimiento y el respaldo de importantes empresas, Rust constituye una herramienta poderosa para desa...
    ✅ Disponible - Ver Ubicación

    29,95 €

  • INFERENCIA Y DESCUBRIMIENTO CAUSAL EN PYTHON
    MOLAK, ALEKSANDER
    En comparación con el aprendizaje automático tradicional y las estadísticas, los métodos causales presentan desafíos únicos. Aprender causalidad puede ser difícil, pero ofrece distintas ventajas que escapan a una mentalidad puramente estadística. Este libro ayuda a liberar todo el potencial de la causalidad.El libro comienza con las motivaciones básicas del pensamiento causal y...
    ✅ Disponible - Ver Ubicación

    37,95 €

  • PYTHON DESDE EL LABORATORIO. ESTRUCTURAS DE CONTROL
    CORDOVA / ARANA / ARANA TORRES, SARA / CÓRDOVA NERI, TEODORO
    Iníciese en el universo de Python y domine las estructuras de control Python es el lenguaje de programación que ha revolucionado el mundo tecnológico. Su simplicidad, gratuidad y versatilidad hacen de él una herramienta imprescindible en el campo de la informática, por lo que es utilizado por las principales compañías globales. Este libro le ofrece la oportunidad de introduci...
    ✅ Disponible - Ver Ubicación

    23,80 €

  • PYTHON DESDE EL LABORATORIO. ESTRUCTURAS DE DATOS
    CORDOBA / ARANA / ARANA TORRES, SARA / CÓRDOVA NERI, TEODORO
    Dé un paso más allá en Python y domine las estructuras de datos En el dinámico mundo de la tecnología, las estructuras de datos son el pilar sobre el que las empresas construyen su capacidad para administrar información y forjar estrategias de crecimiento. Este libro le invita a sumergirse en el fascinante mundo de las estructuras de datos más utilizadas, como las listas y a...
    ✅ Disponible - Ver Ubicación

    26,50 €

  • PYTHON DESDE EL LABORATORIO. APLICACIONES GUI, INTEGRACIÓN CON BASE DE DATOS E I
    CORDOBA / ARANA / ARANA TORRES, SARA / CÓRDOVA NERI, TEODORO
    Descubra las ventajas de integrar Python con las aplicaciones GUI, las bases de datos y la inteligencia artificial En la era digital actual, las interfaces gráficas de usuario (GUI) y la inteligencia artificial (IA) juegan un papel crucial en la informática, facilitando la interacción del usuario y optimizando procesos. Si quiere dominar estos conceptos, ha llegado al libro in...
    ✅ Disponible - Ver Ubicación

    26,50 €