PRINCIPIOS DE PROGRAMACIÓN

PRINCIPIOS DE PROGRAMACIÓN

CHACÓN SARTORI, CAMILO

33,80 €
IVA incluido
Último ejemplar disponible. Envío 48h.
Editorial:
Marcombo
Año de edición:
2023
Materia
Programación
ISBN:
978-84-267-3682-6
Páginas:
556
Encuadernación:
Rústica
33,80 €
IVA incluido
Último ejemplar disponible. Envío 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 ........................

1.1UM;UMA 01.1 10000000000000000

Artículos relacionados

  • *PROGRAMACIÓN Y MOTORES DE VIDEOJUEGOS
    CORTÉS CAMPO, FRANCISCO JAVIER
    Este libro desarrolla los contenidos del módulo Programación y motores de videojuegos, perteneciente al curso de especialización Desarrollo de videojuegos y realidad virtual, recogidos en el Real Decreto 261/2021, de 13 de abril. Gracias a su lectura, aprenderá las bases de la programación y el diseño de videojuegos. Cada capítulo incluye teoría, cuestionarios tipo test y activ...
    Último ejemplar disponible. Envío 48h.

    29,90 €

  • CURSO PRÁCTICO CON UNITY 3D
    CANTÓN NADALES, DAVID
    El primer libro en español que guía el desarrollo de videojuegos con Unity, desde los fundamentos hasta la creación de builds ejecutables.Dirigido a principiantes y desarrolladores con experiencia, este libro te acompaña paso a paso, desde el uso del Unity Editor hasta la creación de videojuegos completos y optimizados. Aprenderás a manipular GameObjects, programar en C# y Visu...
    Último ejemplar disponible. Envío 48h.

    29,95 €

  • EL GRAN LIBRO DE PROGRAMACIÓN EN C++
    GONZÁLEZ PÉREZ, ALFONS
    ¿Busca un método que le haga disfrutar mientras aprende a programar? Descubra un enfoque totalmente renovado de la enseñanza en programación que deja atrás las pedagogías áridas y enfocadas únicamente en la teoría. Este libro apuesta por aprender a dominar el lenguaje de programación en C++ a través de un método ambicioso y diferente: la pedagogía competencial, multidisciplina...
    Último ejemplar disponible. Envío 48h.

    28,80 €

  • TKINTER. DESARROLLO DE INTERFACES GRAFICAS CON PYTHON - 2.ª EDICION
    TOMAS DOMINGUEZ MINGUEZ
    Dé un paso más allá en sus aplicaciones Python: domine Tkinter y conquiste la experiencia de usuario Las interfaces de usuario son esenciales para la interacción entre las aplicaciones y sus usuarios, ya que su diseño puede determinar el éxito o fracaso de un programa. Incluso un contenido interesante puede pasar desapercibido si la aplicación resulta difícil de manejar, lo qu...
    Último ejemplar disponible. Envío 48h.

    27,50 €

  • OPENCV. APLICACIONES PRACTICAS DE VISION ARTIFICIAL CON PYTHON - 2.ª E
    TOMAS DOMINGUEZ MINGUEZ
    La visión artificial es una disciplina científica formada por un conjunto de técnicas que permiten la captura, el procesamiento y el análisis de imágenes, con el fin de extraer información de utilidad. Su objetivo es automatizar tareas reservadas hasta hace poco tiempo al ámbito humano en áreas como la seguridad, la industria, el comercio, la medicina, etc. Muchas de las técnic...
    Último ejemplar disponible. Envío 48h.

    24,85 €

  • EL GRAN LIBRO DE PROGRAMACIÓN EN C
    GONZÁLEZ PÉREZ, ALFONS
    ¿Se ha preguntado en qué lenguaje están programados los sistemas que gobiernan nuestra tecnología moderna? Tiene a su alcance la puerta de entrada a uno de los lenguajes más poderosos y versátiles del mundo de la programación, el lenguaje C. Si quiere descubrir el potencial de este lenguaje desde un nivel inicial, ha llegado al libro indicado. El lenguaje C llega a todo tipo ...
    Último ejemplar disponible. Envío 48h.

    29,95 €

Otros libros del autor

  • COMPUTACIÓN Y PROGRAMACIÓN FUNCIONAL
    CHACÓN SARTORI, CAMILO
    La programación funcional ofrece diversas ventajas a la hora de construir software: reducción de errores, manejo eficiente de datos en entornos concurrentes y paralelos, y un gran respaldo teórico. No obstante, muchos programadores fracasan en su intento de adentrarse en ella por ir directamente a aprenderla usando un lenguaje de programación (tecnología), con lo que omiten la ...
    Sin existencias. Consulte disponibilidad

    25,80 €

  • MENTES GENIALES. LA VIDA Y OBRA DE 12 GRANDES INFORMÁTICOS
    CHACÓN SARTORI, CAMILO
    ¿Quién acuñó por primera vez el término inteligencia artificial? ¿Quién fue el legendario informático que se negó a usar un ordenador al final de su vida? ¿Quién escribió uno de los artículos más populares de la historia de la informática a través de una metáfora? ¿Quién creó uno de los sistemas informáticos más populares y que reside en cada móvil? ¿Quién fue la mujer que logr...
    Sin existencias. Consulte disponibilidad

    18,50 €