EBOOK VS PROGRAMACION EN JAVA 6 ALGORITMOS PROGRAMACION ORIENTADA

1st Edición
1456205587 · 9781456205584
Programación en JavaProgramación en Java 6 es una obra que introduce al lector en las técnicas de algoritmos, programación orientada a objetos, técnicas de programación y manejo de gráficos, mediante la utilización del lenguaje de programaci… Leer Más
$762.00
Gracias este es un libro electrónico o EBOOK, para poder utilizarlo debes de crear una cuenta en VitalSource Bookshelf esta es una Aplicación Gratis. Una vez que has creado tu cuenta, dentro de la plataforma debes de redimir los distintos códigos que hayas adquirido para poder leer tus libros.

Para pagos en BBVA, NO REDONDEAR el monto, por favor pague por transferencia electrónica.

  • Ingresa a tu libro desde cualquier lugar o dispositivo, con acceso a internet o sin acceso.
  • Crear notas, y apuntes en tus lecturas.
  • Puedes realizar búsquedas a los conceptos que necesites de manera rápida y fácil.

CONTENIDO

Prologo XIX

Agradecimientos xxv

Capítulo 1

Introducción a la programación 1

1.1 Breve historia de las computadoras 2

1.1.1 Generación de computadoras 3

1.2 Organización y componentes de una computadora 4

1.2.1 Hardware 5

1.2.2 Software 8

1.3 Sistema operativo 9

1.4 Lenguaje de computadora 11

1.4.1 Unidades de medida de memoria 11

1.4.2 Representación de la información en las computadoras

(códigos de caracteres) 11

1.5 Lenguajes de programación 13

1.5.1 Lenguaje ensamblador (assembly language) 14

1.5.2 Lenguaje de programación de alto nivel 14

1.5.3 El caso la máquina virtual Java (JVM) 15

1.6 Internet y la web 16

1.7 La revolución Web 2.0 y cloud computing 17

1.7.1 Los social media 18

1.7.2 Desarrollo de programas web 18

1.7.3 Cloud computing (computación en nube) 19

1.8 Web semántica y Web 3.0 19

1.9 Java como lenguaje y plataforma de programación 20

1.10 Historia de Java 21

1.10.1 Características de Java 22

Resumen 23

capítulo 2

Metodología de programación, creación y desarrollo de programas en Java 25

2.1 Resolución de problemas con Java 26

2.1.1 Análisis del problema 27

2.1.2 Diseño del algoritmo 27

2.1.3 Codificación 29

2.1.4 Compilación-interpretación de un programa en java 30

2.1.5 Verificación y depuración de un programa Java 31

2.1.6 Documentación y mantenimiento 31

2.2 Creación de un programa en java 32

2.3 Metodología de la programación 34

2.3.1 Programación estructurada 34

2.3.2 Programación orientada a objetos 35

2.4 Metodología de desarrollo basada en clases 37

2.5 Entornos de programación en java 38

2.5.1 El kit de desarrollo Java: JDK 6 38

2.6 Entornos de desarrollo integrado (EDI) 39

2.6.1 Herramientas para desarrollo en java 40

2.6.2 NetBeans 40

2.6.3 Eclipse 41

2.6.4 Blue 41

2.6.5 Otros entornos de desarrollo 41

2.7 Compilación sin entornos de desarrollo 41

Resumen 42

Conceptos clave 42

Glosario 43

Ejercicios 43

capítulo 3

Elementos básicos de Java 45

3.1 Estructura general de un programa en java 45

3.1.1 Declaración import 48

3.1.2 Declaración de clases 49

3.1.3 Método main () 30

3.1.4 Métodos definidos por el usuario 51

3.1.5 Comentarios 32

3.2 Elementos de un programa en java 54

3.2.1 Tokens (Elementos léxicos del programa) 54

3.2.2 Signos de puntuación y separadores 56

3.2.3 Paquetes 56

3.3 Tipos de datos en java 57

3.3.1 Enteros: int, byte, short, long 58

3.3.2 Tipos de coma flotante (float/double) 59

3.3.3 Caracteres (char) 60

3.3.4 Boolean 61

3.3.5 El tipo de dato void 62

3.4 Tipo de datos enumeración (enum) 63

3.5 Conversión de tipos (cast) 63

3.6 Constantes 64

3.6.1 Constantes literales 64

3.6.2 Constantes declaradas final 68

3.7 Variables 68

3.7.1 Declaración 69

3.7.2 Inicialización de variables 71

3.8 Duración de una variable 71

3.8.1 Variables locales 72

3.8.2 Variables de clases 72

3.8.3 Acceso a variables de clase fuera de la clase 73

3.9 Entradas y salidas 74

3.9.1 Salida (System, out) 75

3.9.2 Salida con formato: printf 76

3.9.3 Entrada (system, in) 76

3.9.4 Entrada con la clase Scanner 77

3.10 Tipos de datos primitivos (clases envoltorio) 79

Resumen 80

Conceptos clave 81

Ejercicios 81

Capítulo 4

Operadores y expresiones 83

4.1 Operadores y expresiones 83

4.2 Operador de asignación 84

4.3 Operadores aritméticos 85

4.3.1 Asociatividad 86

4.3.2 Uso de paréntesis 87

4.4 Operadores de incremento y decremento 88

4.5 Operadores relacionales 90

4.6 Operadores lógicos 92

4.6.1 Evaluación en cortocircuito 94

4.6.2 Operadores | y & 95

4.6.3 Asignación booleana (lógica) 95

4.7 Operadores de manipulación de bits 96

4.7.1 Operadores de asignación adicionales 97

4.7.2. Operadores de desplazamiento de bits (>>, >>>, <<) 97

4.8 Operador condicional (? :) 98

4.9 Operador coma (,) 99

4.10 Operadores () y [] 99

4.10.1 Operador . 99

4.10.2 Operador () 100

4.10.3 Operador [] 100

4.11 Operador instanceof 100

4.12 Conversiones de tipos 100

4.12.1 Conversión implícita 101

4.12.2 Reglas 101

4.12.3 Conversiones explícitas 101

4. 13 Operador suma (+) con cadenas de caracteres 102

4.14 Prioridad y asociatividad 102

4.15 strictfp 103

Resumen 104

Conceptos clave 104

Ejercicios 105

Problemas 106

Capítulo 5

Estructuras de selección 107

5.1 Estructuras de control 107

5.2 Sentencia if 108

5.3 Sentencia if de dos alternativas: if-else 110

5.4 Sentencias if-else anidadas 113

5.4.1 Sangría en las sentencias if anidadas 113

5.4.2 Comparación de sentencias if anidadas y secuencias de sentencias if .. 115

5.5 Sentencia de control switch 117

5.5.1 Sentencia break 118

5.5.2 Caso particular de case 122

5.5.3 Uso de switch en menús 122

5.6 Expresiones condicionales, operador ? : 122

5.7 Evaluación en cortocircuito de expresiones lógicas 123

5.8 Puesta a punto de programas 124

5.9 Errores frecuentes de programación 126

Resumen 127

Conceptos clave 128

Ejercicios 128

Problemas 130

Capítulo 6

Estructuras de control I: bucles (lazos) 133

6.1 Sentencia while 133

6.1.1 Terminaciones anormales de un bucle 137

6.1.2 Bucles controlados por centinelas 137

6.1.3 Bucles controlados por indicadores o banderas 138

6.1.4 Sentencia break en bucles 140

6.1.5 La sentencia break con etiqueta 142

6.2 Repetición: bucle for 142

6.2.1 Usos de bucles for 147

6.2.2 Precauciones en el uso de for 148

6.2.3 Bucles infinitos 149

6.2.4 Los bucles for vacios 150

6.2.5 Expresiones nulas en bucles for 151

6.2.6 Sentencia continue 151

6.3 Bucle for each (Java 5.0 y Java 6) 153

6.4 Repetición: bucle do. . .while 153

6.4.1 Diferencias entre while y do-while 155

6.5 Comparación de bucles while, for y do-while 156

6.6 Diseño de bucles 157

6.6.1 Bucles para diseño de sumas y productos 157

6.6.2 Fin de un bucle 158

6.7 Bucles anidados 160

6.6 Transferencia de control: sentencias break y continue 163

6.6.1 Sentencia break 163

6.6.2 Sentencia continue 165

Resumen 165

Conceptos clave 166

Ejercicios 166

Problemas 169

Capítulo 7

Fundamentos de programación orientada a objetos y UML 171

7.1 Conceptos fundamentales de orientación a objetos 172

7.1.1 Abstracción 172

7.1.2 Encapsulamiento y ocultación de datos 173

7.1.3 Herencia 174

7.1.4 Polimorfismo 175

7.1.5 Reutilización (reusabilidad) 176

7.2 Clases 176

7.3 Objetos 177

7.3.1 Estado 177

7.3.2 Comportamiento 177

7.3.3 Identidad 177

7.4 Identificación de clases y objetos 178

7.5 Relaciones entre clases 179

7.6 UML: modelado de aplicaciones 180

7.6.1 ¿Que es un lenguaje de modelado? 181

7.6.2 Desarrollo de software orientado a objetos con UML 182

7.7 Diseño y representación grafica de clases y objetos en UML 182

7.7.1 Representación grafica de una clase 183

7.7.2 Representación grafica de objetos en UML 183

7.8 Herencia: clases derivadas 184

7.8.1 Niveles de herencia 186

7.8.2 Declaración de una clase derivada 186

Resumen 188

Conceptos clave 189

Ejercicios 189

capítulo 8

Clases y objetos 191

8.1 Clases y objetos 191

8.1.1 ¿Que son los objetos? 192

8.1.2 ¿Que son las clases? 193

8.2 Declaración de una clase 194

8.2.1 Creación de un objeto 194

8.2.2 Visibilidad de los miembros de la clase 195

8.2.3 Métodos de una clase 197

8.3 Implementación de las clases 199

8 4 Clases publicas 199

8.5 Paquetes 200

8.5.1 Sentencia package 201

8.5.2 Sentencia import 201

8.6 Constructores 202

8.6.1 Constructor por defecto 203

8.6.2 Constructores sobrecargados 203

8.7 Recolección de basura (objetos) 204

8.7.1 Método finalize () 205

8.8 Autorreferencia del objeto: this 206

8.9 Miembros static de una clase 207

8.9.1 Variables static 208

8.9.2 Métodos static 209

8.10 Consideraciones prácticas de diseño de clases 210

8.10.1 Métodos y clases predefinidos 211

8.10.2 Clases definidas por el usuario 212

8.11 Biblioteca de clases de Java 213

8.11.1 Clase System 214

8.11.2 Clase Object 214

8.11.3 Operador instanceof 215

8.11.4 Clase Math, funciones matemáticas 216

Resumen 217

Conceptos clave 218

Ejercicios 218

Problemas 220

capítulo 9

Métodos 221

9.1 Métodos 222

9.2 Método main () 224

9.3 Retorno de un método 225

9.3.1 Llamada a un método 226

9.4 Acceso a métodos 227

9.5 Paso de argumentos a métodos 229

9.5.1 Paso de parámetros por valor 230

9.5.2 Lista de parámetros 232

9.5.3 Modificador final 232

9.6 Métodos abstractos 233

9.7 Sobrecarga de métodos 233

9.7.1 Sobrecarga de constructores 235

9.8 Ámbito o alcance de variables 236

9.8.1 Ámbito de la clase 236

9.8.2 Ámbito del método 237

9.8.3 Ámbito del bloque 238

9.8.4 Variables locales 238

9.9 Métodos predefinidos 239

Resumen 239

Conceptos clave 240

Ejercicios 240

Problemas 241

capitulo 10

Arreglos (arrays) 243

10.1 Arreglos (arrays) 243

10.1.1 Declaración de un arreglo 244

10.1.2 Creación de un arreglo 245

10.1.3 Subíndices de un arreglo 245

10.1.4 Tamaño de los arreglos, atributo length 246

10.1.5 Verificación del Índice de un arreglo 247

10.1.6 Inicialización de un arreglo 247

10.1.7 Copia de arreglos 248

10.2 Bucle for each para recorrido de arreglos y colecciones (JavaSE 5.0 y 6) 250

10.3 Arreglos multidimensionales 251

10.3.1 Inicialización de arreglos multidimensionales 252

10.3.2 Arreglos irregulares o triangulares 253

10.3.3 Acceso a los elementos de arreglos bidimensionales 254

10.3.4 Arreglos de más de dos dimensiones 256

10.4 Utilización de arreglos como parámetros 257

10.4.1 Precauciones 259

10.5 Clase Vector y ArrayList 260

10.5.1 Clase Vector 260

10.5.2 Clase ArrayList 263

Resumen 264

Conceptos clave 264

Ejercicios 265

Problemas 266

capítulo 11

Cadenas

11.1 Cadena 269

11.1.1 Declaración de variables objeto cadena 272

11.1.2 Inicialización de variables de cadena 272

11.1.3 Constructores de un objeto cadena 273

11.2 Lectura de cadenas 275

11.2.1 Método read () 278

11.2.2 Métodos print () 279

11.3 Asignación de cadenas 281

11.4 Cadenas como parámetros; arreglos de cadenas 282

11.4.1 Arreglos de cadenas 282

11.5 Longitud y concatenación de cadenas 283

11.5.1 El método length () 283

11.5.2 Concatenación de cadenas 284

11.6 Obtención de caracteres de una cadena 285

11.6.1 Obtención de un carácter: método charAt () 285

11.6.2 Obtención de un arreglo de caracteres: método getChars () 286

11.6.3 Obtención de una subcadena: método substring () 287

11.7 Comparación de cadenas 288

11.7.1 Método compareTo () 288

11.7.2 Metodos equals () e equalsIgnoreCase () 289

11.7.3 Método regionMatches () 290

11.7.4 Métodos startsWith () y endsWith () 291

11.8 Conversión de cadenas 292

11.8.1 Método toUpperCase () 292

11.8.2 Método toLowerCase () 292

11.8.3 Método trim () 292

11.8.4 Método replace () 293

11.8.5 Método toCharArray () 293

11.9 Conversión de otros tipos a cadenas 294

11.10 Búsqueda de caracteres y cadenas 295

11.10.1 Metodo indexOf () 295

11.10.2 Metodo lastlndexOf () 296

Resumen 298

Conceptos clave 299

Ejercicios 299

Problemas 300

capitulo 12

Extensión de clases: interfaces, clases internas y enumeraciones 303

12.1 Interfaces 303

12.1.1 Implementación de una interfaz 304

12.1.2 Jerarquía de interfaces 307

12.2 Herencia de clases e implementación de interfaces 307

12.2.1 Variables de tipo interface 307

12.3 Clases abstractas 308

12.4 Clases internas 309

12.4.1 Clases internas miembro 310

12.4.2 Clases internas locales 312

12.4.3 Clases internas static 313

12.5 Clases anónimas 314

12.6 Enumeraciones (clases enum) 316

Resumen 318

Conceptos clave 319

Ejercicios 319

Problemas 320

capítulo 13

Herencia 321

13.1 Clases derivadas 321

13.1.1 Declaración de una clase derivada 324

13.1.2 Diseño de clases derivadas 326

13.1.3 Sobrecarga de métodos en la clase derivada 327

13.2 Herencia publica 328

13.3 Constructores en herencia 331

13.3.1 Sintaxis 332

13.3.2 Referencia a la clase base: super 334

13.4 Conversión entre objetos de clase derivada y clase base 335

13.5 Clases no derivables: atributo final 338

13.6 Herencia múltiple (no soportada en Java) 338

Resumen 339

Conceptos clave 340

Ejercicios 340

Problemas 340

capitulo 14

Polimorfismo 343

14.1 Ligadura 343

14.2 Clases y métodos abstractos 344

14.2.1 Métodos abstractos 347

14.2.2 Ligadura dinámica mediante métodos abstractos 349

14.3 Polimorfismo 351

14.3.1 Uso del polimorfismo 352

14.3.2 Ventajas del polimorfismo 352

14.3.3 Ligadura dinámica 354

14.4 Métodos no derivables: atributo final 355

Resumen 355

Conceptos clave 355

Ejercicios 356

Problemas 356

15.1 Genericidad 357

15.2 Declaración de una clase genérica 357

15.3 Objetos de una clase genérica 358

15.3.1 Restricciones con tipos genéricos 362

15.4 Clase genérica Pila 363

15.4.1 Utilización de la plantilla de una clase genérica 364

15.5 Métodos genéricos 366

15.5.1 Definición de un método genérico 367

15.5.2 Llamada a un método genérico 369

15.6 Genericidad y máquina virtual Java 370

15.7 Limites al tipo genérico 371

15.8 Herencia y genericidad 373

15.8.1 Comodín de genericidad 374

15.9 Genericidad frente a polimorfismo 376

Resumen 376

Conceptos clave 378

Ejercicios 378

capítulo 16

Excepciones 381

16.1 Condiciones de error en programas 381

16.1.1 ¿Por qué considerar las condiciones de error? 382

16.2 Tratamiento de los códigos de error 382

16.3 Manejo de excepciones en Java 384

16.4 Mecanismo del manejo de excepciones en Java 384

16.4.1 Modelo de manejo de excepciones 385

16.4.2 Diseño de excepciones 387

16.4.3 Bloques try 387

16.4.4 Lanzamiento de excepciones 389

16.4.5 Captura de una excepción: catch 390

16.4.6 Clausula finally 392

16.5 Clases de excepciones definidas en Java 394

16.5.1 RuntimeException 395

16.5.2 Excepciones comprobadas 396

16.5.3 Métodos que informan de la excepción 397

16.6 Nuevas clases de excepciones 398

16.7 Especificación de excepciones 399

Resumen 403

Conceptos clave 404

Ejercicios 405

capítulo 17

Archivos y flujos 407

17.1 Flujos y archivos 407

17.2 Clase File 408

17.2.1 Información de un archivo 409

17.3 Flujos y jerarquía de clases 411

17.3.1 Archivos de bajo nivel: FilelnputStreamy FileOutputStream 411

17.3.2 Archivos de datos: DatalnputStream y DataOutputStream 414

17.3.3 Flujos PrintStream 419

17.4 Archivos de caracteres: flujos de tipo Reader y Writer 420

17.4.1 Leer archivos de caracteres: InputStreamReader,

BufferedReader y FileReader 420

17.4.2 Flujos que escriben caracteres: Writer, PrintWriter 422

17.5 Archivos de objetos 425

17.5.1 Clase de objeto persistente 425

17.5.2 Flujos ObjectOutputStream 425

17.5.3 Flujos ObjectlnputStream 426

Resumen 428

Conceptos clave 429

Ejercicios 429

Problemas 429

capítulo 18

Algoritmos de ordenación y búsqueda 431

18.1 Ordenación 432

18.2 Algoritmos de ordenación básicos 433

18.3 Ordenación por selección 434

18.3.1 Codificación del algoritmo de selección 435

18.3.2 Complejidad del algoritmo de selección 435

18.4 Ordenación por inserción 435

18.4.1 Algoritmo de ordenación por inserción 436

18.4.2 Codificación del algoritmo de ordenación por inserción 436

18.4.3 Complejidad del algoritmo de inserción 437

18.5 Ordenación Shell 437

18.5.1 Algoritmo de ordenación Shell 438

18.5.2 Codificación del algoritmo de ordenación Shell 439

18.5.3 Análisis del algoritmo de ordenación Shell 439

18.6 Ordenación de objetos 440

18.6.1 Ordenación 442

18.7 Búsqueda en listas: búsqueda secuencial y binaria 443

18.7.1 Búsqueda secuencial 443

18.7.2 Búsqueda binaria 443

18.7.3 Algoritmo y codificación de la búsqueda binaria 444

18.7.4 Análisis de los algoritmos de búsqueda 446

18.7.5 Complejidad de la búsqueda secuencial 446

18.7.6 Análisis de la búsqueda binaria 446

18.7.7 Comparación de la búsqueda binaria y secuencial 447

Resumen 448

Conceptos clave 448

Ejercicios 449

Problemas 450

Recursividad 453

19.1 La naturaleza de la recursividad 453

19.2 Métodos recursivos 456

19.2.1 Recursividad indirecta: métodos mutuamente recursivos 457

19.2.2 Condición de terminación de la recursión 458

19.3 Recursión versus iteración 458

19.3.1 Directrices en la toma de decisión iteración/recursión 460

19.4 Recursión infinita 460

19.5 Algoritmos divide y vence 461

19.6 Torres de Hanoi 462

19.6.1 Diseño del algoritmo 463

19.6.2 Implementación de las torres de Hanoi 465

19.6.3 Análisis del algoritmo torres de Hanoi 465

19.6.4 Búsqueda binaria 466

19.6.5 Análisis del algoritmo 467

19.7 Ordenación por mezclas: mergesort 467

19.7.1 Algoritmo mergesort 468

Resumen 470

Conceptos clave 471

Ejercicios 471

Problemas 474

capítulo 20

Gráficos I. GUI/Swing 477

20.1 Swing 477

20.1.1 Paquetes de las API de Java 478

20.1.2 Swing versus AWT 479

20.2 Crear un marco o clase JFrame 480

20.2.1 Métodos propios de JFrame j 481

20.3 Administrador de diseño 483

20.3.1 BorderLayout 484

20.3.2 FlowLayout 435

20.3.3 GridLayout 486

20.3.4 BoxLayout 437

20.3.5 BoxLayout-Box 488

20.3.6 Combinar gestores de posicionamiento 490

20.3.7 Desactivar el gestor de posicionamiento 491

20.4 Botones y etiquetas 492

20.4.1 Etiquetas 492

20.4.2 Botones 493

20.4.3 JComboBox 495

20.5 Componentes de texto 496

20.5.1 JTextComponent 496

20.5.2 JTextField, JPasswordField 496

20.5.3 JTextArea 499

Resumen 500

Conceptos clave 501

Ejercicios 501

Problemas 501

capítulo 21

Gráficos II. Componentes y eventos 503

21.1 Ventanas de dialogo 503

21.2 Selección de archivos: JFileChooser 506

21.2.1 Métodos de interés de JFileChooser 507

21.2.1 Filtros de selección de archivos 508

21.3 Eventos 510

21.4 Gestión de eventos 511

21.4.1 Oyente de un evento 512

21.5 Jerarquía de eventos 513

21.6 Componentes gráficos como fuentes de eventos 513

21.6.1 Listeners y eventos 517

Resumen 518

Conceptos clave 518

Ejercicios 519

Problemas 519

capitulo 22

Applets: programación en internet 521

22.1 Concepto de applet 521

22.2 Creación de un applet 522

22.2.1 Creación practica de un applet 524

22.2.2 Documento HTML para applet 526

22.2.3 Compilación y ejecución de un applet 527

22.3 Ciclo de vida de un applet 527

22.4 Dibujar imágenes en un applet 529

22.4.1 void paint (Graphics g) 530

22.4.2 void resize (int ancho, int alto) 530

22.4.3 void repaint () 530

22.5 Clases graphics, font y color 531

22.6 Parámetros en un applet 533

22.7 Seguridad 534

22.8 Conversión de un programa aplicación en un applet 534

22.9 Recursos web 535

Resumen 535

Conceptos clave 536

Ejercicios 536

Problemas 537

Apendice A. Códigos de numeración 539

Apendice B. Códigos ASCII y UNICODE 550

Apendice C. Palabras reservadas de java (versiones 2, 5 y 6) 555

Apendice D. Prioridad de operadores java 557

Apendice E. Bibliotecas de clases de Java SE 6 559

Apendice F. Especificaciones de Java 562

Apendice G. Bibliografía 564

Índice analítico 565

Programación en Java

Programación en Java 6 es una obra que introduce al lector en las técnicas de algoritmos, programación orientada a objetos, técnicas de programación y manejo de gráficos, mediante la utilización del lenguaje de programación Java, y en particular su versión Java SE 6.

Este texto también conduce al lector por las técnicas y notaciones graficas del modelado orientado a objetos, utilizando el Lenguaje Unificado de Modelado (UML). Los autores se centran en los conceptos fundamentales de la programación de computadoras, así como en las propiedades y sintaxis del lenguaje Java.

Algunos de los temas que se incluyen son:

Introducción a las computadoras y a la web, Web 2.0 y cloud computing

•             Elementos de un programa en Java 5.0 y Java 6

•             Sintaxis del lenguaje de programación Java 6: programación orientada a objetos

Además, la obra cuenta con diferentes recursos que ayudan a reforzar los temas que abarca; entre estos destacan:

•             Recuadros que enfatizan notas, precauciones y aspectos a tomar en cuenta para el manejo correcto de las técnicas, lenguaje, gráficos, etcétera

•             Recuadro que resalta las reglas de programación

•             Recuadro que destaca la sintaxis correcta del lenguaje de programación

•             Libras y recursos web

Acerca de los autores

Luis Joyanes Aguilar. Es doctor ingeniero en Informática y doctor en Sociología. Catedrático de Lenguajes y Sistemas Informáticos de la Facultad de Informática de la Universidad Pontificia de Salamanca (España).

Ignacio Zahonero Martínez. Obtuvo un master en Informática y es licenciado en Ciencias Físicas. Es profesor asociado de Programación y estructuras de datos en la Facultad de Informática de la Universidad Pontificia de Salamanca, campus de Madrid.

Director General Mexico: Miguel Angel Toledo Castellanos Editor sponsor: Pablo Eduardo Roig Vazquez Coordinadora editorial: Marcela I. Rocha Martinez Editora de desarrollo: Karen Estrada Arriaga Supervisor de produccion: Zeferino Garcia Garcia