Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducción a la programación

Introducción a la programación

Diapositivas de los dos primeros días del curso de "Introducción a la programación" para el Máster IPECC de Desarrollo de Videojuegos para Dispositivos Móviles de la Universidad de Alcalá.

Enrique López Mañas

January 11, 2013
Tweet

More Decks by Enrique López Mañas

Other Decks in Education

Transcript

  1. Con la participación de
    Electronic Arts
    En colaboración con la
    Universidad de Alcalá
    Módulo 4: Creación y diseño de videojuegos móviles
    Introducción  a  la  programación  
     

    View Slide

  2. 2  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Profesor  
    • 
    Enrique  López-­‐Mañas  
    • 
    Ingeniero  Informá?ca  UCM  
    • 
    Máster  CS  RWTH  
    • 
    Developer  @  Sixt  
    • 
    Android  &  iPhone  &  mobile  
    • 
    [email protected]  
    • 
    www.neo-­‐tech.es  
    • 
    @eenriquelopez  
     

    View Slide

  3. 3  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Planificación  
    8     9   15   16   22   23  
    Introducción  a  
    la  
    programación  
    Introducción  a  
    la  
    programación  
     
    Android   Android   Android   Android  

    View Slide

  4. 4  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    ¿Qué  es  la  programación?  
    • 
    Diseño  
    • 
    Codificación  
    • 
    Depuración  
    • 
    Mantenimiento  
     

    View Slide

  5. 5  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Conceptos  clave:  lenguaje  
    • 
    Idioma  ar?ficial  para  expresar  procesos  
    computacionales  
    • 
    Diferentes  lenguajes  
    • 
    Diferentes  ?pos  
       

    View Slide

  6. 6  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Conceptos  clave:  entorno  
    • 
    Conjunto  de  herramientas  de  desarrollo  
    • 
    No  sólo  programación  
    • 
    Diferentes  entornos  para  diferentes  lenguajes  
    • 
    SDK’s    

    View Slide

  7. 7  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Conceptos  clave:  programa  
    • 
    Secuencia  de  instrucciones  

    View Slide

  8. 8  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Conceptos  clave:  compilar  
    • 
    Compilar:  conver?r  el  programa  (código  
    fuente)  en  una  aplicación  (fichero  ejecutable)  
    • 
    Diferentes  plataformas  de  compilación.  
    • 
    (Generalmente)  código  depende  de  la  
    plataforma  

    View Slide

  9. 9  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Conceptos  clave:  aplicación  
    • 
    Programa  (compilado)  con  funcionalidad  

    View Slide

  10. 10  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejercicio  
    • 
    Abrir  Eclipse.  
    • 
    Escribir  HelloWorld  en  Java  y  compilar  

    View Slide

  11. 11  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Introducción  a  la  programación  
    • 
    Variables  
    • 
    Funciones  
    • 
    Tipos  de  datos  
    • 
    Operadores  
    • 
    Expresiones  y  sentencias  
    • 
    Estructuras  de  control  
    • 
    Estructuras  de  datos  
    • 
    Excepciones  
    • 
    OO  (Orientación  a  objetos)  

    View Slide

  12. 12  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejemplo    

    View Slide

  13. 13  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejemplo  
    Nombre  de  paquete  

    View Slide

  14. 14  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejemplo  
    Declaración  de  clase  

    View Slide

  15. 15  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejemplo  
    Declaración  de  método  

    View Slide

  16. 16  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejemplo  
    Declaración  e  inicialización  de  variable  

    View Slide

  17. 17  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejemplo  
    Declaración  de  variable  

    View Slide

  18. 18  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejemplo  
    Asignación  y  expresión  

    View Slide

  19. 19  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejemplo  
    Llamada  a  función  con  parámetros  

    View Slide

  20. 20  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Variables  
    • 
    Espacio  reservado  en  memoria  que  puede  
    variar  su  valor  
     
    • 
    Constante:  parecido  a  las  variables,  pero  no  se  
    puede  modificar  el  valor  

    View Slide

  21. 21  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Tipos  
    • 
    Tipos  de  datos  primi?vos:  
                     short/int/long  
                     float/double  
                     char  (String)  
                     byte  

    View Slide

  22. 22  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Tipos  

    View Slide

  23. 23  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Tipos  

    View Slide

  24. 24  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Tipos  

    View Slide

  25. 25  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Tipos  

    View Slide

  26. 26  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Tipos  

    View Slide

  27. 27  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Funciones  y  métodos  
    • 
    Posibles  entradas  
    • 
    Posibles  salidas  
    • 
    Define  un  comportamiento  
     
     
    • 
    Pensar  en  función  matemá?ca  

    View Slide

  28. 28  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Funciones  y  métodos  

    View Slide

  29. 29  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Funciones  y  métodos  

    View Slide

  30. 30  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Funciones  y  métodos  

    View Slide

  31. 31  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Funciones  y  métodos  

    View Slide

  32. 32  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Funciones  y  métodos  

    View Slide

  33. 33  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Funciones  y  métodos  

    View Slide

  34. 34  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Funciones  y  métodos  

    View Slide

  35. 35  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejercicio  
    • 
    Abrir  Eclipse  
    • 
    Crear  un  método  que  sume  dos  números  y  los  
    escriba  con  System.out.println();  

    View Slide

  36. 36  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Operadores  
    • 
    Establecen  relaciones  entre  variables  

    View Slide

  37. 37  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Operadores  

    View Slide

  38. 38  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Operadores  

    View Slide

  39. 39  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  control  
    • 
    Ejecutan  código  basándose  en  condiciones  
    • 
    „Si  ocurre  X,  entonces  haz  Y.  Si  no,  haz  Z“  
    • 
    „Haz  X  hasta  que  ocurra  Y“  
    • 
    „Haz  X  mientras  ocurra  Z“  

    View Slide

  40. 40  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  control  
    • 
    „Si  ocurre  X,  entonces  haz  Y.  Si  no,  haz  Z“  
     

    View Slide

  41. 41  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  control  
    • 
    „Haz  X  mientras  ocurra  Z“  

    View Slide

  42. 42  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  control  
    • 
    „Haz  X  mientras  ocurra  Z“  

    View Slide

  43. 43  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  control  

    View Slide

  44. 44  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejercicio  
    • 
    Abrir  Eclipse  
    • 
    Declarar  una  variable  x  con  valor  igual  a  50.  
    • 
    Reducir  su  valor  mediante  un  bucle  „while“  y  
    un  bucle  „for“  hasta  0.  

    View Slide

  45. 45  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  control  

    View Slide

  46. 46  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  Datos  
    • 
    No  sólo  datos  primi?vos  –  Hay  datos  
    complejos  
    • 
    Arrays  
    • 
    Tipos  complejos  de  Java  
    • 
    (Más  adelante)  Tipos  definidos  por  el  usuario  

    View Slide

  47. 47  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  Datos  
    • 
    Matrices  de  N  dimensiones  (N  al  menos  1)  

    View Slide

  48. 48  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  Datos  
    • 
    Matrices  de  N  dimensiones  (N  al  menos  1)  

    View Slide

  49. 49  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejercicio  
    • 
    Rellenar  un  array  de  dos  dimensiones  usando  
    dos  bucles  for  y  pintar  los  valores  por  pantalla  
     
     

    View Slide

  50. 50  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  datos  
    • 
    ArrayList,    TreeSet,  Scanner...  
     
     
     
     

    View Slide

  51. 51  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejercicio  
    • 
    Rellenar  un  ArrayList  con  los  datos  que  
    teníamos  en  el  array  del  ejercicio  anterior.  
     
     
     

    View Slide

  52. 52  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  datos  
    • 
    Clases  personalizadas  (introducción  muy  
    rápida)  
    • 
    Uso  de  OO.  
    • 
    Creación  de  clases  mul?-­‐atributo  complejas  
    con  propios  métodos  
     
     
     

    View Slide

  53. 53  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Estructuras  de  datos  
     
     
     
     

    View Slide

  54. 54  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Excepciones  
    • 
    Ges?ón  de  errores  complejos  
     
     
     
     

    View Slide

  55. 55  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  (POO)  
    • 
    Paradigma  de  desarrollo  básico  
    • 
    Permite  representar  sistemas  complejos  
    • 
    Objetos:  elemento  con  atributos  y  
    comportamiento  
    • 
    Reu?lización,  conexión  entre  sistemas  
     
     

    View Slide

  56. 56  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  (POO)  
    • 
    Otra  idea:  descomponer  programas  en  piezas  
    más  pequeñas  y  manejables  
           (un  coche  se  compone  de  ruedas,  volante,  
    etc)  
    • 
    Nuestros  objetos  serán  „Clases“  
     
     
     

    View Slide

  57. 57  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  (POO)  
     
     
     
     

    View Slide

  58. 58  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  (POO)  
     
     
     
     

    View Slide

  59. 59  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  (POO)  
     
     
     
     

    View Slide

  60. 60  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  (POO)  
     
     
     
     

    View Slide

  61. 61  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  (POO)  
     
     
     
     

    View Slide

  62. 62  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  (POO)  
    • 
    Relaciones  de  agregación  
     
     
     
     
     

    View Slide

  63. 63  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejercicio  
    • 
    Diseñar  y  programar  clases  para  representar  
    una  empresa  que  con?ene  trabajadores  (usar  
    array  o  ArrayList)  
     
     
     
     
     

    View Slide

  64. 64  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  (POO)  
    • 
    Conceptos:  
    –  Encapsulación:  organización  de  datos  y  métodos  
    –  Herencia:  creación  de  clases  a  par?r  de  otras  ya  
    existentes  
    –  Polimorfismo:  (varias  formas)  sobrecarga  de  
    métodos  con  mismo  nombre  y  dis?nta  
    funcionalidad.  
     
     

    View Slide

  65. 65  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  -­‐  
    Herencia  
    • 
    Mecanismo  para  extender  clases  a  casos  más  
    par?culares.  
    • 
    Ejemplo:    
    –  Un  edificio  à  Un  hospital  
    –  Un  vehículo  à  una  furgoneta  
    –  Un  persona  à  un  niño  
     
     

    View Slide

  66. 66  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  -­‐  
    Herencia  
    • 
    La  clase  hija  hereda  de  la  clase  padre.  
    • 
    Puede  sobreescribir  o  ampliar  sus  métodos.  
    • 
    Hereda  todos  los  atributos.  
    • 
    Una  „furgoneta“  es  también  un  „vehículo“  
    • 
    Herencia  simple  
     
     

    View Slide

  67. 67  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  Objetos  -­‐  
    Herencia  
     
     
     
     
     
     
     

    View Slide

  68. 68  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejercicio  
    • 
    Crear  la  clase  Taxista,  que  hereda  de  persona.  
    • 
    El  taxista  ?ene  licencia  
    • 
    El  taxista  ?ene  un  coche.  
    • 
    Crear  programa  de  ejemplo  
     
     
     

    View Slide

  69. 69  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Orientación  a  objetos  –  Clases  
    abstractas  
    • 
    No  se  pueden  crear  objetos  de  clases  
    abstractas.  
    • 
    Se  usan  para  representar  „ideas“  o  
    „conceptos“  
     
     
     
     

    View Slide

  70. 70  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ejercicio  
    • 
    Hacer  que  la  clase  persona  sea  abstracta.  
    • 
    Probar  a  compilar  
     
     
     
     
     

    View Slide

  71. 71  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Herencia  -­‐  Interfaces  
    • 
    Sólo  definen  comportamiento  
    • 
    (especifican  qué  hacer,  no  cómo)  

    View Slide

  72. 72  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Herencia  -­‐  Interfaces  

    View Slide

  73. 73  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Acceso  en  Java  
    Misma clase Otra clase
    mismo paquete
    Subclase de
    otro paquete
    Otra clase de
    otro paquete
    public X X X X
    protected X X X
    default X X
    private X

    View Slide

  74. 74  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Mul?threading  
    • 
    Hasta  ahora:  ejecución  secuencial.  
    • 
    Pero:  existe  ejecución  de  múl?ples  hilos  
     
     
     
     
     

    View Slide

  75. 75  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     Mul?threading  -­‐  Ventajas  
    • 
    Mejor  ?empo  de  respuesta  
    • 
    Mejor  aprovechamiento  de  la  CPU  
     
     
     
     
     

    View Slide

  76. 76  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     Mul?threading  -­‐  Ejemplo  
     
     
     
     
     
     

    View Slide

  77. 77  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     Mul?threading    
     
     
     
     
     
     

    View Slide

  78. 78  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     Mul?threading    
     
     
     
     
     
     

    View Slide

  79. 79  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     Mul?threading    
     
     
     
     
     
     

    View Slide

  80. 80  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     Mul?threading    
     
     
     
     
     
     
    <

    View Slide

  81. 81  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     Mul?threading    
     
     
     
     
     
     

    View Slide

  82. 82  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     Mul?threading    
     
     
     
     
     
     

    View Slide

  83. 83  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     Mul?threading    
     
     
     
     
     
     

    View Slide

  84. 84  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     Mul?threading    
     
     
     
     
     
     

    View Slide

  85. 85  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ficheros  
    • 
    Almacenamiento  en  Java  
    • 
    Hoy  día  rudimentario  
     
     
     
     
     

    View Slide

  86. 86  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ficheros  -­‐  Escritura  
     
     
     
     
     
     

    View Slide

  87. 87  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
    Ficheros  -­‐  Lectura  
     
     
     
     
     
     

    View Slide

  88. 88  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     UML    
     
     
     
     
     
     

    View Slide

  89. 89  
    Introducción  a  la  programación  –  Enrique  López  Mañas  
     JavaDoc    
     
     
     
     
     
     

    View Slide

  90. Con la participación de
    Electronic Arts
    En colaboración con la
    Universidad de Alcalá
    Gracias  por  su  atención  
    Contacto  para  dudas  y  sugerencias  
    Enrique  López  Mañas  
    [email protected]  
    @eenriquelopez  
     

    View Slide