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    
  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    
  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  
  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    
  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      
  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    
  7. 7   Introducción  a  la  programación  –  Enrique  López  Mañas

      Conceptos  clave:  programa   •  Secuencia  de  instrucciones  
  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  
  9. 9   Introducción  a  la  programación  –  Enrique  López  Mañas

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

      Ejercicio   •  Abrir  Eclipse.   •  Escribir  HelloWorld  en  Java  y  compilar  
  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)  
  12. 16   Introducción  a  la  programación  –  Enrique  López  Mañas

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

      Ejemplo   Llamada  a  función  con  parámetros  
  14. 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  
  15. 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  
  16. 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  
  17. 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();  
  18. 36   Introducción  a  la  programación  –  Enrique  López  Mañas

      Operadores   •  Establecen  relaciones  entre  variables  
  19. 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“  
  20. 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“    
  21. 41   Introducción  a  la  programación  –  Enrique  López  Mañas

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

      Estructuras  de  control   •  „Haz  X  mientras  ocurra  Z“  
  23. 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.  
  24. 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  
  25. 47   Introducción  a  la  programación  –  Enrique  López  Mañas

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

      Estructuras  de  Datos   •  Matrices  de  N  dimensiones  (N  al  menos  1)  
  27. 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      
  28. 50   Introducción  a  la  programación  –  Enrique  López  Mañas

      Estructuras  de  datos   •  ArrayList,    TreeSet,  Scanner...          
  29. 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.        
  30. 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        
  31. 54   Introducción  a  la  programación  –  Enrique  López  Mañas

      Excepciones   •  Ges?ón  de  errores  complejos          
  32. 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      
  33. 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“        
  34. 57   Introducción  a  la  programación  –  Enrique  López  Mañas

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

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

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

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

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

      Orientación  a  Objetos  (POO)   •  Relaciones  de  agregación            
  40. 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)            
  41. 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.      
  42. 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      
  43. 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      
  44. 67   Introducción  a  la  programación  –  Enrique  López  Mañas

      Orientación  a  Objetos  -­‐   Herencia                
  45. 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        
  46. 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“          
  47. 70   Introducción  a  la  programación  –  Enrique  López  Mañas

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

      Herencia  -­‐  Interfaces   •  Sólo  definen  comportamiento   •  (especifican  qué  hacer,  no  cómo)  
  49. 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
  50. 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            
  51. 75   Introducción  a  la  programación  –  Enrique  López  Mañas

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

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

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

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

      Ficheros  -­‐  Lectura              
  56. 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