1 00:00:01,070 --> 00:00:21,010 ¿Qué vamos a hacer? Primero vamos a ver un poquito el aula virtual, para los que no lo conozcan, vamos a ver la guía didáctica, la repasaré, os aconsejo que veáis tanto la guía didáctica como la programación, 2 00:00:21,010 --> 00:00:30,070 y después hablaremos de varias cosas, una de un poco de qué va el módulo en conjunto 3 00:00:30,070 --> 00:00:36,950 y luego podemos hablar de tanto de la instalación de NetBeans y de JDK 4 00:00:36,950 --> 00:00:42,250 como también un poquito lo que es la unidad 1. 5 00:00:42,250 --> 00:01:01,969 A ver, la unidad 1 es extensa, pero es verdad que es mucho de teoría. No nos metemos en harina hasta la unidad 2. Si habéis visto, hay 11 unidades, entonces los periodos de cada unidad son cortos. 6 00:01:01,969 --> 00:01:04,409 entonces, como son cortos 7 00:01:04,409 --> 00:01:05,870 para no saturar de tareas 8 00:01:05,870 --> 00:01:08,150 quizás, y a lo mejor pues tampoco 9 00:01:08,150 --> 00:01:10,010 es necesario, en esta primera 10 00:01:10,010 --> 00:01:12,109 pues una tarea, pero a lo mejor en la segunda no pongo tarea 11 00:01:12,109 --> 00:01:14,450 y en la tercera pongo una tarea sobre la segunda y la tercera 12 00:01:14,450 --> 00:01:15,890 ya veréis lo que hago 13 00:01:15,890 --> 00:01:17,909 pero para que no saturaros 14 00:01:17,909 --> 00:01:20,489 y que lo vayáis viendo poco a poco 15 00:01:20,489 --> 00:01:22,129 ¿por qué? porque es que 16 00:01:22,129 --> 00:01:24,290 son días hábiles 17 00:01:24,290 --> 00:01:26,290 por unidad, pueden ser 15 días 18 00:01:26,290 --> 00:01:28,010 contando fin de semana 19 00:01:28,010 --> 00:01:30,329 pues a lo mejor son 20-23 días por unidad 20 00:01:30,329 --> 00:01:31,010 entonces 21 00:01:31,010 --> 00:01:35,810 porque son muchas y el temario lo exige, esas 11 unidades. 22 00:01:36,030 --> 00:01:38,650 Entonces, podría haberlas agrupado, pero era muy complejo. 23 00:01:38,790 --> 00:01:42,989 Entonces, a lo mejor lo que agrupo son las tareas, aunque tengáis luego diferentes unidades. 24 00:01:42,989 --> 00:01:43,450 ¿Vale? 25 00:01:45,989 --> 00:01:47,450 Ya, si queréis, empezamos. 26 00:01:48,409 --> 00:02:08,939 Me voy a meter, voy a compartir la pantalla y decirme alguno. 27 00:02:09,099 --> 00:02:10,159 ¿Veis el aula virtual, verdad? 28 00:02:14,219 --> 00:02:14,919 Sí la veis, ¿verdad? 29 00:02:17,969 --> 00:02:18,770 Sí, sí, sí. 30 00:02:19,569 --> 00:02:30,310 Bien, repaso un poquito de la virtual, aquí tenéis los datos al comienzo, cuándo vais a tener las videoconferencias semanales, que son los martes y los jueves, los martes son dos horas y los jueves es una, ¿vale? 31 00:02:30,530 --> 00:02:49,469 Aquí tenemos todas las unidades, se podrían, como digo, podríamos haber agrupado creación de primer programa con estructura de control o incluso pues utilización de objetos y de salida de clases, pero he querido separarlo porque así es como viene pues de nuestra educación, vienen así los varios y bueno, ¿qué puedo hacer? 32 00:02:49,469 --> 00:03:11,250 En esta primera a lo mejor tenéis una tarea, pero a lo mejor para estas dos unidades, que sean la 2 y la 3, podemos agruparlo y generar una tarea en la tercera en la que os pida hacer algunos ejercicios en los que ya tenéis que incluir todos los elementos de lo que es un programa con las estructuras de control, por ejemplo. 33 00:03:11,250 --> 00:03:18,849 y así, pues según vayamos avanzando, pues veré, pero a lo mejor no es necesario crear una tarea para que no se ature, 34 00:03:18,930 --> 00:03:22,090 porque fijaos, es que el 21 de diciembre termina la primera unidad, ¿vale? 35 00:03:22,090 --> 00:03:26,310 La verdad es que esta unidad en realidad es facilita, la segunda tampoco es muy difícil, 36 00:03:26,969 --> 00:03:33,229 pero fijaos, están rondando pues al torno a los 24, 25 días, pero es que no hay más, 37 00:03:33,789 --> 00:03:38,370 es que el 14 de mayo terminamos, entonces he tenido que estructurar estas 11 unidades, 38 00:03:38,370 --> 00:03:40,469 repartirlas entre los días que hay 39 00:03:40,469 --> 00:03:42,110 y me ha quedado así 40 00:03:42,110 --> 00:03:44,490 con respecto 41 00:03:44,490 --> 00:03:46,310 al aula, ya sabréis 42 00:03:46,310 --> 00:03:48,050 un poco del aula de coordinación 43 00:03:48,050 --> 00:03:50,270 como es, aquí tenéis la programación didáctica 44 00:03:50,270 --> 00:03:52,270 os aconsejo que la leáis, tenéis también la guía 45 00:03:52,270 --> 00:03:53,810 didáctica que ahora la vamos a repasar 46 00:03:53,810 --> 00:03:56,349 aquí tenéis la etiqueta, la etiqueta no es nada más 47 00:03:56,349 --> 00:03:56,949 que una 48 00:03:56,949 --> 00:03:59,969 infografía que yo lo hago todos los años 49 00:03:59,969 --> 00:04:00,430 para 50 00:04:00,430 --> 00:04:03,569 aconsejar como 51 00:04:03,569 --> 00:04:06,069 uno se maneja a la hora 52 00:04:06,069 --> 00:04:08,129 de un entorno virtual en el que tiene que 53 00:04:08,129 --> 00:04:09,909 meter correos, foros, etcétera, pues 54 00:04:09,909 --> 00:04:11,930 cómo escribir, 55 00:04:12,030 --> 00:04:13,849 cosas muy, muy 56 00:04:13,849 --> 00:04:16,029 lindas. Luego 57 00:04:16,029 --> 00:04:18,009 tenemos aquí, luego ya toda la 58 00:04:18,009 --> 00:04:19,350 unidad, y si veis, 59 00:04:19,649 --> 00:04:21,649 aquí abajo, bueno, tenéis la tarea, 60 00:04:22,449 --> 00:04:24,110 y os he puesto cómo instalar 61 00:04:24,110 --> 00:04:25,930 en NetBeans 31. He creído conveniente 62 00:04:25,930 --> 00:04:27,850 utilizar la última versión de NetBeans, 63 00:04:27,990 --> 00:04:30,069 ¿vale? Aquí tenéis 64 00:04:30,069 --> 00:04:31,889 los dos enlaces, tanto de Apache NetBeans 65 00:04:31,889 --> 00:04:34,029 como de Temurin. ¿Por qué he utilizado 66 00:04:34,029 --> 00:04:36,189 Temurin? Porque lo veremos, 67 00:04:36,750 --> 00:04:37,970 sabéis que está el 68 00:04:37,970 --> 00:04:43,670 el JDK y el JRE. Bueno, si no lo sabéis, necesitamos para compilar y ejecutar los programas 69 00:04:43,670 --> 00:04:50,430 en Java. Entonces, el JRE tiene la máquina virtual, lo que nos genera es un bytecode 70 00:04:50,430 --> 00:04:55,589 intermedio en el que luego ese bytecode, que es un punto class, pues se va a tener que 71 00:04:55,589 --> 00:05:00,110 ejecutar en una máquina virtual. Esa máquina virtual la tiene el JRE y las herramientas 72 00:05:00,110 --> 00:05:04,930 de compilación, depuración, etcétera, la tiene el JDK. Pues ahora han sacado, hay un 73 00:05:04,930 --> 00:05:10,110 nuevo jdk en el que incluye la máquina virtual y entonces nos podemos ahorrar y evitar el jr que a 74 00:05:10,110 --> 00:05:15,529 veces por distintas versiones pues daba problemas entonces tan sólo tenemos que instalar el jdk y 75 00:05:15,529 --> 00:05:21,389 luego tenemos que a continuación cuando todo está en regla e instalar el apache en netflix aquí 76 00:05:21,389 --> 00:05:27,569 tenéis un vídeo de cómo se hace y aquí tenéis la instalación que sería esta que luego si queréis la 77 00:05:27,569 --> 00:05:37,509 repasamos. Aquí tenéis la instalación paso a paso de esta herramienta que la tendréis 78 00:05:37,509 --> 00:05:43,250 que tener preparada para poder hacer los ejercicios, para ejecutar los programas en el Hub. 79 00:05:45,230 --> 00:05:51,990 ¿Qué más? En cuanto a la guía didáctica, sería esta de aquí. Bueno, no sé si me he dejado algo. 80 00:05:51,990 --> 00:06:11,670 En cuanto a la guía didáctica, os la explico por encima, sin dar mucho en ella, o leerosla si queréis. Yo os lo aconsejaría que la leierais. ¿Qué nos dice la guía didáctica? ¿Qué tipo de formativo es? ¿Qué módulo es? ¿Qué sería el módulo de programación? 81 00:06:11,670 --> 00:06:17,370 aquí están mis datos y aquí tenéis las horas de videoconferencias voluntarias 82 00:06:17,370 --> 00:06:23,649 tanto hoy de 4 y 10 a 6 como los jueves de 5 y 5 a 6 83 00:06:23,649 --> 00:06:30,470 con respecto, esto es lo nuevo que se ha introducido este año 84 00:06:30,470 --> 00:06:32,370 que serían las llamadas tutorías colectivas 85 00:06:32,370 --> 00:06:37,750 que serían estas tres, que serían tutorías en las que bien podemos resolver dudas 86 00:06:37,750 --> 00:06:41,790 podemos hablar algo de la unidad 87 00:06:41,790 --> 00:06:44,310 o incluso realizar ejercicios 88 00:06:44,310 --> 00:06:45,569 en grandes estas horas. 89 00:06:46,029 --> 00:06:47,930 Yo siempre las voy a grabar. 90 00:06:49,709 --> 00:06:50,750 En cuanto a los contenidos, 91 00:06:50,870 --> 00:06:51,670 serían los que hay aquí. 92 00:06:51,870 --> 00:06:53,470 Aquí se me ha ido un poco en la tabla, 93 00:06:53,670 --> 00:06:54,769 pero estos son los contenidos 94 00:06:54,769 --> 00:06:56,269 de la Comunidad de Madrid 95 00:06:56,269 --> 00:06:58,889 y esto es todo lo que vamos a ver 96 00:06:58,889 --> 00:07:00,689 a lo largo del curso. 97 00:07:00,910 --> 00:07:03,310 Ahora tengo una presentación 98 00:07:03,310 --> 00:07:05,410 donde repasaremos del módulo, 99 00:07:05,490 --> 00:07:07,089 donde repasaremos todo lo que se va a ver. 100 00:07:07,089 --> 00:07:09,810 esta sería, uy, no sé 101 00:07:09,810 --> 00:07:12,089 qué ha pasado con el PDF, lo miraré 102 00:07:12,089 --> 00:07:13,910 porque aquí ha salido 103 00:07:13,910 --> 00:07:15,730 mal, lo miraré 104 00:07:15,730 --> 00:07:17,750 y lo resolveré, ¿vale? para que os salga bien 105 00:07:17,750 --> 00:07:19,810 ¿vale? esto realmente no es nada más que 106 00:07:19,810 --> 00:07:21,110 esta tabla que aparece aquí 107 00:07:21,110 --> 00:07:23,569 pero no sé 108 00:07:23,569 --> 00:07:25,490 qué le ha pasado a esto 109 00:07:25,490 --> 00:07:37,540 no es nada más que esta de aquí 110 00:07:37,540 --> 00:07:38,800 es lo mismo 111 00:07:38,800 --> 00:07:41,240 pero no sé si 112 00:07:41,240 --> 00:07:43,540 el PDF está corrupto, lo repasaré 113 00:07:43,540 --> 00:07:45,120 y lo volveré a colgar, ¿vale? ya bien 114 00:07:45,120 --> 00:07:46,240 no me he dado cuenta 115 00:07:47,180 --> 00:07:48,779 ¿Qué tenemos que saber en cuanto a la vía didáctica? 116 00:07:49,100 --> 00:07:51,399 Bueno, la metodología, bueno, es la de todos los años. 117 00:07:51,540 --> 00:07:53,939 Esto es cómo se va a entregar la tarea, ¿vale? 118 00:07:54,160 --> 00:07:55,759 Un formato para entregarla. 119 00:07:56,420 --> 00:08:02,339 Las tareas van a ser, veis aquí, serán pues las fechas muy similares a aquí. 120 00:08:02,339 --> 00:08:06,779 Aquí ya he puesto tareas para todas las unidades, pero veremos que a lo mejor elimino pues algunas, ¿vale? 121 00:08:07,579 --> 00:08:11,600 Y esto sería en cuanto a la estimación de horas recomendadas para cada una, 122 00:08:11,819 --> 00:08:15,459 cada una de las unidades, este es un módulo de 230 horas. 123 00:08:16,240 --> 00:08:21,120 En cuanto al seguimiento, criterios de evaluación, que a lo mejor a lo que más se nos puede interesar, 124 00:08:22,639 --> 00:08:28,980 cómo va a ser, pues, traer dos exámenes, uno que sale en la prueba ordinaria y otro en la prueba extraordinaria, 125 00:08:29,100 --> 00:08:33,659 que son aquí presenciales, y que tenéis que sacar un 5, un mayor de 5, para aprobarlos. 126 00:08:34,220 --> 00:08:42,899 Con respecto a las tareas, las tareas suponen un punto adicional a la nota que saquéis del examen. 127 00:08:42,899 --> 00:09:08,700 Entonces, esas tareas suponen un punto. Si yo tengo 10 tareas, pues tenemos que cada tarea contribuirá de una manera. Dependerá eso de los RAs, que ahora veremos los porcentajes de los RAs o los RAs implicados. Aunque aquí he puesto todos los RAs por igual, en función de los RAs que copen cada tarea, pues se repartirá ese valor. 128 00:09:08,700 --> 00:09:21,659 Imaginaos si tenéis 10 tareas y cada una podría valer, si todas las tareas son iguales, podría valer 0,1 puntos cada una de las tareas. Si sacáis un 10, en las 10 tendríais un punto que se añadiría a la nota del examen. 129 00:09:22,279 --> 00:09:38,399 Eso sí, ese punto adicional que se añade a la nota del examen solo se añade si sacáis en el examen un 5 o mayor de 5. Si no sacáis un 5, o sea, no lo aprobáis, no se va a sumar esa nota. Solo cuando la suméis se sumará dicha nota y se incrementará. 130 00:09:38,399 --> 00:09:43,279 Si tenéis un 0,5 en las tareas y habéis sacado un 0,5, pues al final tendréis un 6. 131 00:09:46,100 --> 00:09:54,000 Aquí está cómo se redondea. Miradlo. Cuidado con el redondeo desde 4 a 4,99. 132 00:09:54,399 --> 00:09:58,659 El redondeo siempre de 4 a 4,99 siempre va a ser de un valor de 4. 133 00:09:59,200 --> 00:10:02,480 O sea, si tenéis un 4,65, vais a tener un 4. 134 00:10:03,220 --> 00:10:06,600 ¿Qué sucede en el resto de intervalos? 135 00:10:06,600 --> 00:10:16,639 Fuera de ese intervalo, si los dos primeros decimales son mayores de 50, tendremos que se suma una unidad. 136 00:10:16,840 --> 00:10:20,220 Si es menor de 50 o igual a 50, se resta una unidad. 137 00:10:20,580 --> 00:10:25,299 Ejemplo, un 4,65 es un 4. 138 00:10:25,740 --> 00:10:29,960 Un 5,65 sería un 6. 139 00:10:30,320 --> 00:10:32,580 Y un 5,45 sería un 5. 140 00:10:35,639 --> 00:10:36,860 Estos serían los RAs. 141 00:10:36,980 --> 00:10:38,279 Aquí tenemos todos los RAs. 142 00:10:38,360 --> 00:10:41,159 no sé qué ha pasado 143 00:10:41,159 --> 00:10:43,019 tampoco aquí, miraré y lo repasaré 144 00:10:43,019 --> 00:10:44,740 porque esto está mal 145 00:10:44,740 --> 00:10:47,259 pero bueno, que sepáis que estos son los 6 R's 146 00:10:47,259 --> 00:10:49,100 que íbamos a ver, que ahora lo veremos en la 147 00:10:49,100 --> 00:10:51,039 presentación y que todos contribuyen por igual 148 00:10:51,039 --> 00:10:52,360 y 149 00:10:52,360 --> 00:10:54,600 esto se ve en cuanto a la guía didáctica 150 00:10:54,600 --> 00:10:56,419 luego 151 00:10:56,419 --> 00:10:58,580 la arreglo y os la cuelgo de nuevo 152 00:10:58,580 --> 00:11:00,700 porque veo que hay algunos errores 153 00:11:00,700 --> 00:11:03,240 con respecto 154 00:11:03,240 --> 00:11:04,879 a la presentación 155 00:11:04,879 --> 00:11:05,059 de 156 00:11:05,059 --> 00:11:10,639 la presentación del módulo. Tengo aquí una presentación que sería esta. 157 00:11:21,379 --> 00:11:23,539 Esta sería la presentación del módulo. 158 00:11:25,000 --> 00:11:29,960 En esta presentación voy a hablar de los RAs y voy a hablar de todo lo que vamos a dar 159 00:11:29,960 --> 00:11:34,059 a lo largo de todo el módulo, a lo largo de todo el curso. 160 00:11:34,059 --> 00:11:41,440 La asignatura se llama programación y que sepamos que tenemos nueve resultados de aprendizaje 161 00:11:41,440 --> 00:11:45,139 y esos nueve resultados de aprendizaje se van a repartir entre las unidades que tenemos 162 00:11:45,139 --> 00:11:52,200 Vamos a tener 11 unidades de trabajo y este sería el mapa de los resultados de aprendizaje 163 00:11:52,200 --> 00:11:57,820 En principio veremos las estructuras de un programa, eso cubrirá el RA1 164 00:11:57,820 --> 00:12:09,620 Con respecto a las estructuras de control, aquí tenemos las estructuras de un programa y añadiríamos también los elementos del primer programa, que sería la unidad 2. 165 00:12:09,799 --> 00:12:11,940 Entonces, esto cubriría la unidad 1 y la unidad 2. 166 00:12:12,639 --> 00:12:14,899 Con respecto a la estructura de control, sería el RA3. 167 00:12:15,980 --> 00:12:24,379 Luego pasaríamos a los fundamentos de aprobación de objetos con el RA2, las clases de objetos con el RA4, entrada y salida con el RA5, 168 00:12:25,100 --> 00:12:32,200 los tipos avanzados y la programación orientada a objetos, estos serían los tipos de datos avanzados, 169 00:12:32,340 --> 00:12:37,919 que son las colas, pilas, etcétera, que sería el R6, y el R7 sería la programación orientada a objetos avanzada. 170 00:12:38,620 --> 00:12:44,679 Y luego ya pasaríamos a la base de datos y presencia de datos, que cubrirían los RAs tanto 8 y 9. 171 00:12:46,590 --> 00:12:50,529 Aquí tenemos el itinerario del módulo, el itinerario tendríamos primero una de fundamentos, 172 00:12:50,590 --> 00:12:52,669 en el que hablaríamos de la unidad 1 a la unidad 3. 173 00:12:52,669 --> 00:13:06,789 Ya he dicho que unidad 1 es ver qué es un programa, qué es un algoritmo. Unidad 2, pasamos a nuestros primeros programas sencillos, viendo lo que es una variable, viendo lo que es una constante, viendo cuáles son los operadores, etc. 174 00:13:06,789 --> 00:13:17,049 Y la unidad 3, que serían ya las estructuras de control. Por lo tanto, los bucles while, for, los condicionales, etc. 175 00:13:17,629 --> 00:13:28,990 ¿Veis todo esto? Con todo esto ya podríamos estar realizando programas, lo que es básicamente a nivel de una manera procedimental, sin tener en cuenta la programación orientada a objetos. 176 00:13:28,990 --> 00:13:49,990 Con esto sería lo que serían los fundamentos de programación en cualquier lenguaje. No parece que aquí lo vamos a hacer en lenguaje Java. Luego pasaremos después a objetos. Ahora pasamos de algo procedimental, pasamos a entender el ámbito de este lenguaje de programación a través de los objetos. 177 00:13:49,990 --> 00:14:00,370 Los objetos, hay muchos lenguajes de programación de una variedad de objetos y trata de visualizar el mundo como si fuera todo un objeto. 178 00:14:00,870 --> 00:14:05,570 Eso que conlleva, conlleva y esos objetos provienen de una serie de clases. 179 00:14:05,850 --> 00:14:13,870 Las clases de ellas mismas se pueden instanciar los objetos y esos objetos tendrán unas propiedades y unos atributos que les diferencian unas instanciar de otras. 180 00:14:13,870 --> 00:14:39,190 Eso es la nueva metodología que surgió a raíz de vez más más, surgieron Smalltalk, que llevaron a otros lenguajes de programación también orientados a objetos, en el que se creó esa nueva visión y se olvidó la otra manera, que era la procedimental, a base de un montón de funciones y un programa en el que iba llamando a esas funciones. 181 00:14:39,190 --> 00:14:54,669 Se pasó de todo eso a lo que era una programación orientada a objetos, en el que todo es un objeto, tenemos un montón de clases y contextualizamos todo como si fuera un medio lleno de objetos, con unas propiedades y unos atributos. 182 00:14:56,450 --> 00:15:04,210 Después de entender lo que son los objetos, las clases, etc., pasaremos a datos en memoria, pasaremos a los tipos de datos, y los tipos de datos tanto estáticos como dinámicos. 183 00:15:04,210 --> 00:15:06,690 Veremos las pilas, las colas, etc. 184 00:15:07,110 --> 00:15:08,970 Y por último, hablaremos de la... 185 00:15:08,970 --> 00:15:12,710 Aquí, intermedias, sí hablaremos un poco de interfaz de usuario. 186 00:15:12,909 --> 00:15:15,850 Veremos con JavaFX crear botones, etc. 187 00:15:16,370 --> 00:15:18,409 Y por último, pasaremos a la persistencia. 188 00:15:18,809 --> 00:15:19,870 Ah, bueno, sí, tiene aquí interfaz. 189 00:15:20,190 --> 00:15:22,269 La persistencia interfaz, que será, pues, 190 00:15:22,429 --> 00:15:25,769 cómo podemos, a través de Java, acceder a la base de datos, 191 00:15:26,009 --> 00:15:27,149 modificar datos, etc. 192 00:15:30,720 --> 00:15:32,779 La unidad 1, ya lo he dicho antes, 193 00:15:33,059 --> 00:15:34,600 tenemos datos a los primeros programas, 194 00:15:34,600 --> 00:15:36,039 que sería la primera que vamos a ver, 195 00:15:36,039 --> 00:15:48,059 que es un algoritmo, diferenciar de manera clave que es un algoritmo y que es un programa, porque un programa y un algoritmo no es lo mismo, que es un paradigma y los lenguajes de programación. 196 00:15:48,059 --> 00:16:08,860 Y por último, el entorno y la calidad, que sería el qué. Tanto los errores de sintaxis, la calidad de un programa, cómo puede ser más claro, más legible, los IDs que tenemos para compilar y ejecutar los programas, etc. 197 00:16:09,460 --> 00:16:12,659 Todo eso es lo que vamos a ver en la unidad 1 y en la que compete ahora. 198 00:16:12,860 --> 00:16:21,529 Esta es la que vamos a tener hasta la fecha del 21 de octubre. 199 00:16:21,809 --> 00:16:23,809 Pasamos a la unidad 2. ¿Qué vamos a ver en la unidad 2? 200 00:16:23,909 --> 00:16:25,289 Pues elementos de un programa informático. 201 00:16:25,529 --> 00:16:29,610 Aquí ya sí nos metemos en lo que sería ya el fundamento de programación. 202 00:16:29,809 --> 00:16:35,330 Fundamento de programación, esto que podríamos dar aquí, lo vamos a ver con un idioma, 203 00:16:35,970 --> 00:16:40,250 que es el idioma Java, pero que podría servir para cualquier lenguaje de programación. 204 00:16:40,250 --> 00:16:47,190 ¿Por qué? Porque son los fundamentos de programación, tanto esto como la estructura de control de la unidad de tres, que nos van a servir para hacer cualquier tipo de programa. 205 00:16:47,629 --> 00:16:53,129 ¿Qué se pretende con esto? Se pretende que tengáis un pensamiento computacional. ¿Qué es un pensamiento computacional? 206 00:16:53,549 --> 00:17:02,990 Es cuando yo veo un problema, intento solucionarlo. ¿Y cómo lo soluciono? Pues diseño un algoritmo y con ello lo paso luego a un lenguaje de programación. 207 00:17:02,990 --> 00:17:21,509 Y con ello obtengo un resultado o una solución a dicho problema. Eso es lo que quiero que aprendáis, a tener ese pensamiento computacional para realmente, para eso sirve un programa y un algoritmo, que sería para resolver problemas. 208 00:17:21,509 --> 00:17:24,150 que vamos a ver aquí en la unidad 2 209 00:17:24,150 --> 00:17:26,630 pues tanto identificadores, las palabras reservadas 210 00:17:26,630 --> 00:17:28,829 que es una variable, las constantes 211 00:17:28,829 --> 00:17:30,109 que es un literal 212 00:17:30,109 --> 00:17:32,190 los tipos de datos que vamos a tener 213 00:17:32,190 --> 00:17:34,609 enteros, de cadena, operadores, expresiones 214 00:17:34,609 --> 00:17:36,549 las conversiones simplitas 215 00:17:36,549 --> 00:17:37,869 y explícitas pues tanto 216 00:17:37,869 --> 00:17:39,910 de un tipo de dato a otro 217 00:17:39,910 --> 00:17:41,950 los casting, los comentarios 218 00:17:41,950 --> 00:17:43,650 entradas y salidas estándar 219 00:17:43,650 --> 00:17:44,829 como el 220 00:17:44,829 --> 00:17:47,509 System.Au.Primer.En 221 00:17:47,509 --> 00:17:50,150 aquí tenemos un programa sencillito 222 00:17:50,150 --> 00:17:52,970 en Java, en el que, bueno, aquí 223 00:17:52,970 --> 00:17:56,369 donde utiliza la clase Scanner, que ya veremos, etc. 224 00:17:57,069 --> 00:18:01,369 Esto se ve en cuanto a la unidad 2 y se necesita complementar con la unidad 3 225 00:18:01,369 --> 00:18:02,170 para 226 00:18:02,170 --> 00:18:09,390 aunar lo que es los fundamentos de programación. Necesitamos, si queremos 227 00:18:09,390 --> 00:18:13,230 hacer un programa, no podemos hacer un programa solo con esto. Necesitamos 228 00:18:13,230 --> 00:18:17,269 hacer un programa, bueno, sí podríamos hacer programas, pero muy sencillos. Si queremos hacer un programa 229 00:18:17,269 --> 00:18:21,990 un poco más complejos, necesitamos de todo esto que aparece aquí y nos aparecen las estructuras de control. 230 00:18:22,289 --> 00:18:26,589 ¿Qué vamos a ver en la estructura de control? Necesitamos de un condicional, necesitamos de una herramienta 231 00:18:26,589 --> 00:18:30,609 que nos permita decidir en función de una condición si vamos en una dirección o vamos en otra. 232 00:18:31,109 --> 00:18:37,250 ¿Qué necesitamos también? Una repetición. Necesitamos, por ejemplo, imaginaos, quiero hacer una tabla de multiplicar, 233 00:18:37,349 --> 00:18:44,069 necesitamos un bucle que nos vaya recorriendo, una variable que vaya aumentando y nos vaya generando 234 00:18:44,069 --> 00:18:46,470 cada uno de los números por los que va a multiplicarse 235 00:18:46,470 --> 00:18:48,109 por ejemplo, si queremos hacer 236 00:18:48,109 --> 00:18:49,549 la tabla del 2, pues necesitamos 237 00:18:49,549 --> 00:18:52,029 generar el 2x1, 2x2, 2x3 238 00:18:52,029 --> 00:18:53,769 necesitamos un bucle que vaya recorriendo 239 00:18:53,769 --> 00:18:55,869 una variable que vaya 240 00:18:55,869 --> 00:18:58,190 sumando una unidad y vaya generando el segundo número 241 00:18:58,190 --> 00:18:59,450 por el que va multiplicado al 2 242 00:18:59,450 --> 00:19:02,069 necesitamos tener 243 00:19:02,069 --> 00:19:03,930 bucles, tanto for, while, igual 244 00:19:03,930 --> 00:19:05,930 y por último necesitamos también saltos 245 00:19:05,930 --> 00:19:07,849 salto o salida del bucle cuando sea necesario 246 00:19:07,849 --> 00:19:09,269 etcétera, pues con los break 247 00:19:09,269 --> 00:19:11,589 o continuar 248 00:19:11,589 --> 00:19:13,890 en el bucle sin que haga 249 00:19:13,890 --> 00:19:15,910 lectura, pues en continuar a la siguiente iteración 250 00:19:15,910 --> 00:19:17,009 pues con el continue 251 00:19:17,009 --> 00:19:19,349 o con el retru para salir 252 00:19:19,349 --> 00:19:21,269 y 253 00:19:21,269 --> 00:19:23,930 ya digo, hasta aquí, hasta la unidad 254 00:19:23,930 --> 00:19:25,970 3, habremos visto lo que son fundamentos 255 00:19:25,970 --> 00:19:27,809 de programación, sabremos programar 256 00:19:27,809 --> 00:19:29,630 cualquier programa y a lo mejor si sabemos 257 00:19:29,630 --> 00:19:31,789 otro idioma, pues podemos programar en otro 258 00:19:31,789 --> 00:19:33,569 idioma, en Python o en 259 00:19:33,569 --> 00:19:35,970 lo que sea, pero 260 00:19:35,970 --> 00:19:37,630 sabremos lo que es los fundamentos 261 00:19:37,630 --> 00:19:39,329 de programación y el conocimiento 262 00:19:39,329 --> 00:19:41,549 computacional para poder hacer cualquier 263 00:19:41,549 --> 00:19:43,470 programa, programa sencillo 264 00:19:44,309 --> 00:19:54,690 ¿Qué pasamos a la unidad 4? Una vez que sabemos los fundamentos de programación, vamos a introducir lo que son los objetos. 265 00:19:55,390 --> 00:20:07,869 Hablaremos de lo que es una clase, las estanciaciones de las clases que son los objetos, que esos objetos tendrán un comportamiento de una identidad determinada 266 00:20:07,869 --> 00:20:17,170 y hablaremos de la encapsulación, cómo se ocultan los detalles internos de este objeto hacia el exterior. 267 00:20:20,259 --> 00:20:23,400 Pasamos a la unidad 5, que es el desarrollo de clases y creación de objetos. 268 00:20:24,200 --> 00:20:30,059 Sabemos lo que es un objeto, sabemos cómo instanciarlo de una clase, pero nos queda todavía saber cómo crear una clase. 269 00:20:30,059 --> 00:20:51,799 Una clase es algo genérico, una estructura de algo genérico que va a tener una serie de propiedades y de métodos y de la cual podemos estanciar objetos, cada uno de ellos diferente, con un valor determinado para cada uno de sus atributos y una llamada o eventos a cada uno de sus métodos. 270 00:20:52,779 --> 00:21:05,460 Necesitaremos hacer lo que es una clase. Esto es un ejemplo de una clase. Veremos la visibilidad de estas clases. Veremos lo que es un constructor. 271 00:21:05,460 --> 00:21:18,440 veis aquí, son dos atributos de tipo cadena y de tipo doble, que además son privados, esto es lo que se llamaba la encasulación, ¿por qué? 272 00:21:18,440 --> 00:21:28,619 son privados, alguien desde fuera no puede acceder a ellos directamente, lo tiene que hacer a través de sus métodos, la clase vemos que es pública, por lo tanto se puede acceder a la misma 273 00:21:28,619 --> 00:21:33,339 tenemos un constructor, el constructor siempre es un método que tiene el mismo nombre que la clase 274 00:21:33,339 --> 00:21:36,440 además es un constructor sobrecargado que está formado 275 00:21:36,440 --> 00:21:39,740 por dos parámetros en su interior 276 00:21:39,740 --> 00:21:44,720 estos dos parámetros sirven para inicializar los dos parámetros que tenemos aquí arriba 277 00:21:44,720 --> 00:21:47,220 y luego tenemos un método que se llama el método total 278 00:21:47,220 --> 00:21:53,160 veremos lo que es esto, en cuanto a la 6 haremos estructuras de almacenamiento 279 00:21:53,160 --> 00:21:56,779 y vamos a ver tanto los arrays unidimensionales como los arrays bidimensionales 280 00:21:56,779 --> 00:22:00,140 o lo que se llaman las matrices. También esto sería 281 00:22:00,140 --> 00:22:04,700 parte de lo que son los fundamentos de programación, el uso 282 00:22:04,700 --> 00:22:08,720 de Arrays y veremos también algoritmos, recorridos y 283 00:22:08,720 --> 00:22:11,759 búsquedas y ordenaciones con respecto a estos, cómo podemos 284 00:22:11,759 --> 00:22:15,119 ordenar un Array, cómo podemos hacer una búsqueda, etc. 285 00:22:16,460 --> 00:22:20,660 Luego pasamos a la unidad 7, en la que hablaremos de clases avanzadas 286 00:22:20,660 --> 00:22:24,400 y de excepciones. Aquí veremos lo que son las superclases, las subclases, 287 00:22:24,400 --> 00:22:53,140 Veremos la herencia. Que sepáis que Java no tiene herencia múltiple. Por ejemplo, C++ tiene la propiedad de la herencia, pero tiene una herencia múltiple, mientras que Java solo puede ser de una clase o de otra. Veremos eso, veremos las relaciones de los constructores, veremos la sobreescritura de métodos, veremos lo que es el polimorfismo y veremos las excepciones, como capturar, propagar y lanzar excepciones. 288 00:22:53,140 --> 00:23:16,079 En la unidad 8 pasamos a las colecciones de datos y aquí estamos hablando de colecciones de datos que serían estructuras de datos dinámicas y serían en este caso las listas, las pilas, tendremos las colas con la estructura FIFO, el first in first out, o sea el primero que entra es el primero que sale en la cola, 289 00:23:16,079 --> 00:23:24,380 mientras que una pila es el LIF, o sea, el last year, first out, o sea, el último que entra es el primero que sale. 290 00:23:25,059 --> 00:23:31,480 Veremos también los conjuntos y de aquí pasaremos a la lectura y escritura de información, 291 00:23:31,759 --> 00:23:36,359 veremos qué son los streams, veremos cómo podemos utilizar la casa escáner, 292 00:23:36,839 --> 00:23:41,319 cómo podemos hacer lectura de datos y luego la escritura en pantalla, etc. 293 00:23:41,319 --> 00:23:46,660 Aquí nos meteremos con todo esto. 294 00:23:48,680 --> 00:23:50,559 En la unidad 10 veremos las interfaces gráficas. 295 00:23:50,619 --> 00:23:57,440 Ya he dicho que veremos con JavaFX y veremos un GUI simple en el que tengamos unos botones 296 00:23:57,440 --> 00:24:03,539 y que podamos además hacer eventos, o sea, que utilizamos controladores para que en función de dar al botón 297 00:24:03,539 --> 00:24:09,799 eso pueda generar una acción y desencadenar un error. 298 00:24:09,799 --> 00:24:39,460 Y por último, terminaríamos la unidad 11 con las bases de datos relacionales y persistencia de órdenes. ¿Qué nos interesa de aquí? Nos interesa establecer una conexión con una base de datos, por ejemplo MySQL, establecer esa conexión a través de Java, poder abrir esa conexión, establecer modificaciones en la base de datos o incluso captura de datos, lectura de datos, etc. 299 00:24:39,799 --> 00:24:49,599 Y con esto tendríamos todo lo que sería las 11 unidades y todo lo que vamos a ver a lo largo de todo el curso. 300 00:24:50,680 --> 00:25:03,599 Aquí, bueno, he puesto cómo se relacionan las unidades con los RAs, lógica más objetos, RA2, RA3, todo esto lo tenéis en la guía didáctica y no voy a... 301 00:25:03,599 --> 00:25:07,579 Aquí lo tenéis en resumen, es la temporalización de la misma. 302 00:25:07,980 --> 00:25:11,980 Aquí tenéis la unidad 1, si veis la diferencia entre unidades, 303 00:25:11,980 --> 00:25:18,980 pues son unidades con un tiempo relativo corto. 304 00:25:19,740 --> 00:25:24,079 Hay algunas que coinciden con las navidades o coinciden con las semanas de santa en el que se alargan, 305 00:25:24,559 --> 00:25:28,039 pero yo solo puedo contar los días lectivos. 306 00:25:28,039 --> 00:25:40,359 Entonces, que sepáis que son muchas unidades y que, bueno, pues que vamos a ir, no es que vayamos rápido, es que hay que dar todo este temario, entonces hay que hacerlo en estas unidades. 307 00:25:43,099 --> 00:25:55,839 En cuanto a cómo aprender programación, se genera aquí un esquema en el que lo importante primero es comprender, imaginaos si a vosotros os mandan resolver un problema, 308 00:25:55,839 --> 00:26:03,920 lo primero que tenéis que hacer es comprender, imaginaos que ese problema lo dan en texto, lo primero que tenéis que hacer es leer ese problema y definir, comprenderlo. 309 00:26:04,480 --> 00:26:10,900 Para poderlo solucionar, lo primero que tenéis que saber es qué es lo que se os pide, qué problema tenéis que resolver. 310 00:26:11,380 --> 00:26:15,559 Por ello tenéis que leerlo, tenéis que definir sus restricciones, tenéis que definir sus datos. 311 00:26:15,559 --> 00:26:32,119 Entonces, posteriormente, una vez que ya eso lo tienes claro, tienes claro realmente con lo que cuentas, con lo que realmente, qué es lo que realmente quieres, cuál es el problema y qué es lo que quieres solucionar, entonces aquí viene la creación del algoritmo. 312 00:26:32,119 --> 00:26:54,880 ¿Veis aquí la diferencia entre el algoritmo y el programa? Luego lo veremos. Entonces, creas el algoritmo y lo diseñas. Una vez diseñado, lo implementas, lo llevas a código. Aquí lo puedes saber escrito en un diagrama de flujo o con cualquier otra herramienta en donde hayas dibujado o diseñado la solución a ese problema, el algoritmo. 313 00:26:54,880 --> 00:27:20,900 Ese diagrama de flujo después lo puedes pasar a implementarlo o escribirlo en un código claro y modular a ser posible y lo más legible y comentado posible. Una vez ya implementado, pues se prueba. Vamos a ver si el problema que querías solucionar realmente soluciona toda la cosoística que necesita ese problema. 314 00:27:20,900 --> 00:27:27,720 Entonces, se le ponen valores límites, se le ponen errores, se le ponen para ver si con esas pruebas sí responde bien. 315 00:27:28,519 --> 00:27:35,660 Una vez que ya ha sido probado, pues, lógicamente, uno aunque lo prueba, es verdad que no existe programa. 316 00:27:37,099 --> 00:27:42,480 Normalmente, las pruebas pueden ser muy exhaustivas, pero eso no garantiza que no tenga ningún error. 317 00:27:42,480 --> 00:28:03,339 Si puedes garantizar que tú has generado todas las pruebas que crees necesario, que debería tener, incluso podrías ser muy exhaustivo, pero eso no quita que el programa pueda tener un error, sino que para las pruebas que tú le has efectuado, que eran lo que te interesaba, el programa funciona de manera correcta. 318 00:28:03,339 --> 00:28:16,579 De ahí viene luego después la depuración, si surge algún error, depurar, ver la causa, corregir y volver a rediseñar o incluso modificar aquí en la implementación del mercado. 319 00:28:18,680 --> 00:28:23,920 Y esto sería el resultado final de esta presentación. ¿Hasta aquí alguna pregunta? 320 00:28:28,759 --> 00:28:29,579 Por mi parte, no. 321 00:28:31,119 --> 00:28:36,259 Vale, si queréis paso. Esto sería todo lo que vamos a ver a lo largo del curso. 322 00:28:37,339 --> 00:28:46,779 Voy a pasar a poner la herramienta que vais a necesitar para ejecutar Java. 323 00:28:47,259 --> 00:28:51,980 Primero, aquí tenéis dos enlaces. Uno es el enlace de NetBeans. 324 00:28:52,720 --> 00:28:57,380 Yo he instalado, me lo he instalado además, también en mi ordenador, el NetBeans 31. 325 00:28:57,460 --> 00:29:03,460 Es la última versión, aquí lo tenéis, lo descargáis y os saldrá una carpeta comprimida que luego tendréis que descomprimir. 326 00:29:03,460 --> 00:29:11,380 Con respecto al otro link, es este que aparece aquí, que sería el enlace a Temurim JDK. 327 00:29:13,380 --> 00:29:22,180 Este Temurim JDK que viene de Clipse y además este es OpenJDK, o sea que sería gratuito. 328 00:29:22,819 --> 00:29:31,279 Este aparece, JDK25LTS, este es el que querría que lo descarguéis para Windows, que estaría aquí. 329 00:29:31,279 --> 00:29:44,059 Lo descargáis y ya tendréis los dos ficheros que vais a necesitar. Aquí tenéis el repaso de la instalación y tenéis el vídeo donde yo lo he realizado también. 330 00:29:50,759 --> 00:30:01,180 ¿Qué tenemos que hacer? Aquí tenemos las versiones, el JDK. Fijaos aquí en lo del JRE. No instalar aparte. No vamos a olvidar el JRE, que siempre a veces da problemas. 331 00:30:01,180 --> 00:30:04,339 quiero que sepáis la diferencia entre la jdk y la jr 332 00:30:04,339 --> 00:30:07,039 jdk lo que va a tener es el java c 333 00:30:07,039 --> 00:30:09,859 tenemos tanto el compilador, depurador, etc 334 00:30:09,859 --> 00:30:12,960 pero el jr es el que tiene la máquina virtual de java 335 00:30:12,960 --> 00:30:14,380 ¿qué quiere decir eso? 336 00:30:14,779 --> 00:30:16,480 que cuando yo compilo 337 00:30:16,480 --> 00:30:19,900 lenguajes de programación como c o c++ 338 00:30:19,900 --> 00:30:23,099 cuando el compilador actúa 339 00:30:23,099 --> 00:30:25,960 lo convierte en código máquina 340 00:30:25,960 --> 00:30:27,539 o sea, en código nativo 341 00:30:27,539 --> 00:30:29,980 lo compila y ya está 342 00:30:29,980 --> 00:30:40,019 Mientras que Java no, Java lo va a convertir en, Java C lo convierte a compilarlo en un bytecode, ese bytecode serían los ficheros .class. 343 00:30:40,640 --> 00:30:51,339 Esos bytecodes, como un código intermedio, luego después, si yo tengo la máquina virtual de Java en cualquier ordenador, es portable. 344 00:30:51,339 --> 00:30:59,740 Yo puedo llevar esos .class a cualquier ordenador donde tenga la máquina virtual de Java y allí pueden ser ejecutados con la máquina virtual de Java. 345 00:30:59,980 --> 00:31:17,839 Si veis, hay como un espacio intermedio, o sea, hay como si dijéramos un punto intermedio, quería decir. ¿Por qué C y C++ es más rápido que Java? Pues, lógicamente, porque no necesita ese paso intermedio C o C++. 346 00:31:17,839 --> 00:31:32,859 Y por eso, en pruebas de tiempo real, en programas para tiempo real o programas para sistemas operativos, se utiliza C++ y no se utiliza Java. 347 00:31:34,019 --> 00:31:37,119 Entonces, que sepáis que, por tanto, necesitamos un JDK y un JR. 348 00:31:37,400 --> 00:31:47,180 Pero el JR, ahora con la nueva versión de JDK, incluye lo que antes en la máquina virtual estaba JR, pues ahora la incluye el JDK. 349 00:31:47,180 --> 00:31:57,579 De tal manera que nos podemos olvidar del JR y lo único que vamos a instalar es el JDK25LTS, que es el que tiene también, además de lo que tiene el compilador, pues va a tener también la máquina virtual. 350 00:31:57,579 --> 00:32:06,759 Y ya viene todo en uno y nos olvidamos y mucho más sencillo de instalar y que no nos dé problemas con el JR porque versiones obsoletas o etc. 351 00:32:06,759 --> 00:32:25,200 ¿Qué hacemos? Pues lo primero que hacemos es jdk, incluye pues ya lo he dicho, las herramientas para compilar, ejecutar Java y también pues la descarga sería para 64 bits y bueno, está la distribución. 352 00:32:25,200 --> 00:32:38,819 ¿Qué hacemos? Pues le damos a instalar, ejecutamos y, bueno, pues, por ejemplo, nos la instalará, pues, lo más seguro que nos la instale, pues, en el archivo de programa, en java.java.rar y en el jdk.dn5. 353 00:32:40,819 --> 00:32:49,579 Aquí hago hincapié en lo de incluye lo necesario para desarrollar y ejecutar aplicaciones Java sin necesidad de utilizar o ejecutar, ¿vale? 354 00:32:49,579 --> 00:32:52,279 Una vez que lo tenemos instalado 355 00:32:52,279 --> 00:32:54,359 Vamos a configurar 356 00:32:54,359 --> 00:32:55,859 Tanto el javajón como el pad 357 00:32:55,859 --> 00:32:57,539 Entonces, ¿qué hay que hacer? 358 00:32:57,980 --> 00:33:00,000 Abrimos la variable del entorno 359 00:33:00,000 --> 00:33:01,680 Si yo le doy a 360 00:33:01,680 --> 00:33:05,710 Unr, pues aquí me aparece 361 00:33:05,710 --> 00:33:07,329 Y yo lo que puedo ver aquí 362 00:33:07,329 --> 00:33:16,829 Bueno, no me deja 363 00:33:16,829 --> 00:33:18,369 Porque no tengo 364 00:33:18,369 --> 00:33:21,930 O es que lo he puesto mal, no 365 00:33:21,930 --> 00:33:26,490 Vale, me dice que no 366 00:33:26,490 --> 00:33:26,970 Que no tengo 367 00:33:26,970 --> 00:33:29,029 bueno, que sepáis 368 00:33:29,029 --> 00:33:30,849 que, bueno, vuestro ordenador no va a ser 369 00:33:30,849 --> 00:33:32,829 ningún problema, ahí os van a salir las variables 370 00:33:32,829 --> 00:33:33,549 de entorno 371 00:33:33,549 --> 00:33:36,930 cuando le dais avanzadas, dentro de una pantallita 372 00:33:36,930 --> 00:33:38,710 que aparece, ahí salen las variables 373 00:33:38,710 --> 00:33:40,769 de entorno y ahí 374 00:33:40,769 --> 00:33:42,690 tenéis que configurar 375 00:33:42,690 --> 00:33:43,589 y poner 376 00:33:43,589 --> 00:33:46,910 en opciones avanzadas 377 00:33:46,910 --> 00:33:48,329 en variables de entorno pues 378 00:33:48,329 --> 00:33:50,430 añadir 379 00:33:50,430 --> 00:33:52,410 el que, esta ruta 380 00:33:52,410 --> 00:33:54,450 que va a ser la ruta donde está 381 00:33:54,450 --> 00:33:55,630 el jdk 382 00:33:55,630 --> 00:34:00,630 Además, tenéis que editar el path y añadir el javahome-bin. 383 00:34:00,630 --> 00:34:12,630 Dentro del bin es donde está el compilador y donde se va a ejecutar el programa cuando ejecutemos nuestro archivo de Java. 384 00:34:12,630 --> 00:34:22,630 Que sepáis que el primer archivo que se genera es un .java, ese es el que va a coger el compilador, lo compila y va a generar el bytecode, que será el .class. 385 00:34:22,630 --> 00:34:30,769 Luego ese punto class es un código intermedio que lo que va a hacer es ejecutado por la máquina virtual de Java que está dentro del equipo. 386 00:34:32,429 --> 00:34:37,190 Para estar dentro del equipo necesitamos tener listado el jdk. 387 00:34:38,230 --> 00:34:43,210 Por eso tenemos que llamar a la carpeta bin para que pueda realizar todas esas adopciones. 388 00:34:43,730 --> 00:34:49,469 Una vez que tenemos configurado esto, lo tenéis también en el vídeo, tenemos que comprobar si realmente lo hemos instalado bien o no. 389 00:34:49,469 --> 00:35:05,230 Entonces nos iremos al CND y allí pondremos la Java version, tanto de la Java como de la compiladora, la Java C, y veremos que nos saldrá la versión 25. 390 00:35:05,550 --> 00:35:20,599 Si yo doy aquí, vamos a ver si me deja, si yo pongo aquí, vamos a ver qué versión tienen aquí de Java. 391 00:35:32,429 --> 00:35:36,650 vale, no tiene instalado 392 00:35:36,650 --> 00:35:38,429 vale, bueno 393 00:35:38,429 --> 00:35:39,070 pues 394 00:35:39,070 --> 00:35:42,550 esto lo tendréis que hacer una vez que tengáis instalado 395 00:35:42,550 --> 00:35:44,329 JDK y veréis la versión 396 00:35:44,329 --> 00:35:46,389 os tiene que salir versión 25 397 00:35:46,389 --> 00:35:47,690 como aparece a mí en el vídeo 398 00:35:47,690 --> 00:35:50,090 una vez que ya tenemos solucionado esto 399 00:35:50,090 --> 00:35:52,329 y esto ha salido correcto, tenemos que pasar a 400 00:35:52,329 --> 00:35:54,469 instalar Apache NetBeans 31 401 00:35:54,469 --> 00:35:55,889 que he instalado, que es la última versión 402 00:35:55,889 --> 00:35:58,409 se descarga el NetBeans y luego 403 00:35:58,409 --> 00:36:01,309 aquí 404 00:36:01,309 --> 00:36:35,289 Y aquí tendréis al descargar, como veis, aparecen dos, ¿vale? 405 00:36:35,329 --> 00:36:38,449 Uno es el zip y el binzip y en las fuentes. 406 00:36:38,909 --> 00:36:40,710 Tienes que descargar este de arriba, ¿vale? 407 00:36:41,269 --> 00:36:42,949 Este es el que tendríais que descargar. 408 00:36:44,250 --> 00:36:53,010 Una vez descargado, pues lo descomprimís y luego pues dentro hay un fichero que se llama netbins64.exe 409 00:36:53,010 --> 00:36:54,789 y es el que tenéis que ejecutar, ¿vale? 410 00:36:54,789 --> 00:37:00,090 ¿Dónde lo va a instalar? Lo más seguro que se lo va a instalar en un archivo del programa NetBeans 31. 411 00:37:01,489 --> 00:37:13,090 Una vez que ya está instalado, pues ahora tiene que comprobar NetBeans que reconoce el Java 25, que reconoce ese JDK que hemos instalado. 412 00:37:13,690 --> 00:37:21,769 Entonces nos vamos a Tools, en Java Plasma, Forks, pues veremos si realmente es instalado el JDK. 413 00:37:21,769 --> 00:37:24,210 Si no, pues aquí tenéis la forma de cómo hacerlo. 414 00:37:24,210 --> 00:37:51,170 Una vez que ya os funcione, o sea, que veáis que lo tiene instalado, pues abrís un proyecto, metéis, por ejemplo, una Java aplicación a través del Java with Maven y os hacéis un programita sencillo como es este, en el que creáis la clase main con su public static point main y con un sistema de output para imprimir cualquier cosa y lo probáis para ver si os lo resulta de manera correcta. 415 00:37:51,170 --> 00:38:20,510 Si lo apuntáis de manera correcta, pues ya lo tenéis todo instalado, ¿vale? Aquí voy a mirar si aquí en este ordenador, que no es el mío, tienen instalado NetBeans, pero vamos, no lo creo. Si no, lo instalaré yo para las sesiones. Tiene instalado el NetBeans 25, ¿vale? Ah, no, aquí para descargar. Vale, lo actualizaré, ¿vale? 416 00:38:20,510 --> 00:38:27,130 Y esto sería todo el resumen de lo que es la instalación, ¿vale? 417 00:38:27,329 --> 00:38:32,449 Esto, solo hacer esto y captura de pantalla, eso es una parte de la tarea, ¿vale? 418 00:38:32,530 --> 00:38:36,750 Pero vamos, lo explico aquí ya detalladamente de cómo hacerlo, ¿vale? 419 00:38:36,769 --> 00:38:37,730 Pero quiero que lo hagáis. 420 00:38:41,679 --> 00:38:43,119 ¿Alguna duda sobre la instalación? 421 00:38:49,460 --> 00:38:49,860 Vale. 422 00:38:51,719 --> 00:38:56,340 ¿Qué más vamos a hablar hoy? 423 00:38:56,340 --> 00:39:24,760 He traído un resumen tanto de la unidad 1. A ver, a lo largo de las sesiones veremos lo que haremos. Habrá sesiones en las que no va a ser teoría, sino que nos iniciaremos cuando ya tenga instalado aquí NetBeans, nos iniciaremos en un programa sencillito, haremos un programa sencillo, veremos modificando por determinadas cosas del programa qué errores surgen y por qué y practicaremos haciendo ese tipo de cosas. 424 00:39:24,760 --> 00:39:38,019 Cuando ya los programas sean más complejos y tal, pues sí, haremos ejercicios y lo haremos entre todos. Eso es lo que yo creo que vamos a hacer. Y luego, pues todas las dudas que vayan surgiendo a lo largo de todas las sesiones que vamos a tener. 425 00:39:38,019 --> 00:39:41,559 Perfecto, ¿puedo hacerte una pregunta? 426 00:39:41,900 --> 00:39:42,340 Sí, sí 427 00:39:42,340 --> 00:39:45,300 Porque estoy de acuerdo con lo que ha escrito Victoria en el chat 428 00:39:45,300 --> 00:39:46,460 Y a mí me pasa igual 429 00:39:46,460 --> 00:39:48,139 Yo este es mi segundo año en programación 430 00:39:48,139 --> 00:39:50,360 Que el año pasado me quedó con un 4,6 431 00:39:50,360 --> 00:39:52,699 Yo tengo instalado 432 00:39:52,699 --> 00:39:55,500 El NetBean 25-27 433 00:39:55,500 --> 00:39:56,260 ¿Vale? 434 00:39:56,539 --> 00:39:57,940 ¿Cuándo dices que lo hiciera el 31? 435 00:39:58,739 --> 00:40:00,940 No, el que lo tenga ya instalado 436 00:40:00,940 --> 00:40:02,900 Esto es para los que no lo tengan 437 00:40:02,900 --> 00:40:04,880 El que lo tenga instalado 438 00:40:04,880 --> 00:40:06,920 Utilice ese, no va a haber una gran diferencia 439 00:40:06,920 --> 00:40:07,360 ¿Vale? 440 00:40:08,019 --> 00:40:16,480 La única diferencia es que instalar el 31 con el JDK, ya incluido con la máquina virtual, pues es más sencillo. 441 00:40:16,820 --> 00:40:17,699 Por eso lo he querido hacer así. 442 00:40:17,840 --> 00:40:20,320 Pero tú tienes el 25, pues el 25 y ya está. 443 00:40:20,940 --> 00:40:22,079 O sea, y el problema es que... 444 00:40:22,079 --> 00:40:24,380 Bueno, bueno, bueno, yo también. 445 00:40:24,800 --> 00:40:28,519 No, no, no pasa, no te líes en actualizar, porque tampoco me... 446 00:40:28,519 --> 00:40:33,659 Aunque he puesto el 31, pues porque si usaría, pero tú tienes el 25, utiliza el 25. 447 00:40:33,659 --> 00:40:37,480 Y ya lo digo a todos los que estéis en la conferencia. 448 00:40:37,480 --> 00:40:39,480 bueno, y queda aquí grabado, el que tenga 449 00:40:39,480 --> 00:40:41,000 una versión anterior la puede utilizar 450 00:40:41,000 --> 00:40:42,639 lo que sí me interesa es que 451 00:40:42,639 --> 00:40:45,159 si ya la tiene instalada es porque ha sabido instalarla 452 00:40:45,159 --> 00:40:46,820 con el JDK, etc. 453 00:40:47,239 --> 00:40:49,659 pero no es necesario 454 00:40:49,659 --> 00:40:50,900 a ver 455 00:40:50,900 --> 00:40:53,400 lo que sucede es que la práctica 456 00:40:53,400 --> 00:40:55,659 la tarea sí viene enfocada 457 00:40:55,659 --> 00:40:55,920 a eso 458 00:40:55,920 --> 00:40:59,440 seguramente que lo tendrás del año pasado 459 00:40:59,440 --> 00:41:02,960 la primera tarea nuestra 460 00:41:02,960 --> 00:41:04,480 fue un programa 461 00:41:04,480 --> 00:41:07,519 de ecuación de segundo grado 462 00:41:07,519 --> 00:41:09,579 o sea, no tiene nada que ver con lo que has puesto este año 463 00:41:09,579 --> 00:41:11,179 otra cosa distinta 464 00:41:11,179 --> 00:41:11,860 vale, pues 465 00:41:11,860 --> 00:41:14,599 es verdad que la tarea, pero 466 00:41:14,599 --> 00:41:16,679 no te compliques, porque tampoco 467 00:41:16,679 --> 00:41:18,719 mi idea no es que 468 00:41:18,719 --> 00:41:20,420 tengáis que utilizar un NetBeans 469 00:41:20,420 --> 00:41:23,440 por narices, que sea la última versión 470 00:41:23,440 --> 00:41:24,300 no esa es mi idea 471 00:41:24,300 --> 00:41:27,239 el que no lo tenga, que lo haga así, ya que se pone 472 00:41:27,239 --> 00:41:28,639 pues que coja la última versión, ¿vale? 473 00:41:28,719 --> 00:41:30,420 el que tenga una 25, pues que coja la 25 474 00:41:30,420 --> 00:41:31,840 es que no va a haber una gran diferencia 475 00:41:31,840 --> 00:41:38,880 A ver, habrá diferencia en alguna parte, pero luego para ejecutar lo que queremos va a ser lo mismo. 476 00:41:38,880 --> 00:41:56,469 Vale, y pasamos al resumen de la unidad 1, que sería introducción a la programación y qué es lo que vamos a ver en esta unidad. 477 00:41:56,469 --> 00:42:12,230 En esta unidad, ¿dónde comenzamos? Pues comenzamos con definir qué es un problema, qué es un algoritmo, cómo lo pasamos al código y luego la ejecución. 478 00:42:12,369 --> 00:42:25,429 ¿Qué significa un programa? Un programa va a ser una serie de instrucciones que están escritas en un lenguaje y que además nosotros vamos a ejecutar en un ordenador. 479 00:42:25,429 --> 00:42:42,050 Ese programa lo que va a hacer es automatizar una tarea. La programación es el proceso completo para generar ese programa, tanto la codificación, la compilación, probarla, mantenerla, etc. 480 00:42:42,369 --> 00:43:00,690 Entonces, ¿la idea cuál es? Que programar no es empezar a escribir código. Primero, lo que he dicho antes, hay que comprender lo que queremos resolver y planificar y luego ponernos a programar. Uno no se puede poner a programar a lo loco, tendrá que saber qué problema quiere solucionar. 481 00:43:00,690 --> 00:43:11,929 En función de qué problema quiere solucionar, establecer una solución y luego, una vez que tienes dicha solución a ese problema, pues pasarlo a código. 482 00:43:14,449 --> 00:43:23,329 ¿De un problema a una solución? Hay una serie de pasos. Primero tienes que ir mirando o definir o comprender el problema, lo que he dicho, que sería lo que llaman el análisis. 483 00:43:23,909 --> 00:43:36,030 Después diseñar el algoritmo que va a resolver ese problema y por último pasarlo a codificación, pasarlo a programa que lo puedes pasarlo en cualquier lenguaje, en cualquier idioma. 484 00:43:36,030 --> 00:43:43,449 tres ideas para reducir la complejidad 485 00:43:43,449 --> 00:43:47,210 y además esas tres ideas están muy relacionadas con Java 486 00:43:47,210 --> 00:43:49,630 que son la extracción, la encapsulación y la modularidad 487 00:43:49,630 --> 00:43:51,269 Java es muy modular 488 00:43:51,269 --> 00:43:55,090 entonces eso que permite el hecho de dividir el software en partes 489 00:43:55,090 --> 00:43:59,150 habéis oído la frase de un problema complejo 490 00:43:59,150 --> 00:44:04,849 se puede resolver dividiéndolo en problemas más sencillos 491 00:44:04,849 --> 00:44:30,530 Hacer módulos independientes con tareas muy separadas hace que se reduzca la complejidad de un problema. Encapsular, ocultar los detalles internos hacia afuera, eso también hace que desde fuera no afecten a nuestro sistema y que no haya mucho acoplamiento. 492 00:44:30,530 --> 00:44:54,530 Y, por último, la abstracción. Cuando hablamos de abstracción es establecer algo o descomponer un problema grande, lo que he dicho antes, en pequeños, pero lo que se trata es de buscar el problema en sí desde un punto de vista abstracto, o sea, desde un punto de vista ahorrándote todos los detalles. 493 00:44:54,530 --> 00:45:14,550 Entonces, desde un punto de vista mucho más genérico. Entonces, claro, surge el algoritmo. La diferencia del programa es que son una serie de pasos que van a resolver un problema. Además, esos pasos siguen una secuencia, que una serie de pasos no son ambiguos y que conducen a una solución. 494 00:45:14,550 --> 00:45:37,030 Entonces, un algoritmo siempre tiene que ser preciso, definido y finito. Finito, o sea, ¿qué quiere decir? Que tiene un número limitado de pasos, no puede variar, siempre es el mismo. Está definido, siempre definido quiere decir que yo le meto a ese algoritmo una entrada, un valor numérico, lo que sea, y siempre me tiene que, para la misma entrada, tiene que darme el mismo resultado. 495 00:45:37,030 --> 00:45:45,300 Y por último, preciso, que hay un orden y ese orden es paso a paso, desde arriba hacia abajo. 496 00:45:45,699 --> 00:45:47,239 ¿Cómo puedo hacer ese algoritmo? 497 00:45:47,440 --> 00:45:56,059 Como he dicho antes, cuando yo lo diseño lo puedo realizar en su código, lo puedo hacer con diagramas de flujo, con tablas de decisión, etc. 498 00:45:56,440 --> 00:46:04,159 Luego, una vez que ya tenemos ese algoritmo bien hecho con un diagrama de flujo, con su código, lo pasamos a codificar, pasamos al lenguaje de programación que vayamos a utilizar. 499 00:46:05,000 --> 00:46:06,320 ¿Diferencia entre algoritmo y programa? 500 00:46:06,320 --> 00:46:09,139 entonces el algoritmo 501 00:46:09,139 --> 00:46:11,559 hemos dicho que era 502 00:46:11,559 --> 00:46:14,019 el que describía una solución 503 00:46:14,019 --> 00:46:15,519 en cambio el programa 504 00:46:15,519 --> 00:46:17,920 es el algoritmo pero expresado 505 00:46:17,920 --> 00:46:19,760 con las reglas de un lenguaje de programación 506 00:46:19,760 --> 00:46:22,019 con lo cual aquí 507 00:46:22,019 --> 00:46:24,400 diferenciamos lo que es un diseño lógico 508 00:46:24,400 --> 00:46:26,260 que sería para resolver el algoritmo 509 00:46:26,260 --> 00:46:28,139 de lo que es una implementación 510 00:46:28,139 --> 00:46:31,619 también en la unidad 1 511 00:46:31,619 --> 00:46:33,599 nos habla de los paradigmas de programación 512 00:46:33,599 --> 00:46:35,320 un paradigma 513 00:46:35,320 --> 00:46:39,800 es una filosofía, un modelo para diseñar o implementar 514 00:46:39,800 --> 00:46:43,619 un programa. Entonces, es el modo en el que yo voy a codificar 515 00:46:43,619 --> 00:46:46,719 ese... Tengo un algoritmo, tengo 516 00:46:46,719 --> 00:46:51,599 un problema que resolver, diseño un algoritmo y a continuación 517 00:46:51,599 --> 00:46:56,139 lo codifico en un programa. Ese programa o la filosofía 518 00:46:56,139 --> 00:46:59,900 en la que está escrito o en la que tiene tanto el léxico 519 00:46:59,900 --> 00:47:03,480 o la sintaxis y la semántica de un programa, pues puede tener 520 00:47:03,480 --> 00:47:07,760 distinta filosofía. Podemos tener una filosofía orientada a objetos, como hemos dicho antes, 521 00:47:07,880 --> 00:47:14,940 en el que todo el mundo, el mundo real, lo vas a tratar como objetos. La otra filosofía 522 00:47:14,940 --> 00:47:22,199 podría ser una filosofía funcional, todo de base de funciones. Aquí tenemos un montón 523 00:47:22,199 --> 00:47:30,159 de paradigmas, tanto declarativo, imperativo. El declarativo describe qué problema se quiere 524 00:47:30,159 --> 00:47:34,500 resolver, más que nada de cómo lo va a resolver. Eso sería una programación declarativa. 525 00:47:35,280 --> 00:47:41,239 Esto se utiliza, pues es un refugio declarativo, pues puede ser SQL. Una programación imperativa 526 00:47:41,239 --> 00:47:46,739 es, describe a rajatabla cómo va a resolver el problema. Entonces, cómo, mediante unos 527 00:47:46,739 --> 00:47:51,519 comandos que van modificando el estado del programa hasta alcanzar una solución. Esto 528 00:47:51,519 --> 00:47:57,400 sería, pues, imperativo, pues serían programas, por lo tanto, pues Java y luego los lenguajes 529 00:47:57,400 --> 00:48:01,199 de programación no solo tienen un paradigma, pueden tener varios paradigmas asociados. 530 00:48:01,860 --> 00:48:06,440 Porque Java es una programación imperativa, pero también es una programación orientada 531 00:48:06,440 --> 00:48:11,820 a objetos. Sucede también con CIMARMAS. Dentro de los paradigmas, dentro de la programación 532 00:48:11,820 --> 00:48:17,099 imperativa, pues estarían, veis, la orientada a objetos, que sería el que modela todo como 533 00:48:17,099 --> 00:48:23,539 si fueran objetos. Todo va a ser un objeto. Imaginaos un coche, yo lo puedo generar como 534 00:48:23,539 --> 00:48:25,699 una clase, la clase coche, y esa clase 535 00:48:25,699 --> 00:48:27,460 coche va a instanciar 536 00:48:27,460 --> 00:48:29,340 coches. Y como tiene 537 00:48:29,340 --> 00:48:31,280 distintos atributos, como puede ser color, 538 00:48:31,500 --> 00:48:33,599 como puede ser... y distintos 539 00:48:33,599 --> 00:48:35,639 métodos, como puede ser arrancar, parar, etc. 540 00:48:36,019 --> 00:48:37,300 Pues todo eso 541 00:48:37,300 --> 00:48:39,360 instanciará objetos coche 542 00:48:39,360 --> 00:48:41,300 con distintos atributos y con distintos 543 00:48:41,300 --> 00:48:42,820 métodos. 544 00:48:43,579 --> 00:48:44,880 Y en eso se basa 545 00:48:44,880 --> 00:48:46,800 la filosofía 546 00:48:46,800 --> 00:48:49,159 o el paradigma orientado a las manos. 547 00:48:49,659 --> 00:48:51,320 Luego la estructurada, que es la que hablaba yo 548 00:48:51,320 --> 00:48:53,159 de cómo organiza un programa 549 00:48:53,159 --> 00:49:02,960 con secuencia y selección y repetición, con el código claro y ordenado, eventos, 550 00:49:03,099 --> 00:49:08,960 que sería el Visual Basic, en el que el programa responde a acciones, a clics, a teclas, a 551 00:49:08,960 --> 00:49:16,500 mensajes, y luego la programación, el paradigma, dentro de la imperativa, a aspectos, en el 552 00:49:16,500 --> 00:49:24,099 que separa las preocupaciones transversales como seguridad, registro de actividad o control de errores. 553 00:49:27,039 --> 00:49:30,940 En cuanto a las fases de la programación que tenemos, primero, vamos a resolver un problema, 554 00:49:31,119 --> 00:49:34,099 es lo mismo que hemos visto antes, análisis y diseño del algoritmo. 555 00:49:34,559 --> 00:49:38,500 Segundo, implementación, lo vamos a codificar, lo vamos a traducir y lo vamos a hacer pruebas. 556 00:49:39,159 --> 00:49:44,500 Y tercero, explotación y mantenimiento. Vamos a ver un uso real en el que ya el cliente lo está utilizando. 557 00:49:44,500 --> 00:50:00,760 Vamos a ver si hay fallos, si se pueden hacer correcciones, si se pueden hacer mejoras, etc. Pero veis esas tres fases de la programación como están separadas. La resolución del problema, la implementación y la explotación y mantenimiento. 558 00:50:00,760 --> 00:50:19,659 En cuanto a la resolución del problema, vamos a pasar primero por un análisis diseño, como lo he dicho. El análisis lo que va a hacer es establecer los requisitos del sistema. ¿Qué va a necesitar? Los requisitos que necesita para que ese problema tenga una solución. 559 00:50:19,659 --> 00:50:31,480 Tenemos que especificar esos requisitos, comprender claramente el problema, recopilar información de los usuarios y de los clientes para ver qué es lo que desean en ese programa, en ese algoritmo que vamos a crear. 560 00:50:31,480 --> 00:50:41,480 Esto se puede generar dependiendo de la manera en la que hagamos el análisis, con refinamientos. 561 00:50:41,480 --> 00:50:53,480 Se empieza con el problema a grosso modo y se van haciendo refinamientos hasta que obtenemos todos los requisitos funcionales y no funcionales de lo que vamos a crear. 562 00:50:53,480 --> 00:50:57,480 A continuación pasaríamos a convertir esos requisitos en una secuencia lógica. 563 00:50:57,480 --> 00:51:02,599 y descomponer cada una de las operaciones, los módulos, construir el algoritmo, etc. 564 00:51:04,500 --> 00:51:09,300 Una vez que ya hemos hecho el análisis y hemos hecho el diseño, a continuación tenemos que pasar a la implementación. 565 00:51:09,679 --> 00:51:15,099 Y la implementación tiene esas tres fases, que serían, primero lo vamos a codificar, primero tendremos que elegir, 566 00:51:15,920 --> 00:51:27,099 después, en función del problema que tengamos, podemos elegir qué paradigma podemos usar para resolver nuestro problema. 567 00:51:27,099 --> 00:51:43,920 A ver, nosotros hemos diseñado, hemos hecho un análisis, un diseño de un algoritmo, pero a veces ese algoritmo o esa solución es mucho más fácil realizarla con un determinado paradigma de programación, con un determinado lenguaje, que con otro. 568 00:51:43,920 --> 00:52:05,239 Entonces, aquí en esta fase también podríamos elegir qué lenguaje de programación usar. Tendremos que hacer todo el código fuente para traducir ese diseño que hemos hecho de algoritmo al lenguaje de programación que vamos a utilizar y a continuación establecer la traducción del mismo. 569 00:52:05,239 --> 00:52:19,139 Una vez que lo hemos compilado y lo hemos interpretado, pues ya lo hemos ejecutado. Ya tenemos nuestro programa, lo tenemos ejecutado y ahora nos queda el que, la última fase sería probarlo. 570 00:52:19,139 --> 00:52:47,460 Hay que probarlo, establecer diferentes tipos de pruebas, tanto de caja negra como de caja blanca, establecer una batería de pruebas exhaustiva para que nunca se pueda decir al 100% que un programa está ausente de errores, pero sí para establecer una seguridad muy alta que ese programa hace lo que nosotros queremos que haga. 571 00:52:49,139 --> 00:53:00,280 Incluso hay algunos tipos de programación en el que primero se diseñan las pruebas y después se pasa a codificar el programa. 572 00:53:02,739 --> 00:53:05,099 A continuación, este sería el compilador e intérprete. 573 00:53:05,719 --> 00:53:09,500 Hay que ver qué tipo de funciones de lenguaje tengamos. 574 00:53:09,719 --> 00:53:13,199 Unos utilizan un compilador y otros utilizan el intérprete. 575 00:53:13,699 --> 00:53:16,559 ¿Qué diferencia hay entre un compilador y qué diferencia hay entre intérprete? 576 00:53:16,559 --> 00:53:30,480 Un compilador lo que hace es traducir el programa a un lenguaje. El lenguaje Java, el lenguaje T++, es un lenguaje que está en un lenguaje de alto nivel. 577 00:53:31,039 --> 00:53:40,739 ¿Eso qué significa? Un lenguaje de alto nivel es el que está más cercano al humano. El lenguaje Java está formado por palabras que somos capaces de reconocer 578 00:53:40,739 --> 00:53:45,719 y que están más cercanos a lo que es el lenguaje humano, a lo que es el lenguaje natural. 579 00:53:46,480 --> 00:53:49,460 Por eso se llaman lenguajes de nivel alto. 580 00:53:49,900 --> 00:53:55,420 Entonces, el compilador lo que tiene que hacer es pasar ese lenguaje a un lenguaje que solo entiende el ordenador. 581 00:53:55,780 --> 00:53:58,780 Y ese lenguaje que no entiende el ordenador es el lenguaje de 0 y 2. 582 00:53:59,099 --> 00:54:05,139 Entonces, es necesario compilar y pasar al lenguaje, que sería lo que se llama un lenguaje de bajo nivel. 583 00:54:05,579 --> 00:54:08,579 Bajo nivel es que está más cercano a la máquina, alto nivel más cercano al humano. 584 00:54:09,519 --> 00:54:13,659 Tienes que compilarlo para que el ordenador lo sepa interpretar. 585 00:54:14,380 --> 00:54:17,900 Hay una lengua de programación en la que lo que nos pasa directamente a esto, 586 00:54:18,039 --> 00:54:19,900 como puede ser C, C++, a través de un compilador. 587 00:54:20,679 --> 00:54:22,960 Luego tenemos el caso de Java, que lo haces a través de un compilador, 588 00:54:23,059 --> 00:54:24,639 pero genera un código intermedio, un bytecode. 589 00:54:25,519 --> 00:54:29,360 Y luego tenemos también la diferencia con lo que es un intérprete. 590 00:54:29,360 --> 00:54:33,739 Un intérprete es el que analiza, traduce y ejecuta las instrucciones a medida que son necesarias. 591 00:54:33,739 --> 00:54:36,980 hay muchos lenguajes interpretados 592 00:54:36,980 --> 00:54:38,320 que 593 00:54:38,320 --> 00:54:40,900 intuís en cuanto a la diferencia 594 00:54:40,900 --> 00:54:42,659 entre un intérprete y un compilador, pues lógicamente 595 00:54:42,659 --> 00:54:44,760 un compilador, como ya lo tenemos 596 00:54:44,760 --> 00:54:46,019 compilado, el lenguaje 597 00:54:46,019 --> 00:54:48,260 que entiende el propio ordenador 598 00:54:48,260 --> 00:54:50,599 va a ser súper rápido, imaginaos 599 00:54:50,599 --> 00:54:52,139 un intérprete, un intérprete lo tiene que ir 600 00:54:52,139 --> 00:54:54,639 analizando conforme 601 00:54:54,639 --> 00:54:55,739 lo va a gestar 602 00:54:55,739 --> 00:54:57,719 que se recuerde 603 00:54:57,719 --> 00:54:59,719 un lenguaje de traducción 604 00:54:59,719 --> 00:55:02,659 con intérprete podría ser PHP 605 00:55:02,659 --> 00:55:29,239 En el ciclo de vida del software hemos visto que necesitamos analizar los requisitos para establecer un diseño, luego codificarlo, luego realizar las pruebas, pasar la producción y por último el mantenimiento para ver si necesitamos ir hacia atrás, si necesitamos rediseñar y cambiar el código en función de algún error que surja o de alguna mejora que también se nos surja. 606 00:55:29,239 --> 00:55:36,860 ¿Veis? Esto sería una especie de ciclo. Por tanto, el ciclo de vida sería la subvisión de estados o fases por las que pasa el software a lo largo de su vida. 607 00:55:38,539 --> 00:55:48,559 ¿Lenguaje de programación? Un lenguaje de programación tiene una serie de reglas. Normalmente un compilador está formado por tres partes. 608 00:55:49,179 --> 00:55:54,880 Un compilador está formado por un analizador léxico, un analizador sintáctico y un analizador semántico. 609 00:55:55,460 --> 00:55:58,699 ¿Eso qué significa? Significa que cuando tú creas un lenguaje de programación, 610 00:55:59,199 --> 00:56:04,639 le creas una serie de palabras o léxico, lo que se llaman las palabras reservadas. 611 00:56:05,639 --> 00:56:09,719 El compilador, cuando tú escribes un código, por ejemplo en Java, 612 00:56:10,119 --> 00:56:15,800 lo primero que va a hacer es un escaneo léxico para ver si las palabras que aparecen ahí 613 00:56:15,800 --> 00:56:23,599 están dentro de ese, se asegura que el léxico que tú utilizas es el que el lenguaje de programación tiene. 614 00:56:23,599 --> 00:56:42,659 A continuación, realiza un análisis sintáctico. Esto serían palabras, por ejemplo, print, escáner, todas las palabras que aparecen como palabras, bueno, escáner no, pero serían por lo que sean las palabras reservadas, por ejemplo, class. 615 00:56:42,659 --> 00:57:03,079 Y sería una serie de palabras que el propio if, while, todas esas palabras, sería el léxico que tiene ese lenguaje de programación y que va a acotejar y va a mirar cuando compila si realmente las palabras que tú escribes en el lenguaje de programación son las adecuadas o no. Están dentro del léxico creado para este lenguaje de programación. 616 00:57:03,079 --> 00:57:21,980 La condición de hacer un análisis sintático es cuando ya juntamos varias palabras para formar una frase, que sería cualquier línea en un lenguaje de programación. Después del análisis sintático, tiene que ver si realmente la frase o lo que ha escrito tiene sentido, tiene un sentido semántico, ya que haría un análisis semántico. 617 00:57:21,980 --> 00:57:27,699 Fijaos todas las partes por las que tiene que pasar un compilador para analizar ese código y ver si tiene algún error o no. 618 00:57:28,239 --> 00:57:36,980 Después de hacer todo este análisis, cuando tú compilas, si te sale algún error es porque en uno de estos pasos ha visto que algo no estaba escrito correcto 619 00:57:36,980 --> 00:57:47,619 o no tiene el sentido correcto o incluso hemos generado una frase, o sea, varias palabras unidas en el que no tienen la sintaxis adecuada. 620 00:57:47,619 --> 00:58:16,900 En cuanto a la evolución de los lenguajes, veis, ha evolucionado a lo largo de estos años, hemos ido de un lenguaje de bajo nivel, que sería este, el lenguaje máquina, con ceros y unos, que realmente es lo que entiende el ordenador, el lenguaje del ordenador lo único que entiende es un cero o uno, hay tensión o no la hay, no entiende otra cosa el ordenador, ese sería el, hay un cero voltios o hay un voltaje, no entiende otra cosa. 621 00:58:16,900 --> 00:58:19,500 pero este sería un lenguaje de bajo nivel 622 00:58:19,500 --> 00:58:21,639 imaginaos si tuviéramos que programar 623 00:58:21,639 --> 00:58:23,280 en lenguaje de máquina sería imposible 624 00:58:23,280 --> 00:58:24,400 o sea con 0 y 1 625 00:58:24,400 --> 00:58:27,800 posteriormente al lenguaje de máquina 626 00:58:27,800 --> 00:58:29,079 surgió el lenguaje ensamblador 627 00:58:29,079 --> 00:58:31,480 ya a través de reglas mnemotécnicas 628 00:58:31,480 --> 00:58:33,840 o de palabras mnemotécnicas como eran estas de aquí 629 00:58:33,840 --> 00:58:36,320 para dividir, para multiplicar 630 00:58:36,320 --> 00:58:37,079 para mover 631 00:58:37,079 --> 00:58:40,139 pues se lograban ya 632 00:58:40,139 --> 00:58:41,440 pues que era 633 00:58:41,440 --> 00:58:44,519 bastante complejo de programar 634 00:58:44,519 --> 00:58:45,440 pero bueno pues era 635 00:58:45,440 --> 00:58:54,599 mucho más cercano al humano y mucho más fácil de programar algo no demasiado complejo a través de ensamblador. 636 00:58:55,159 --> 00:58:59,420 Después de ensamblador, empezaron los lenguajes de alto nivel. 637 00:58:59,739 --> 00:59:02,599 Los lenguajes de alto nivel es porque están más cercanos al humano. 638 00:59:03,119 --> 00:59:13,320 Si veis un lenguaje de programación cualquiera, PHP, Java, C++, todos tienen un léxico que es más parecido al humano. 639 00:59:13,320 --> 00:59:24,940 A ver, todos están en inglés porque los que los han creado han sido de habla inglesa, pero si veis son palabras que ya son en un lenguaje nuestro, en un lenguaje más cercano al humano. 640 00:59:27,059 --> 00:59:35,500 Aquí tenemos la diferencia entre compilado y lenguaje compilado e interpretado. Un compilado es un código fuente, se compila y ya está, ya tenemos el código objeto ejecutado. 641 00:59:35,500 --> 00:59:45,340 Por eso es tan rápido, al caso de C++. Uno ha interpretado, pues el código fuente, y un intérprete va traduciendo y ejecutando conforme va leyendo lineal. 642 00:59:47,260 --> 00:59:59,320 En cuanto a las características principales de Java, ¿cuáles serían? Pues tenemos que las principales características de Java, que es un lenguaje de programación orientado a objetos, 643 00:59:59,320 --> 01:00:01,639 me he dicho que era para irme imperativo 644 01:00:01,639 --> 01:00:03,280 orientado a objetos 645 01:00:03,280 --> 01:00:05,380 los programas están formados por objetos 646 01:00:05,380 --> 01:00:07,219 uno puede programar 647 01:00:07,219 --> 01:00:08,940 sin crear ninguna clase 648 01:00:08,940 --> 01:00:10,400 pero ya estaríamos trabajando 649 01:00:10,400 --> 01:00:12,400 con un lenguaje imperativo 650 01:00:12,400 --> 01:00:15,539 sin generar ninguna clase 651 01:00:15,539 --> 01:00:16,219 ni ningún objeto 652 01:00:16,219 --> 01:00:19,539 tendrías que trabajar con la clase main 653 01:00:19,539 --> 01:00:21,699 para ejecutarlo a nivel de aplicación 654 01:00:21,699 --> 01:00:25,500 es independiente de la plataforma 655 01:00:25,500 --> 01:00:26,739 ya lo hemos dicho 656 01:00:26,739 --> 01:00:27,960 el genera un bytecode 657 01:00:27,960 --> 01:00:31,519 y ese bytecoder, que es un punto clash, lo puedes llevar a cualquier ordenador 658 01:00:31,519 --> 01:00:37,280 que tenga la máquina virtual de Java, bien el JDK25 o bien el JRE antiguo 659 01:00:37,280 --> 01:00:41,980 en el que teníamos que ir a donde estaba la máquina virtual y lo va a ejecutar. 660 01:00:42,099 --> 01:00:46,280 O sea que en ese aspecto tenemos que es muy independiente de la plataforma. 661 01:00:47,179 --> 01:00:51,360 En cuanto es muy robusto y seguro, evita accesos peligrosos, 662 01:00:52,360 --> 01:00:53,639 que presentan otros lenguajes. 663 01:00:53,639 --> 01:01:14,880 Además, es un lenguaje en el que no permite punteros, como pasaba con C++, y accesos directos a memoria, que era bastante peligroso el hecho a la hora de programar. Aquí vienen camuflados. Y, por último, bibliotecas y red. Tiene un amplio conjunto de bibliotecas y soporte de comunicaciones TPP. 664 01:01:14,880 --> 01:01:39,039 En la programación ambiental de objetos tenemos que hablar de tres palabras que son fundamentales y que tenemos que entender. Una es la encapsulación, en lo que hace es que en una clase, en lo que hace es que encapsula el comportamiento de esa clase. Todos sus atributos o algunos métodos los deja como privados y encapsula toda esa información que para desde fuera no es necesario. 665 01:01:39,039 --> 01:01:53,239 ¿Eso qué significa? Que cuando alguien llame, por ejemplo, a la clase coche, no va a llamar directamente a sus atributos, color, forma, bueno, las que sean, sino que lo hará a través de sus métodos. 666 01:01:54,559 --> 01:02:08,420 Eso que evita que desde fuera nosotros veamos sus detalles internos. No nos importan los detalles internos, lo que sí importa es que queremos instanciar una clase de coche y queremos hacer una determinada función con ella, pero no nos importan los datos internos de la misma. 667 01:02:08,420 --> 01:02:15,059 Y con ello también, al ocultarlos, podemos evitar el error de modificarlos. 668 01:02:15,679 --> 01:02:18,880 Es una apariencia privada y eso es lo que se llama casualidad. 669 01:02:19,260 --> 01:02:24,579 En cuanto a herencia, que nos permite crear una clase hija a partir de una clase padre. 670 01:02:25,219 --> 01:02:35,860 Ya hemos dicho que en Java no es herencia múltiple, sino que es una única herencia en la que hay una clase solidaria de otra clase. 671 01:02:35,860 --> 01:02:47,599 Entonces esa clase puede aprovecharse de los métodos de la clase padre y de muchas otras formas 672 01:02:47,599 --> 01:02:51,659 Y volvemos al polimorfismo, que esto ya veremos más adelante 673 01:02:51,659 --> 01:02:57,980 Que permite que objetos relacionados se respondan de distintas formas 674 01:02:57,980 --> 01:03:04,099 Lo veremos, y esto tiene que ver mucho con la herencia y lo veremos más adelante 675 01:03:04,099 --> 01:03:12,599 ¿Cómo se ejecuta el código Java? Con el Java C, que es el compilador, genera el bytecode. 676 01:03:12,599 --> 01:03:20,719 Es el bytecode, tiene una extensión .class. El código de inicio, cuando tú creas un programa y lo escribes, te va a generar un .java. 677 01:03:21,039 --> 01:03:24,980 Este .java, con el Java C, lo que no va a generar es un .class. 678 01:03:25,340 --> 01:03:30,719 Y después, a través de la máquina virtual de Java, lo que va a hacer es que estará en cualquier equipo, 679 01:03:30,719 --> 01:03:33,659 que es independiente de la plataforma 680 01:03:33,659 --> 01:03:36,199 incluso del sistema operativo 681 01:03:36,199 --> 01:03:36,940 que ahora 682 01:03:36,940 --> 01:03:40,059 donde tengas la máquina virtual de Java 683 01:03:40,059 --> 01:03:41,320 puedes ejecutar estos puntos 684 01:03:41,320 --> 01:03:44,039 por eso le llaman el WriteOnce 685 01:03:44,039 --> 01:03:45,539 RunEverywhere 686 01:03:45,539 --> 01:03:47,119 que es que es independiente 687 01:03:47,119 --> 01:03:50,219 del sistema 688 01:03:50,219 --> 01:03:51,679 y lo único que importa es que tengas 689 01:03:51,679 --> 01:03:53,159 la máquina virtual de Java 690 01:03:53,159 --> 01:03:55,679 y aquí tenemos 691 01:03:55,679 --> 01:03:57,500 el ejemplo básico 692 01:03:57,500 --> 01:03:59,639 este sería el típico 693 01:03:59,639 --> 01:04:01,920 el holabundo de todos los 694 01:04:01,920 --> 01:04:03,659 lenguajes de programación, pero hecho 695 01:04:03,659 --> 01:04:05,739 en Java. Si veis, esa es una 696 01:04:05,739 --> 01:04:07,960 estructura en la que está definiendo 697 01:04:07,960 --> 01:04:08,420 una clase. 698 01:04:09,360 --> 01:04:11,760 El hecho de poner class nos está indicando 699 01:04:11,760 --> 01:04:13,059 que esta es una clase 700 01:04:13,059 --> 01:04:15,860 que va a ser pública, 701 01:04:16,159 --> 01:04:17,760 o sea que se va a poder acceder a ella 702 01:04:17,760 --> 01:04:20,179 y que además 703 01:04:20,179 --> 01:04:21,780 se pone 704 01:04:21,780 --> 01:04:23,739 primero la 705 01:04:23,739 --> 01:04:25,679 restricción, luego se pone 706 01:04:25,679 --> 01:04:26,780 el nombre 707 01:04:26,780 --> 01:04:29,760 de clase y luego el nombre que va a tener 708 01:04:29,760 --> 01:04:31,760 dicha clase. Esa sería la clase principal 709 01:04:31,760 --> 01:04:33,519 y de donde va a albergar el 710 01:04:33,519 --> 01:04:35,980 publicStaticOdemain, que este es el publicStaticOdemain 711 01:04:35,980 --> 01:04:37,159 es un método estático 712 01:04:37,159 --> 01:04:39,340 por eso viene aquí de static 713 01:04:39,340 --> 01:04:40,860 ya veremos más adelante lo que es 714 01:04:40,860 --> 01:04:43,440 que además incluye un parámetro que es 715 01:04:43,440 --> 01:04:43,719 un 716 01:04:43,719 --> 01:04:47,739 ARCS, que sería una cadena de strings 717 01:04:47,739 --> 01:04:51,260 y que, bueno 718 01:04:51,260 --> 01:04:53,380 siempre que ejecutemos una aplicación 719 01:04:53,380 --> 01:04:55,940 va a llamar a este método main y se ejecutará 720 01:04:55,940 --> 01:04:57,599 lo que haya dentro del método main. 721 01:04:58,159 --> 01:05:00,599 Dentro del método main tenemos la clase system 722 01:05:00,599 --> 01:05:05,360 a través del objeto out y primer n a través de su método 723 01:05:05,360 --> 01:05:09,559 que es lo que hace que imprime una cadena y ya está. 724 01:05:09,719 --> 01:05:10,820 No hace mucho más. 725 01:05:12,989 --> 01:05:14,929 En cuanto al tono básico de desarrollo de Java, 726 01:05:15,349 --> 01:05:17,789 lo hemos visto, tenemos que hablar de tres cosas. 727 01:05:17,989 --> 01:05:20,650 Uno sería el JRE con la máquina virtual de Java, 728 01:05:20,769 --> 01:05:24,010 pero nosotros lo hemos obviado porque tenemos el JDK25 LTS 729 01:05:24,010 --> 01:05:26,409 en donde va a tener también la máquina virtual de Java. 730 01:05:26,409 --> 01:05:31,050 porque el JR anteriormente tenía la máquina virtual de Java 731 01:05:31,050 --> 01:05:34,710 y un entorno para ejecutar el bytecode 732 01:05:34,710 --> 01:05:38,429 y el JDK lo que tenía eran las herramientas para crear y compilar 733 01:05:38,429 --> 01:05:42,250 las aplicaciones de Java, o sea que como si dijéramos 734 01:05:42,250 --> 01:05:46,269 este JDK nos generaba el punto class 735 01:05:46,269 --> 01:05:50,510 y luego aquí tenemos todo el entorno 736 01:05:50,510 --> 01:05:54,570 para ejecutar ese punto class a través de la máquina virtual de Java 737 01:05:54,570 --> 01:05:56,650 con el JR. Ahora todo eso 738 01:05:56,650 --> 01:05:58,389 pues lo tenemos dentro de ese JDK. 739 01:05:59,190 --> 01:06:00,469 Y por último tenemos la API de Java 740 01:06:00,469 --> 01:06:02,530 que es un conjunto de clases y bibliotecas que nos van 741 01:06:02,530 --> 01:06:04,849 a proporcionar muchas funcionalidades. 742 01:06:05,010 --> 01:06:05,929 Son un montón de 743 01:06:05,929 --> 01:06:07,690 es inabarcable 744 01:06:07,690 --> 01:06:10,329 de la cantidad de clases y bibliotecas que hay 745 01:06:10,329 --> 01:06:12,989 en el que con distintos tipos de 746 01:06:12,989 --> 01:06:13,630 de usos. 747 01:06:15,250 --> 01:06:16,210 En todo esto 748 01:06:16,210 --> 01:06:18,690 pues lo podemos hacer a través 749 01:06:18,690 --> 01:06:19,650 de 750 01:06:19,650 --> 01:06:22,690 de CMD pero también lo podemos 751 01:06:22,690 --> 01:06:24,170 hacer con un entorno de desarrollo. 752 01:06:24,170 --> 01:06:40,969 Dentro de desarrollo, ¿qué es? Es una especie de aplicación en el que va a incluir todas esas habilidades posibles para que facilitarnos el hecho de la programación, depuración, compilación, etc. 753 01:06:41,989 --> 01:06:47,789 Y, bueno, ¿qué nos permite? Edición de código, compilación, evolución, depuración, gestión de proyectos, etc. 754 01:06:47,789 --> 01:06:58,489 Aquí tenemos un montón y dentro de ellos tenemos que, a mí también Eclipse me gusta mucho, pero venía en el temario NetBeans, pues lo vamos a hacer con NetBeans. 755 01:06:58,750 --> 01:07:05,909 Que veáis que aquí hay más Eclipse que NetBeans y Eclipse. 756 01:07:08,530 --> 01:07:11,329 Luego tenemos NetBeans y el primer proyecto. 757 01:07:11,329 --> 01:07:16,349 Bueno, si tuve aquí instalado NetBeans, pues veríais cómo creo un proyecto y cómo lo ejecuto. 758 01:07:16,349 --> 01:07:20,630 pero bueno, espero que para la próxima ya lo tenga instalado y lo vemos. 759 01:07:22,070 --> 01:07:26,510 El mapa final de la unidad, pues básicamente ¿qué teníamos? 760 01:07:26,710 --> 01:07:31,170 Hemos dicho, tenemos un problema, queremos resolver ese problema 761 01:07:31,170 --> 01:07:34,469 y lo primero que vamos a hacer es analizar dicho problema 762 01:07:34,469 --> 01:07:38,730 y para qué, para obtener un algoritmo que nos resuelva dicho problema. 763 01:07:39,389 --> 01:07:43,030 Una vez que ya tenemos diseñado el algoritmo, lo pasamos a código fuente. 764 01:07:43,030 --> 01:07:47,409 un error muy común es ponerse a programar 765 01:07:47,409 --> 01:07:50,309 sin haber establecido todo esto 766 01:07:50,309 --> 01:07:53,369 entonces ahí es cuando surgen los problemas 767 01:07:53,369 --> 01:07:56,809 aunque la idea la tengas muy clara 768 01:07:56,809 --> 01:08:02,889 es importante el análisis y la generación del algoritmo 769 01:08:02,889 --> 01:08:04,250 aunque sea en papel 770 01:08:04,250 --> 01:08:11,610 y esto que conlleva luego la traducción, la ejecución, las pruebas y el mantenimiento 771 01:08:11,610 --> 01:08:25,489 Y hasta aquí, esto sería un resumen, un resumido de la unidad, que la unidad es algo extensa, pero bueno, básicamente lo que he querido resumir de lo que ha aparecido. 772 01:08:25,489 --> 01:08:44,270 A ver, realmente, aunque yo hago un resumen, como lo hago, no quiere decir que para mí esto es lo más importante, pero siempre que os quede claro que cuando os hago un resumen, lo que aparece en la unidad entra todo. 773 01:08:44,270 --> 01:08:46,069 o sea, la primera palabra 774 01:08:46,069 --> 01:08:46,930 la última palabra 775 01:08:46,930 --> 01:08:49,810 entonces, pero el resumen lo hago 776 01:08:49,810 --> 01:08:51,609 para que lo entendáis muchísimo mejor 777 01:08:51,609 --> 01:08:53,890 pero que no solo fiaros en el resumen 778 01:08:53,890 --> 01:08:55,750 porque no es así, o sea, todo entra 779 01:08:55,750 --> 01:08:59,050 y no sé 780 01:08:59,050 --> 01:09:02,310 alguna duda? 781 01:09:02,829 --> 01:09:03,029 algo? 782 01:09:08,800 --> 01:09:11,359 sí, el resumen lo abro 783 01:09:11,359 --> 01:09:12,479 ahora lo abro, lo pongo 784 01:09:12,479 --> 01:09:13,579 para que lo veáis 785 01:09:13,579 --> 01:09:16,579 si lo tenemos instalado, lo tengo de la vez 786 01:09:16,579 --> 01:09:18,439 no es necesario desinstalarlo 787 01:09:18,439 --> 01:09:20,680 no se ve, solo vemos Chrome 788 01:09:20,680 --> 01:09:22,960 ¿no veis nada de lo que he contado? 789 01:09:24,079 --> 01:09:25,020 No, sí, Francisco 790 01:09:25,020 --> 01:09:26,979 esto era cuando estabas con la consola 791 01:09:26,979 --> 01:09:28,340 viendo la versión de Java y eso 792 01:09:28,340 --> 01:09:31,000 Ah, vale, creo que no lo he sacado 793 01:09:31,000 --> 01:09:32,720 vale, vale, vale, porque he puesto 794 01:09:32,720 --> 01:09:34,560 de pantalla, no de ventana, creo, o no sé 795 01:09:34,560 --> 01:09:36,039 bueno, no lo sé, vale, vale 796 01:09:36,039 --> 01:09:41,300 mucha información y demasiado rápido, la verdad, a ver 797 01:09:41,300 --> 01:09:43,479 luego, como 798 01:09:43,479 --> 01:09:43,979 iremos 799 01:09:43,979 --> 01:09:46,460 como tenemos 800 01:09:46,460 --> 01:09:47,920 varias horas 801 01:09:47,920 --> 01:10:20,020 A lo largo de la semana iremos viéndolo. A ver, el tema, eso es un resumen a grosso modo del tema. A ver, yo lo que se trata es que os vayáis leyendo el tema. Yo os aconsejaría que lo leyerais un par de veces y busquéis, y vengáis a estas presentaciones, a estas videoconferencias ya con dudas, que podamos sacar algo útil y que podamos resolverlas. 802 01:10:21,020 --> 01:10:40,920 El tema es extenso, pero si lo vemos, a ver, todo esto es lo que he hablado de cuáles son los pasos para la diferencia entre un algoritmo y un programa. 803 01:10:40,920 --> 01:10:45,020 aunque es básicamente lo que he puesto 804 01:10:45,020 --> 01:10:47,840 en el lenguaje de programación, veis como se define 805 01:10:47,840 --> 01:10:53,020 un algoritmo, como diseñamos un algoritmo 806 01:10:53,020 --> 01:10:56,380 lo he hablado también, hablamos de flujos, de código, de decisión 807 01:10:56,380 --> 01:11:00,199 luego se mete con los paradigmas de programación 808 01:11:00,199 --> 01:11:03,819 saber que hay declarativo e imperativo y saber 809 01:11:03,819 --> 01:11:07,640 que diferencia hay entre declarativo e imperativo 810 01:11:07,640 --> 01:11:31,640 Y luego, con cada uno de los paradigmas, como son el orientado a objetos, como lo hablaba anteriormente, que sepáis que un lenguaje de programación que pueda tener más de un paradigma, que Java qué paradigmas tiene, cosas que… 811 01:11:31,640 --> 01:11:45,800 Y luego, fases de la programación. Estas serían las fases de la programación, la resolución de un problema, la implementación y la explotación de mantenimiento. Todo igual. 812 01:11:46,880 --> 01:11:58,960 ¿Cómo resolvemos un problema? Lo hemos visto. ¿Qué haces primero? Haces un análisis del problema. Vamos a ver, entender el problema. Si no entiendes el problema, ¿cómo querrás resolverlo? Imposible. 813 01:11:58,960 --> 01:12:00,899 entonces tendréis que hacer un análisis del mismo 814 01:12:00,899 --> 01:12:02,619 y luego 815 01:12:02,619 --> 01:12:04,300 una vez que ya tienes claro 816 01:12:04,300 --> 01:12:06,359 el problema que tienes 817 01:12:06,359 --> 01:12:08,319 lo diseñas 818 01:12:08,319 --> 01:12:10,239 haces un diseño del mismo para resolver 819 01:12:10,239 --> 01:12:12,579 el problema, o sea, haces un algoritmo 820 01:12:12,579 --> 01:12:14,479 una vez que está hecho 821 01:12:14,479 --> 01:12:16,859 el algoritmo, pues lo implementas 822 01:12:16,859 --> 01:12:18,460 y aquí entra toda la parte 823 01:12:18,460 --> 01:12:20,680 de codificación, de compilador 824 01:12:20,680 --> 01:12:22,420 de compilador, intérprete 825 01:12:22,420 --> 01:12:24,220 cuál es la diferencia entre uno, otro y otro 826 01:12:24,220 --> 01:12:25,300 ¿veis? todo esto 827 01:12:25,300 --> 01:12:27,619 una vez que 828 01:12:27,619 --> 01:12:35,800 Y una vez que tenemos ya lo que hemos codificado y lo hemos ejecutado, pues se me han acordado las pruebas y la explotación. 829 01:12:36,640 --> 01:12:43,859 La explotación es cuando ya se pone en práctica, alguien lo usa, un cliente lo usa y va viendo si hay errores, etc. 830 01:12:44,859 --> 01:12:47,100 Pero aquí se mete con el ciclo de vida del software. 831 01:12:47,500 --> 01:12:55,619 Y en ese ciclo de vida se está hablando de cada uno de sus pasos que hemos visto anteriormente. 832 01:12:55,619 --> 01:12:59,500 análisis, diseño, codificación, pruebas, instalación y mantenimiento. 833 01:12:59,779 --> 01:13:03,239 Todo siempre es igual. Aquí ya se mete en lenguaje de programación 834 01:13:03,239 --> 01:13:06,560 para que hagáis una diferencia entre 835 01:13:06,560 --> 01:13:11,520 los tipos de lenguaje de programación, de cómo actúa un compilador 836 01:13:11,520 --> 01:13:15,640 a nivel léxico, sintáctico y semántico. Lo que haces es interpretar 837 01:13:15,640 --> 01:13:18,760 eso que tú le has escrito y ver si realmente está bien 838 01:13:18,760 --> 01:13:23,979 antes de pasarlo a código máquina. ¿Qué es el lenguaje de código máquina? 839 01:13:23,979 --> 01:13:40,500 Aquí lo habla. Fijaos, esta es una operación del lenguaje de máquina para sumar. Imaginaos un programa con un montón de ceros y unos. Eso es inviable. No hay cerebro que pueda programar así. Por eso surgieron los lenguajes de alto nivel. 840 01:13:40,500 --> 01:13:48,100 El lenguaje en sablador, que facilita un poquito la programación a través de estas reglas 841 01:13:48,100 --> 01:13:53,720 neumatécnicas o palabras que se crearon para poder ser un poquito más sencillo, y luego 842 01:13:53,720 --> 01:13:58,880 ya pasa a los de alto nivel, como los lenguajes compilados, como puede ser C, C++, estamos 843 01:13:58,880 --> 01:14:02,739 hablando de un lenguaje en el que aquí tenemos la fase de cómo lo compila. 844 01:14:02,739 --> 01:14:07,420 Después pasa a los lenguajes interpretados 845 01:14:07,420 --> 01:14:09,460 En los lenguajes interpretados 846 01:14:09,460 --> 01:14:11,600 Pues cojo PHP, Python 847 01:14:11,600 --> 01:14:13,500 Son lenguajes en el que va leyendo línea a línea 848 01:14:13,500 --> 01:14:15,060 No lo hace del todo 849 01:14:15,060 --> 01:14:16,279 O sea, no coge todo el programa 850 01:14:16,279 --> 01:14:18,180 Imaginaos un programa de 5000 líneas 851 01:14:18,180 --> 01:14:20,640 En C++ lo que hace es que 852 01:14:20,640 --> 01:14:22,239 Lo compila, lo genera 853 01:14:22,239 --> 01:14:24,659 Y lo ejecuta en código máquina 854 01:14:24,659 --> 01:14:25,979 Ese sería el 855 01:14:25,979 --> 01:14:29,159 Claro, lógicamente es algo súper rápido 856 01:14:29,159 --> 01:14:31,420 Por eso se utilizan aplicaciones de tiempo real 857 01:14:31,420 --> 01:14:32,619 Porque necesitamos rapidez 858 01:14:32,619 --> 01:14:43,340 En cambio, los lenguajes interpretados, como el PHP, por ejemplo, a nivel de un servidor, son lenguajes en los que va leyendo y traduciendo línea a línea. 859 01:14:43,479 --> 01:14:46,600 Son lenguajes más lentos, pero sus formas de ser ejecutados son así. 860 01:14:49,220 --> 01:14:52,920 Y luego ya nos metemos en Java. En Java nos vamos a hartar de ver Java. 861 01:14:54,779 --> 01:15:00,640 Java es un lenguaje ya mucho imperativo y además también es imperativo y orientado a objetos. 862 01:15:00,640 --> 01:15:10,739 Eso básicamente es lo que genera un código intermedio, que es el bytecode, y que necesitamos una máquina virtual para poder ejecutar ese bytecode, o sea, esos ficheros puntopilas. 863 01:15:11,659 --> 01:15:25,600 Un poco de la vida, ya lo leéis, la vida previa de la historia sobre Java y sobre la programación adentrada de objetos, qué significa la programación adentrada de objetos y cómo se hace. 864 01:15:25,600 --> 01:15:34,699 Lo veremos a lo largo de todo el año, cuando nos metamos en cómo crear clases, cómo crear objetos, 865 01:15:35,140 --> 01:15:37,579 veremos y entenderemos lo que es la programación orientada a objetos. 866 01:15:38,239 --> 01:15:40,779 Esa es la parte más difícil a la hora de programar. 867 01:15:43,180 --> 01:15:47,279 Independencia de la plataforma, lo hemos dicho, por el bytecode, seguridad y simplicidad, 868 01:15:47,640 --> 01:15:52,420 dos características muy importantes del lenguaje Java. 869 01:15:52,420 --> 01:15:55,520 Java y los bytecodes 870 01:15:55,520 --> 01:15:57,420 como establece 871 01:15:57,420 --> 01:15:58,100 como se genera 872 01:15:58,100 --> 01:16:00,920 aquí tenéis un esquema 873 01:16:00,920 --> 01:16:03,279 de como 874 01:16:03,279 --> 01:16:05,479 se va ejecutando y como se va generando 875 01:16:05,479 --> 01:16:06,300 los bytecodes 876 01:16:06,300 --> 01:16:08,239 lo que explicaba anteriormente 877 01:16:08,239 --> 01:16:12,470 y luego ya pasamos a los programas de Java 878 01:16:12,470 --> 01:16:14,069 la estructura de un programa de Java 879 01:16:14,069 --> 01:16:15,090 que lo tenemos aquí 880 01:16:15,090 --> 01:16:18,909 la estructura general de un programa de Java 881 01:16:18,909 --> 01:16:19,609 sería esta 882 01:16:19,609 --> 01:16:22,109 por un lado tenemos 883 01:16:22,109 --> 01:16:23,130 una clase 884 01:16:23,130 --> 01:16:25,670 en el que tendrá un nombre 885 01:16:25,670 --> 01:16:26,510 que es este 886 01:16:26,510 --> 01:16:29,569 y tendrá un nombre y la palabra 887 01:16:29,569 --> 01:16:30,430 CLASSIC 888 01:16:30,430 --> 01:16:33,810 este es el identificador 889 01:16:33,810 --> 01:16:35,409 de acceso en el que nos va a permitir 890 01:16:35,409 --> 01:16:37,550 si esta clase es 891 01:16:37,550 --> 01:16:38,989 pública, privada o protect 892 01:16:38,989 --> 01:16:40,149 que ya lo veremos lo que es 893 01:16:40,149 --> 01:16:43,609 si podemos acceder a esta clase desde fuera 894 01:16:43,609 --> 01:16:43,789 ¿vale? 895 01:16:45,289 --> 01:16:47,350 en el ZAR ser pública podemos acceder a esta clase 896 01:16:47,350 --> 01:16:49,270 y estos serían comentarios 897 01:16:49,270 --> 01:16:51,310 se ponen con dos barras inclinadas 898 01:16:51,310 --> 01:16:55,229 salía en comentarios, está diciendo definición de atributos de la clase, definición de métodos 899 01:16:55,229 --> 01:16:58,529 y definición de otras clases de usuario. Aquí podríamos ir metiendo cosas. 900 01:16:59,409 --> 01:17:03,250 Esto sería declaración del método main porque no ha definido ningún atributo, no ha definido 901 01:17:03,250 --> 01:17:06,869 ningún método y no ha definido ninguna clase de usuario. Solo ha definido un método 902 01:17:06,869 --> 01:17:11,270 que le llama main. Y este método cada vez que en una aplicación, cada vez que se ejecuta 903 01:17:11,270 --> 01:17:14,550 va a llamarse a ese método y va a ejecutar lo que tenga en su interior. 904 01:17:14,989 --> 01:17:18,529 Este método main siempre se escribe igual. Es Pablo que este tipo de main 905 01:17:18,529 --> 01:17:21,010 con un parámetro que sería ARCS 906 01:17:21,010 --> 01:17:23,069 que es un array de cadenas 907 01:17:23,069 --> 01:17:25,630 aquí se establecerán 908 01:17:25,630 --> 01:17:27,310 declaraciones de variables del método 909 01:17:27,310 --> 01:17:28,869 instrucciones que se quieren insertar aquí 910 01:17:28,869 --> 01:17:31,880 etcétera 911 01:17:31,880 --> 01:17:34,399 la próxima clase que tengamos 912 01:17:34,399 --> 01:17:36,140 haremos nuestro primer programa Java 913 01:17:36,140 --> 01:17:38,739 y lo ejecutaremos 914 01:17:38,739 --> 01:17:39,939 a ver si tengo instalado 915 01:17:39,939 --> 01:17:42,539 la NetBeans 916 01:17:42,539 --> 01:17:44,500 y lo ejecutamos 917 01:17:44,500 --> 01:17:48,829 ¿qué más? 918 01:17:49,789 --> 01:17:51,449 el entorno básico de desarrollo de Java 919 01:17:51,449 --> 01:17:54,750 habla del JDK, del JRE 920 01:17:54,750 --> 01:17:58,189 y aquí he introducido 921 01:17:58,189 --> 01:18:00,390 el Tmuring, lo he actualizado 922 01:18:00,390 --> 01:18:02,170 que es lo que vais a instalar 923 01:18:02,170 --> 01:18:03,890 y que no tengo ya instalado 924 01:18:03,890 --> 01:18:05,489 y 925 01:18:05,489 --> 01:18:07,390 la API de Java 926 01:18:07,390 --> 01:18:09,789 ya he dicho que la API de Java pues es 927 01:18:09,789 --> 01:18:11,550 muy extensa 928 01:18:11,550 --> 01:18:13,590 esta sería la información de la API de Java 929 01:18:13,590 --> 01:18:15,930 si la abrimos, la veis 930 01:18:15,930 --> 01:18:20,390 veis todo tipo de 931 01:18:20,390 --> 01:18:20,970 clases 932 01:18:20,970 --> 01:18:23,850 con distintos tipos de utilidades 933 01:18:23,850 --> 01:18:24,149 ¿vale? 934 01:18:25,369 --> 01:18:27,550 veis, es muy muy muy extensa 935 01:18:27,550 --> 01:18:28,449 la API 936 01:18:28,449 --> 01:18:31,270 estos serían los módulos 937 01:18:31,270 --> 01:18:33,430 y esto puedes ir metiendo dentro de ellos 938 01:18:33,430 --> 01:18:35,609 y te va dando información, qué es lo que hace 939 01:18:35,609 --> 01:18:37,029 de qué clase deriva, etc. 940 01:18:37,470 --> 01:18:37,710 ¿vale? 941 01:18:42,500 --> 01:18:44,920 esto es para afinar la configuración, que lo veis que lo vais a hacer 942 01:18:44,920 --> 01:18:45,939 con el FAT, etc. 943 01:18:50,659 --> 01:18:53,060 codificación, compilación y evolución de aplicaciones 944 01:18:53,060 --> 01:18:53,340 ¿vale? 945 01:18:54,460 --> 01:18:55,460 no voy a seguir 946 01:18:55,460 --> 01:18:56,119 porque bueno, tenemos 947 01:18:56,119 --> 01:18:59,279 muchas clases para ver todo esto 948 01:18:59,279 --> 01:19:01,380 hasta que termine el día 21 949 01:19:01,380 --> 01:19:02,380 esta unidad 950 01:19:02,380 --> 01:19:04,479 entonces no voy a seguir con el 951 01:19:04,479 --> 01:19:06,539 pero si veis 952 01:19:06,539 --> 01:19:08,600 básicamente es lo que he metido 953 01:19:08,600 --> 01:19:10,699 en la presentación 954 01:19:10,699 --> 01:19:12,920 el próximo día si queréis sigo con todo esto 955 01:19:12,920 --> 01:19:13,100 ¿vale? 956 01:19:18,529 --> 01:19:19,569 ¿alguna duda más? 957 01:19:20,029 --> 01:19:20,289 algo 958 01:19:20,289 --> 01:19:22,729 si es conveniente 959 01:19:22,729 --> 01:19:24,489 si eso se os lo pido 960 01:19:24,489 --> 01:19:27,590 que os lo leáis antes de las clases 961 01:19:27,590 --> 01:19:28,829 vengáis con ello leído 962 01:19:28,829 --> 01:19:42,590 y podemos preguntar dudas, podemos ver cosas del temario, cosas que nos queden claras para que sean clases muy útiles. 963 01:19:42,989 --> 01:19:49,350 Luego ya más adelante, cuando ya tengamos las herramientas aprendidas para poder empezar a hacer programas, 964 01:19:49,430 --> 01:19:56,390 pues empezaremos a hacer programas, pues ya practicaremos, pero por ahora esto es muy teórico. 965 01:19:56,390 --> 01:20:20,930 Entonces, es o leérselo o no leérselo. Esto es virtual, es algo que en mi trabajo lo tenéis que poner vosotros. Entonces, sí sería conveniente que lo leyeras y que vinierais con ello leído, por lo menos en parte, y surgieran las dudas, me dijerais qué dudas tenéis, en qué puedo hacer más hincapié, etc. 966 01:20:20,930 --> 01:20:40,319 Vale, ya he dicho que la máquina virtual de Java es independiente de la plataforma, 967 01:20:40,319 --> 01:20:47,319 o sea que se puede ejecutar en cualquier sistema operativo y en cualquier equipo. 968 01:20:47,319 --> 01:20:55,439 Bueno, decirme vosotros alguna duda. 969 01:20:55,439 --> 01:21:46,149 A ver, hasta que no nos metamos en harina, que será en el tema 2, en el que nos meteremos 970 01:21:46,149 --> 01:21:52,689 en los operadores, nos meteremos en lo que es una variable, etcétera, no veremos programas, 971 01:21:52,689 --> 01:21:57,369 pero sí en la siguiente clase me puedo meter y podemos hacer un programa sencillito para 972 01:21:57,369 --> 01:22:37,250 que vayáis adelantando algunas cosas, ¿vale? A ver, el examen final todavía no sé cómo 973 01:22:37,250 --> 01:22:45,590 lo voy a poner, pero a ver, habrá una parte tipo test que va a ser un 80% y un 20% que 974 01:22:45,590 --> 01:22:50,789 será el tipo práctico, que será pues realizar algún ejercicio, ya veré cómo lo hago, 975 01:22:50,890 --> 01:22:57,590 ¿vale? ¿Qué es lo que me importa a mí? ¿Qué es lo que me importa a mí? Lo que me 976 01:22:57,590 --> 01:23:24,750 Lo que importa es que, más que la teoría, que toda esta parte de este tema es pura teoría para que tengáis un background de lo que va a ser Java, a mí lo que me interesa es que acabéis sabiendo programar en Java y que sepáis acceder a una base de datos, programando en Java, que sepáis hacer, como ha dicho el compañero, hacer un programa como una ecuación de seguridad en Java, que podáis hacer varias clases, clases que hereden, todo eso. 977 01:23:24,750 --> 01:23:34,989 que estacéis objetos, que sepáis que es una pila, una cola, pues todo eso, pues claro, aparecerá en el examen, más que la teoría, ¿vale? 978 01:23:37,060 --> 01:24:00,119 Sí, sí, la he grabado, ¿vale? No sé si queda todo claro, pero vamos a ver, a lo largo de todo el curso no voy a dar a tiempo a todo. 979 01:24:00,119 --> 01:24:18,579 Eso sí, vamos a ir un poquito... A ver, esta unidad la iba a acercar muy corta, pero como ha habido distintos grados de matribulación, he tenido que alargarla un poquito para que a todo el mundo le llegue y puedan realizar la tarea. 980 01:24:18,579 --> 01:24:25,979 y por eso le he dejado ese, pero quizás es una unidad que a lo mejor no hubiera bastado pues por mucho, 10 días, ¿vale? 981 01:24:30,640 --> 01:24:40,460 Pues, Pedro, a ver si este año la cogemos desde el principio y adelante. 982 01:24:46,920 --> 01:24:54,960 Sí, cuando empecemos a practicar, cuando empecemos a hacer ejercicios, cuando empecemos a programar, a meternos en harina, ahí es cuando empezarán las dudas, ¿vale? 983 01:24:54,960 --> 01:25:10,399 Pero intentaremos que estas clases, que ahora las tenéis, pues las utilicemos para hacer ejercicios, ejercicios, ejercicios, ejercicios, para que esa duda se disiple, ¿vale? 984 01:25:10,399 --> 01:25:17,239 ¿Cómo sabemos qué temas vas a tratar? 985 01:25:17,739 --> 01:25:18,979 Mira, he puesto aquí 986 01:25:18,979 --> 01:25:23,859 los temas que voy a tratar 987 01:25:23,859 --> 01:25:26,300 y que es, mira, toda esta parte 988 01:25:26,300 --> 01:25:28,500 introducción a programación, 989 01:25:28,640 --> 01:25:30,359 creación de primer programa y uso 990 01:25:30,359 --> 01:25:32,140 de estructura de control es como si fuera un curso 991 01:25:32,140 --> 01:25:33,720 de fundamentos de programación. 992 01:25:34,579 --> 01:25:36,079 ¿Por qué? Porque vamos a 993 01:25:36,079 --> 01:25:37,520 realmente aquí 994 01:25:37,520 --> 01:25:40,199 lo que vamos a saber hacer es, pues como he dicho 995 01:25:40,199 --> 01:25:42,079 compañero, hacer un programa que nos calcule 996 01:25:42,079 --> 01:25:43,880 una ecuación de segundo grado, por ejemplo. 997 01:25:44,199 --> 01:25:46,279 O hacer un programa que nos genera 998 01:25:46,279 --> 01:25:47,239 una tabla de multiplicar 999 01:25:47,239 --> 01:25:49,800 del 1 al 9, cosas así 1000 01:25:49,800 --> 01:25:52,079 o que nos resuelva un problema 1001 01:25:52,079 --> 01:25:53,699 pues eso es lo que vamos a aprender 1002 01:25:53,699 --> 01:25:54,640 con solo esto 1003 01:25:54,640 --> 01:25:57,619 ¿qué os podéis ir mirando? 1004 01:25:57,819 --> 01:25:59,880 yo ya de por sí, y os lo voy a 1005 01:25:59,880 --> 01:26:01,800 liberar ahora mismo, aquí 1006 01:26:01,800 --> 01:26:03,899 y lo vemos el 1007 01:26:03,899 --> 01:26:06,000 siguiente día, tengo un resumen básico 1008 01:26:06,000 --> 01:26:07,279 de Java, ¿vale? para que 1009 01:26:07,279 --> 01:26:16,560 el que quiera adelantarse, pues se puede ir mirándolo 1010 01:26:16,560 --> 01:26:17,939 ¿vale? una vez muy básico 1011 01:26:17,939 --> 01:26:20,579 entonces os lo muestro 1012 01:26:20,579 --> 01:26:31,409 y también tenéis un resumen de la unidad, ¿vale? 1013 01:26:31,609 --> 01:26:34,329 Y el de la presentación del módulo es el de la planta, ¿vale? 1014 01:26:34,869 --> 01:26:39,130 Pero aquí tengo un resumen básico de Java, a ver, es muy básico, 1015 01:26:39,970 --> 01:26:43,510 pero para que podamos empezar, que lo veremos el próximo día, 1016 01:26:43,510 --> 01:26:45,989 para poder empezar a hacer los primeros programas, ¿vale? 1017 01:26:46,229 --> 01:26:52,670 Todo esto lo estoy adelantando porque realmente esto está en la unidad 2, ¿vale? 1018 01:26:52,670 --> 01:26:55,149 está en la unidad 2, pero hasta que 1019 01:26:55,149 --> 01:26:57,130 lleguemos a la unidad 2, pues por menos 1020 01:26:57,130 --> 01:26:58,210 que vayamos adelantando 1021 01:26:58,210 --> 01:27:01,109 y luego, también hay 1022 01:27:01,109 --> 01:27:02,789 cosas de la unidad 3 1023 01:27:02,789 --> 01:27:05,149 ese resumen que le he añadido 1024 01:27:05,149 --> 01:27:06,850 es para estas tres 1025 01:27:06,850 --> 01:27:08,810 unidades, que lo vamos a ir viendo 1026 01:27:08,810 --> 01:27:10,949 de manera paloatina, después podemos ir empezando 1027 01:27:10,949 --> 01:27:11,970 a hacer algún programa, ¿vale? 1028 01:27:13,390 --> 01:27:15,130 Otra historia es ya cuando nos metamos 1029 01:27:15,130 --> 01:27:17,130 aquí, ¿vale? que ya estamos hablando de 1030 01:27:17,130 --> 01:27:19,050 esto sería el fundamento de programación 1031 01:27:19,050 --> 01:27:21,130 que puede servir para cualquier lenguaje de programación 1032 01:27:21,130 --> 01:27:23,869 y esto 1033 01:27:23,869 --> 01:27:26,369 ya empezaríamos con lo que es 1034 01:27:26,369 --> 01:27:27,369 programación orientadora 1035 01:27:27,369 --> 01:27:38,569 vale, pues 1036 01:27:38,569 --> 01:27:41,329 nos vemos el, si queréis ya el jueves 1037 01:27:41,329 --> 01:27:42,609 ese jueves, sí 1038 01:27:42,609 --> 01:27:44,890 el jueves y podemos hacer un primer programa 1039 01:27:44,890 --> 01:27:47,109 y quiero 1040 01:27:47,109 --> 01:27:48,810 que a ver si podéis leer en la unidad 1041 01:27:48,810 --> 01:27:50,770 y que cualquier duda que tengáis 1042 01:27:50,770 --> 01:27:52,250 pues me lo digáis y 1043 01:27:52,250 --> 01:27:54,789 la resolvemos, vale, leeroslo 1044 01:27:54,789 --> 01:27:55,750 por lo menos, vale 1045 01:27:55,750 --> 01:28:01,359 y el que quiera avanzar y quiera mirar ese resumen 1046 01:28:01,359 --> 01:28:03,239 de Java que he metido ahí, que es muy básico 1047 01:28:03,239 --> 01:28:04,600 pues lo podéis mirar también 1048 01:28:04,600 --> 01:28:07,260 y podemos hacer algún programa 1049 01:28:07,260 --> 01:28:09,479 e ir avanzando cosas de la unidad 2 1050 01:28:09,479 --> 01:28:10,420 y de la unidad 3 1051 01:28:10,420 --> 01:28:15,789 pues nada 1052 01:28:15,789 --> 01:28:18,449 nos vemos, leeroslo 1053 01:28:18,449 --> 01:28:20,390 miradlo de la instalación, a ver si tenéis 1054 01:28:20,390 --> 01:28:22,329 dudas y el jueves 1055 01:28:22,329 --> 01:28:24,130 nos vemos y resolvemos dudas 1056 01:28:24,130 --> 01:28:25,310 pero leeroslo