-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathITT-DAT.tex
642 lines (495 loc) · 30.7 KB
/
ITT-DAT.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
%%
%% $Revision: $"
%%
\documentclass[a4paper,12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{geometry}
\usepackage[pdfborder=0 0 0]{hyperref}
\usepackage{url}
\title{Desarrollo de Aplicaciones Telemáticas \\
Grado en Ingeniería en Tecnologías de Telecomunicación \\
Programa del curso 2016/2017}
\author{Jesús M. González Barahona, Gregorio Robles Martínez \\
GSyC, Universidad Rey Juan Carlos}
%\date{}
\begin{document}
\maketitle
\tableofcontents
\newpage
%%-------------------------------------------------------------------
%%-------------------------------------------------------------------
%%-------------------------------------------------------------------
%%-------------------------------------------------------------------
\chapter{Características de la asignatura}
%%-------------------------------------------------------------------
%%-------------------------------------------------------------------
%%-------------------------------------------------------------------
\section{Datos generales}
\begin{tabular}{ll}
\textbf{Título:} & Desarrollo de Aplicaciones Telemáticas \\
\textbf{Titulación:} & Grado en Ing. en Tecnologías de Telecomunicación \\
\textbf{Cuatrimestre:} & Cuarto curso, segundo cuatrimestre \\
\textbf{Créditos:} & 6 (3 teóricos, 3 prácticos) \\
\textbf{Horas lectivas:} & 4 horas semanales \\
\textbf{Horario:} & lunes, 13:00--15:00 \\
& martes, 13:00--15:00 \\
\textbf{Profesores:}
& Jesús M. González Barahona \\
& \hspace{1cm}jgb @ gsyc.es \\
& \hspace{1cm}Despacho 101, Departamental III\\
& Gregorio Robles Martínez\\
& \hspace{1cm}grex @ gsyc.es \\
& \hspace{1cm}Despacho 110, Departamental III\\
\textbf{Sedes telemáticas:} & \url{http://aulavirtual.urjc.es/} \\
& \url{http://cursosweb.github.io} \\
\textbf{Aulas:} & Laboratorio 209, Edif. Laboratorios III \\
& Aula 044, Edif. Departamental I (sólo presentación)\\
\end{tabular}
\newpage
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
\section{Objetivos}
En esta asignatura se pretende que el alumno obtenga conocimientos detallados sobre los servicios y aplicaciones comunes en las redes de ordenadores, y en particular en Internet. Se pretende especialmente que conozcan las tecnologías básicas que los hacen posibles.
\section{Metodología}
La asignatura tiene un enfoque eminentemente práctico. Por ello se realizará en la medido de lo posible en el laboratorio, y las prácticas realizadas (incluyendo especialmente la práctica final) tendrán gran importancia en la evaluación de la asignatura. Los conocimientos teóricos necesarios se intercalarán con los prácticos, en gran media mediante metologías apoyadas en la resulución de problemas. En las clases teóricas se utilizan, en algunos casos, transparencias que sirven de guión. En todos los casos se recomendarán referencias (usualmente documentos disponibles en Internet) para profundizar conocimientos, y complementarias de los detalles necesarios para la resolución de los problemas prácticos. En el desarrollo diario, las sesiones docentes incluirán habitualmente tanto aspectos teóricos como prácticos.
Se usa un sistema de apoyo telemático a la docencia (aula virtual de la URJC) para realizar actividades complementarias a las presenciales, y para organizar parte de la documentación ofrecida a los alumnos. La mayoría de los contenidos utilizados en la asignatura están disponibles o enlazados desde el sitio web CursosWeb. Asimismo, se utiliza el servicio GitHub como repositorio, tanto de los materiales de la asignatura, como para entregar las prácticas por parte de los alumnos.
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
%%---------------------------------------------------------------------------
\section{Evaluación}
\textbf{Parámetros generales:}
\begin{itemize}
\item Microprácticas diarias: 0 a 1
\begin{itemize}
\item Entrega en GitHub o en foro del aula virtual
\item Evaluación contínua
\end{itemize}
\item Miniprácticas preparatorias: 0 a 2
\begin{itemize}
\item Evaluación: funcionamiento
\item Consideración especial de las extensiones
\end{itemize}
\item Práctica final (obligatorio): 0 a 5.
\begin{itemize}
\item Práctica básica: 0 a 2
\item Opciones y mejoras: 0 a 3
\item Evaluación: funcionamiento e implementación
\item Entrega telemática de materiales solicitados
\item Puede haber presentación presencial
\end{itemize}
\item Teoría (obligatorio): 0 a 4.
\begin{itemize}
\item Evaluación: prueba escrita
\end{itemize}
\item Nota final: Suma de notas, moderada por la interpretación del profesor
\item Mínimo para aprobar:
\begin{itemize}
\item aprobado en teoría (2.5) y práctica final (1), y
\item 5 puntos de nota final
\end{itemize}
\end{itemize}
\textbf{Consideraciones sobre la práctica final:}
\begin{itemize}
\item posibilidad de examen presencial para práctica final
\item tiene que funcionar en el laboratorio
\item enunciado mínimo obligatorio supone 1, se llega a 2 sólo con calidad y cuidado en los detalles
\item realización individual de la práctica
\item las opciones y mejoras práctica final permiten subir la nota mucho
\end{itemize}
\textbf{Evaluación extraordinaria:}
\begin{itemize}
\item prueba escrita (si no se aprobó la ordinaria)
\item nueva práctica final (si no se aprobó la ordinaria)
\end{itemize}
%%---------------------------------------------------------------------
%%---------------------------------------------------------------------
%%---------------------------------------------------------------------
%% \section{Materiales de interés para la asignatura}
%% %%------------------------------------------------------------------
%% %%------------------------------------------------------------------
%% \subsection{Material complementario general}
%% \begin{itemize}
%% \end{itemize}
%% %%---------------------------------------------------------------------------
%%----------------------------------------------------------------------------
%%----------------------------------------------------------------------------
%%----------------------------------------------------------------------------
\chapter{Programa}
Programa de las prácticas de la asignatura (tentativo, irá evolucionando según avanza la asignatura).
%%--------------------------------------------------------------------------
%%--------------------------------------------------------------------------
\section{Presentación}
%%--------------------------------------------------------------------------
\subsection{Sesión del 16 de enero (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} Presentación de la asignatura. Breve introducción y motivación de las aplicaciones web.
\item \textbf{Material:} Transparencias, tema ``Presentación''.
\end{itemize}
%%--------------------------------------------------------------------------
\subsection{Sesión del 17 de enero (0.5 horas)}
\begin{itemize}
\item \textbf{Presentación:} Introducción a la entrega de prácticas en GitHub (seccion~\ref{sec:eje-entrega-practicas-incr}).
\end{itemize}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{Introducción a HTML}
Introducción a algunos conceptos de HTML y tecnologías relacionadas.
\subsection{Sesión del 23 de enero (2 horas)}
\begin{itemize}
\item \textbf{Ejercicio (discusión en clase):} ``Página HTML simple'' (ejercicio~\ref{subsec:eje-html-simple}).
\item \textbf{Presentación:} Introducción a HTML
\item \textbf{Material:} Transparencias, tema ``HTML''.
\item \textbf{Ejercicio libre:} Practica con HTML. Elige una página web y modifícala (trata de hacerlo para todos los elementos que puedas entre los vistos en la presentación).
\item \textbf{Ejercicio (discusión en clase):} ``Manipulación de HTML desde Firebug'' (ejercicio~\ref{subsec:eje-html-firebug})
\end{itemize}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{Introducción a CSS}
Introducción a algunos conceptos de CSS.
\subsection{Sesión del 17 de enero (1.5 horas)}
\begin{itemize}
\item \textbf{Presentación:} Introducción a CSS
\item \textbf{Material:} Transparencias, tema ``CSS''.
\item \textbf{Ejercicio (discusión en clase):} ``Añadir selectores'' (ejercicio~\ref{subsec:anadir-selectores})
\item \textbf{Ejercicio (en clase):} ``Tipografía'' (ejercicio~\ref{subsec:tipografia})
\item \textbf{Ejercicio (entrega en el foro):} ``Una caja CSS2'' (ejercicio~\ref{subsec:caja-css2})
\end{itemize}
\subsection{Sesión del 24 de enero (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} CSS3
\item \textbf{Material:} Transparencias, tema ``CSS3''.
\item \textbf{Ejercicio (discusión en clase):} ``Una caja CSS2'' (ejercicio~\ref{subsec:caja-css2})
\item \textbf{Ejercicio (discusión en clase):} ``Bordes redondeados'' (ejercicio~\ref{subsec:bordes-redondeados})
\item \textbf{Ejercicio (discusión en clase):} ``Sombra de texto'' (ejercicio~\ref{subsec:sombra-texto})
\item \textbf{Ejercicio (discusión en clase):} ``Sombra de borde'' (ejercicio~\ref{subsec:sombra-borde})
\item \textbf{Ejercicio (discusión en clase):} ``Fondo semitransparente'' (ejercicio~\ref{subsec:fondo-semitransparente})
\item \textbf{Ejercicio (discusión en clase):} ``Fondo en gradiente'' (ejercicio~\ref{subsec:gradiente})
\item \textbf{Ejercicio (entrega en el foro):} ``Alpha en los bordes'' (ejercicio~\ref{subsec:alpha-bordes})
\item \textbf{Ejercicio (discusión en clase):} ``Alpha en los bordes'' (ejercicio~\ref{subsec:alpha-bordes})
\item \textbf{Ejercicio (discusión en clase):} ``Rotación'' (ejercicio~\ref{subsec:rotacion})
\item \textbf{Ejercicio (discusión en clase):} ``Escalado'' (ejercicio~\ref{subsec:escalado})
\item \textbf{Ejercicio (discusión en clase):} ``Rotación en el eje Y'' (ejercicio~\ref{subsec:rotacionY})
\item \textbf{Ejercicio (discusión en clase):} ``Animación'' (ejercicio~\ref{subsec:animacion})
\item \textbf{Ejercicio (entrega en el foro):} ``Transiciones'' (ejercicio~\ref{subsec:transiciones})
\end{itemize}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{Introducción a Bootstrap}
\subsection{Sesión del 31 de enero (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} Bootstrap
\item \textbf{Material:} Transparencias, tema ``Bootstrap''.
\item \textbf{Ejercicio (discusión en clase):} ``Inspeccionando Bootstrap'' (ejercicio~\ref{subsec:inspeccionando_bootstrap})
\item \textbf{Ejercicio (discusión en clase):} ``Una sencilla página con Bootstrap'' (ejercicio~\ref{subsec:bootstrap_sencillo})
\item \textbf{Ejercicio (entrega en GitHub):} ``Utilizando el Carousel de Bootstrap'' (ejercicio~\ref{subsec:carousel})
\end{itemize}
\subsection{Sesión del 7 de febrero (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} Bootstrap
\item \textbf{Material:} Transparencias, tema ``Bootstrap''.
\item \textbf{Ejercicio:} ``El \emph{grid} de Bootstrap'' (ejercicio~\ref{subsec:grid-bootstrap})
\item \textbf{Ejercicio:} ``Bootstrap responsivo'' (ejercicio~\ref{subsec:bootstrap-responsivo})
\item \textbf{Ejercicio (entrega en GitHub):} Concurso: ``Tu diseño Bootstrap'' (ejercicio~\ref{subsec:concurso-bootstrap})
\end{itemize}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{Introducción a JavaScript}
%%----------------------------------------------------------------------
\subsection{Sesión del 30 de enero (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} JavaScript: objetos, tipos, strings, números, booleanos, vectores (arrays), variables.
\item \textbf{Material:} Transparencias, tema ``JavaScript''
\item \textbf{Ejercicios:} Ejercicios varios ejecutados en la consola de Firebug. Exploración de las opciones de depuración de Firebug para JavaScript.
\end{itemize}
%%----------------------------------------------------------------------
\subsection{Sesión del 6 de febrero (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} JavaScript: funciones.
\item \textbf{Material:} Transparencias, tema ``JavaScript''
\item \textbf{Ejercicio (discusión en clase y entrega en el foro):} ``Página HTML con JavaScript'' (ejercicio~\ref{subsec:eje-html-javascript}).
\item \textbf{Ejercicio (discusión en clase y entrega en el foro):} ``Iteración sobre un objeto'' (ejercicio~\ref{subsec:eje-js-iteracion-objeto})
\item \textbf{Ejercicio (discusión en clase):} ``Función que cambia un elemento HTML'' (ejercicio~\ref{subsec:eje-js-cambia-elemento})
\item \textbf{Ejercicio (discusión en clase):} ``Vacía página'' (ejercicio~\ref{subsec:eje-js-vacia-pagina})
\end{itemize}
%%----------------------------------------------------------------------
\subsection{Sesión del 20 de febrero (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} JavaScript: closures.
\item \textbf{Material:} Transparencias, tema ``JavaScript''
\item \textbf{Ejercicio (discusión en clase):} ``De lista a lista ordenada'' (ejercicio~\ref{subsec:eje-js-lista-ordenada})
\item \textbf{Ejercicio (discusión en clase):} ``Sumador JavaScript muy simple'' (ejercicio~\ref{subsec:eje-js-sumador-muy-simple})
\item \textbf{Ejercicio (discusión en clase, entrega en GitHub):} ``Sumador JavaScript muy simple con sumas aleatorias'' (ejercicio~\ref{subsec:eje-js-sumador-aleatorio}) \\
Entrega recomendada: antes del 27 de febrero. \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-JS-Sumador} \\
\item \textbf{Ejercicio (discusión en clase):} ``JSFIDDLE'' (ejercicio~\ref{subsec:eje-js-jsfiddle})
\end{itemize}
%%----------------------------------------------------------------------
\subsection{Sesión del 21 de febrero (2 horas)}
\begin{itemize}
\item \textbf{Ejercicio (discusión en clase, entrega en GitHub):} ``Mostrador aleatorio de imágenes'' (ejercicio~\ref{subsec:eje-js-imagenes-aleatorio}) \\
Entrega recomendada: antes del 28 de febrero \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-JS-Fotos} \\
\item \textbf{Ejercicio (discusión en clase, entrega en GitHub):} ``Calculadora binaria simple'' (ejercicio~\ref{subsec:eje-js-calc-binaria-1}) \\
Entrega recomendada: antes del 28 de febrero \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-JS-Calculadora} \\
\item \textbf{Ejercicio (discusión en clase):} ``Greasemonkey'' (ejercicio~\ref{subsec:eje-js-greasemonkey})
\end{itemize}
%%----------------------------------------------------------------------
\subsection{Sesión del 27 de febrero (2 horas)}
\begin{itemize}
\item \textbf{Ejercicio (discusión en clase):} ``Prueba de addEventListener para leer contenidos de formularios'' (ejercicio~\ref{subsec:eje-js-addeventlistener-form})
\item \textbf{Ejercicio (discusión en clase, entrega en GitHub):} ``Colores con addEventListener'' (ejercicio~\ref{subsec:eje-js-addeventlistener-colores}) \\
Entrega recomendada: antes del 6 de marzo \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-JS-Event} \\
\end{itemize}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{Introducción a jQuery}
%%----------------------------------------------------------------------
\subsection{Sesión del 6 de marzo (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} JQuery: introducción
\item \textbf{Material:} Transparencias, tema ``jQuery''
\item \textbf{Ejercicio (discusión en clase):} ``Uso de jQuery'' (ejercicio~\ref{subsec:eje-jquery-uso})
\item \textbf{Ejercicio (discusión en clase, entrega en Git Hub):} ``Cambio de colores con jQuery'' (ejercicio~\ref{subsec:eje-jquery-colores}) \\
Entrega recomendada: antes del 13 de marzo. \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-JQ-Colores} \\
\end{itemize}
%%----------------------------------------------------------------------
\subsection{Sesión del 13 de marzo (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} jQuery: continuamos
\item \textbf{Material:} Transparencias, tema ``jQuery''
\item \textbf{Ejercicio (discusión en clase):} ``Texto con jQuery'' (ejercicio~\ref{subsec:eje-jquery-texto}).
\item \textbf{Ejercicio (discusión en clase):} ``Difuminado (fading) con jQuery'' (ejercicio~\ref{subsec:eje-jquery-fading}).
\item \textbf{Presentación de minipráctica preparatoria:} ``Calculadora SPA'' (\ref{sec:voluntaria-calculadora}) \\
Entrega recomendada: antes del 24 de marzo. \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-Practica-Calculadora} \\
\end{itemize}
%%----------------------------------------------------------------------
\subsection{Sesión del 27 de marzo (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} jQuery: AJAX. Historia, motivación, el objecto XMLHTTPRequest. Uso de AJAX desde jQuery.
\item \textbf{Presentación:} JSON, AJAX con JSON y uso de AJAX con JSON desde jQuery.
\item \textbf{Material:} Transparencias, tema ``jQuery''
\item \textbf{Ejercicio (discusión en clase):} ``Ejemplos simples con Ajax'' (ejercicio~\ref{subsec:eje-jquery-ajax}) \\
Entrega recomendada: antes del 3 de abril. \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-JQ-Ajax}
\item \textbf{Ejercicio (discusión en clase):} ``Ejemplos simples con Ajax y JSON'' (ejercicio~\ref{subsec:eje-jquery-json}).
\item \textbf{Ejercicio (discusión en clase):} ``Generador de frases aleatorias'' (ejercicio~\ref{subsec:eje-jquery-frases-aleatorias}).
\end{itemize}
%%----------------------------------------------------------------------
\subsection{Sesión del 3 de abril (1 hora)}
\begin{itemize}
\item \textbf{Presentación de minipráctica preparatoria:} ``Socios'' (\ref{sec:voluntaria-socios}) \\
Entrega recomendada: antes del 17 de abril. \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-Practica-Socios}
\item \textbf{Material:} Transparencias, tema ``jQuery''
\item \textbf{Ejercicio (entrega en el foro):} ``Utilización de JSONP'' (ejercicio~\ref{subsec:eje-jquery-jsonp}) \\
Entrega recomendada: antes del 10 de abril. \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-JQ-Flickr}
\end{itemize}
%% %%----------------------------------------------------------------------
%% %%----------------------------------------------------------------------
\section{Introducción a HTML5}
Introducción a algunos conceptos de HTML5.
\subsection{Sesión del 13 de febrero (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} HTML5: introducción
\item \textbf{Material:} Transparencias, tema ``HTML5''
%% \item \textbf{Ejercicio (discusión en clase):} ``Lo mismo, pero diferente'' (ejercicio~\ref{subsec:lo-mismo-pero-diferente})
%% \item \textbf{Ejercicio (entrega en el foro):} ``Diagrama de coordenadas con canvas'' (ejercicio~\ref{subsec:diagrama-coordenadas}) \\
%% Entrega recomendada: antes del 12 de marzo.
%% \end{itemize}
%% \subsection{Sesión del 12 de marzo (2 horas)}
%% \begin{itemize}
%% \item \textbf{Presentación:} HTML5: Canvas
%% \item \textbf{Material:} Transparencias, tema ``HTML5''
%% \item \textbf{Ejercicio (discusión en clase):} ``Diagrama de coordenadas con canvas'' (ejercicio~\ref{subsec:diagrama-coordenadas})
\item \textbf{Ejercicio (discusión en clase):} ``Un sencillo Paint'' (ejercicio~\ref{subsec:paint-sencillo})
\item \textbf{Ejercicio (discusión en clase):} ``Un sencillo Paint con brocha'' (ejercicio~\ref{subsec:paint-brocha}) \\
Entrega recomendada: antes del 20 de febrero.
\end{itemize}
\subsection{Sesión del 14 de febrero (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} HTML5: Guardar en local; aplicaciones sin conexión
\item \textbf{Material:} Transparencias, tema ``HTML5''
\item \textbf{Ejercicio (discusión en clase):} ``Un sencillo juego con canvas'' (ejercicio~\ref{subsec:estudia-juego})
\item \textbf{Ejercicio (entrega en GitHub:} ``Mejora el juego con canvas'' (ejercicio~\ref{subsec:modifica-juego}) \\
\item \textbf{Ejercicio (discusión en GitHub):} ``Juego con estado'' (ejercicio~\ref{subsec:juego-con-estado})
\\
Entrega recomendada: antes del 21 de febrero.
\end{itemize}
\subsection{Sesión del 28 de febrero (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} HTML5: Otras cuestiones HTML5
\item \textbf{Material:} Transparencias, tema ``HTML5''
\item \textbf{Ejercicio:} ``Modernizr: Comprobación de funcionalidad HTML5'' (ejercicio~\ref{subsec:modernizr})
% \item \textbf{Ejercicio:} ``Audio y vídeo con HTML5'' (ejercicio~\ref{subsec:audio-video})
\item \textbf{Ejercicio (entrega en GitHub):} ``Geolocalización con HTML5'' (ejercicio~\ref{subsec:geolocalizacion})
\\
Entrega recomendada: antes del 7 de marzo.
\end{itemize}
\subsection{Sesión del 7 de marzo (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} HTML5: Web Workers
\item \textbf{Material:} Transparencias, tema ``HTML5''
\item \textbf{Ejercicio (entrega en GitHub):} ``Cálculo de números primos con Web Workers'' (ejercicio~\ref{subsec:webworker-primos})
\\
Entrega recomendada: antes del 14 de marzo.
\end{itemize}
\subsection{Sesión del 14 de marzo (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} HTML5: History API
\item \textbf{Ejercicio (entrega en GitHub):} ``History API - Cambiando la historia con HTML5''
(ejercicio~\ref{subsec:cambiando-historia}) \\
Entrega recomendada: antes del 21 de marzo.
\end{itemize}
\subsection{Sesión del 21 de marzo (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} HTML5: WebSocket
\item \textbf{Material:} Transparencias, tema ``HTML5''
\item \textbf{Ejercicio:} ``Cliente de eco con WebSocket'' (ejercicio~\ref{subsec:websocket-cliente-eco})
\item \textbf{Ejercicio:} ``Cliente y servidor de eco con WebSocket'' (ejercicio~\ref{subsec:websocket-cliente-servidor-eco})
\item \textbf{Ejercicio:} ``Cliente y servidor de chat con WebSocket'' (ejercicio~\ref{subsec:websocket-cliente-servidor-chat})
\item \textbf{Ejercicio (entrega en GitHub):} ``Canal con información horaria'' (ejercicio~\ref{subsec:websocket-canal-obsesion-horaria}) \\
Entrega recomendada: antes del 28 de marzo.
% \item \textbf{Presentación:} HTML5: Service Workers
% \item \textbf{Ejercicio (discusión en clase):} ``Juego sin conexión'' (ejercicio~\ref{subsec:juego-sin-conexion}) \\
% Entrega recomendada: antes del 28 de marzo.
\end{itemize}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{Otras bibliotecas JavaScript}
\subsection{Sesión del 3 de abril (1 hora)}
\begin{itemize}
\item \textbf{Presentación:} JQueryUI: introducción
\item \textbf{Ejercicio (discusión en clase):} ``JQueryUI: Instalación y prueba'' (ejercicio~\ref{subsec:otras-jquery-instal})
\item \textbf{Ejercicio (discusión en clase):} ``JQueryUI: Uso básico'' (ejercicio~\ref{subsec:otras-jquery-basico}) \\
\item \textbf{Ejercicio (opcional, sin entrega):} ``Elige un plugin de jQuery'' (ejercicio~\ref{subsec:otras-jquery-plugin}) \\
\item \textbf{Ejercicio (entrega en el foro):} ``JQueryUI: Juega con JQueryUI'' (ejercicio~\ref{subsec:otras-jqueryui-juega}) \\
Entrega recomendada: antes del 10 de abril. \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-JSLibs-JQueryUI}
\item \textbf{Ejercicio (optativo):} ``JQueryUI: Clon de 2048'' (ejercicio~\ref{subsec:otras-jquery-2048}) \\
Entrega recomendada: antes del 10 de abril. \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-JSLibs-2048}
\end{itemize}
%%----------------------------------------------------------------------
%% \subsection{Sesión del 18 de abril (2 horas)}
%% \begin{itemize}
%% \item \textbf{Ejercicio:} ``Elige un plugin de jQuery'' (ejercicio~\ref{subsec:otras-jquery-plugin})
%% %% Entrega recomendada: antes del 16 de marzo.
%% \end{itemize}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{APIs JavaScript}
%%----------------------------------------------------------------------
\subsection{Sesión del 17 de abril (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} Leaflet: introducción
\item \textbf{Ejercicio (discusión en clase):} ``Leaflet: Instalación y prueba'' (ejercicio~\ref{subsec:apis-leaflet-instal})
\item \textbf{Ejercicio (discusión en clase):} ``Leaflet: Coordenadas'' (ejercicio~\ref{subsec:apis-leaflet-coordenadas})
\item \textbf{Ejercicio (entrega en el foro):} ``Leaflet: Aplicación móvil'' (ejercicio~\ref{subsec:apis-leaflet-movil}) \\
Entrega recomendada: antes del 25 de abril.
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-APIs-Leaflet}
\end{itemize}
%%----------------------------------------------------------------------
\subsection{Sesión del 24 de abril (2 horas)}
\begin{itemize}
\item \textbf{Ejercicio (discusión en clase):} ``Leaflet: Coordenadas y búsqueda de direcciones'' (ejercicio \ref{subsec:apis-leaflet-nominatim}).
\item \textbf{Ejercicio (entrega en GitHub):} ``Leaflet: Fotos de Flickr'' (ejercicio \ref{subsec:apis-leaflet-flickr}) \\
Entrega recomendada: antes del 1 de mayo. \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-APIs-Map-Flickr}
\item \textbf{Ejercicio (discusión en clase):} ``GitHub.js: Datos de un repositorio'' (ejercicio \ref{subsec:apis-github-repo}).
\item \textbf{Ejercicio (entrega en GitHub):} ``GitHub.js: Crea un fichero'' (ejercicio \ref{subsec:apis-github-file}) \\
Entrega recomendada: antes del 1 de mayo. \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-APIs-GitHub-Fichero}
\end{itemize}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{APIs de Google}
%%----------------------------------------------------------------------
\subsection{Sesión del 28 de marzo (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} La API de los servicios de Google
\item \textbf{Material:} Transparencias, tema ``APIs de Google''
\item \textbf{Ejercicio:} ``Conociendo la Google API Console'' (ejercicio~\ref{subsec:conociendo-google-api-console})
\item \textbf{Ejercicio:} ``Tu Perfil vía la API de Google+'' (ejercicio~\ref{subsec:tu-perfil-en-googleplus})
\item \textbf{Ejercicio (entrega en GitHub):} ``Tomando datos de la API de Google+'' (ejercicio~\ref{subsec:tomando-datos-googleplus})
\\
Entrega recomendada: antes del 4 de abril.
\end{itemize}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{Presentación de la Práctica final}
\begin{itemize}
\item \textbf{Presentación de proyecto final:} ``Wifi abierta en instalaciones municipales en Madrid'' (\ref{sec:final-17-mayo})
\end{itemize}
\chapter{Temas antiguos}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{OAuth}
%%----------------------------------------------------------------------
\subsection{Sesión del XX de abril (2 horas)}
\begin{itemize}
\item \textbf{Ejercicio (discusión en clase):} ``OAuth con GitHub'' (ejercicio \ref{subsec:oauth-github}).
\item \textbf{Ejercicio (entrega en GitHub):} ``Listado de ficheros en GitHub'' (ejercicio \ref{subsec:oauth-github-ficheros}) \\
Entrega recomendada: antes del XX de mayo. \\
Repo GitHub: \url{https://github.com/CursosWeb/X-Nav-OAuth-GitHub-Fichero}
%\item \textbf{Ejercicio (discusión en clase y enrega en el foro):} ``Open Web Apps: Aplicación para FirefoxOS'' (ejercicio \ref{subsec:apis-ffxos}).
\end{itemize}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{Firefox OS}
%%----------------------------------------------------------------------
\subsection{Sesión del XX de abril (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} Firefox OS
\item \textbf{Material:} Transparencias, tema ``Firefox OS''
\item \textbf{Ejercicio:} ``Primera aplicación con Firefox OS'' (ejercicio~\ref{subsec:app-firefoxos})
\item \textbf{Ejercicio (entrega en GitHub):} ``Open Web Apps: Aplicación para Firefox OS'' (ejercicio~\ref{subsec:apis-ffxos})
\\
Entrega recomendada: antes del 18 de abril.
\end{itemize}
%%----------------------------------------------------------------------
%%----------------------------------------------------------------------
\section{Optimización}
%%----------------------------------------------------------------------
\subsection{Sesión del XX de abril (2 horas)}
\begin{itemize}
\item \textbf{Presentación:} Optimización
\item \textbf{Material:} Transparencias, tema ``Optimización''
% \item \textbf{Ejercicio:} ``'' (ejercicio~\ref{subsec:})
% \item \textbf{Ejercicio (entrega en GitHub):} ``'' (ejercicio~\ref{subsec:})
% \\
%Entrega recomendada: antes del 28 de abril.
\end{itemize}
%% \subsection{Sesión del 9 de abril (2 horas)}
%% \begin{itemize}
%% %%\item \textbf{Presentación de práctica de entrega voluntaria:} ``Socios'' (\ref{sec:voluntaria-socios}) \\
%% Entrega recomendada: antes del 23 de abril.
%% \item \textbf{Presentación:} OpenLayers: introducción
%% \item \textbf{Ejercicio (discusión en clase):} ``OpenLayers: Instalación y prueba'' (ejercicio~\ref{subsec:apis-openlayers-instal})
%% \item \textbf{Ejercicio (entrega en el foro):} ``OpenLayers: Capas y marcadores'' (ejercicio~\ref{subsec:apis-openlayers-capas}) \\
%% Entrega recomendada: antes del 16 de abril.
%% \end{itemize}
%% \subsection{Sesión del 29 de abril (2 horas)}
%% \begin{itemize}
%% \item \textbf{Ejercicio (discusión en clase):} ``OpenLayers: Coordenadas y búsqueda de direcciones'' (ejercicio \ref{subsec:apis-openlayers-coordenadas}).
%% \item \textbf{Ejercicio (discusión en clase):} ``Fotos de Flickr'' (ejercicio \ref{subsec:apis-flickr}).
%% \end{itemize}
%% %%----------------------------------------------------------------------
%% %%----------------------------------------------------------------------
%% \section{Ejercicios finales}
%% \subsubsection{Sesión del 22 de abril (2 horas)}
%% \begin{itemize}
%% \item \textbf{Ejercicio (discusión en clase y entrega en el foro):} ``Juego de las parejas'' (ejercicio \ref{subsec:finales-parejas}).
%% \end{itemize}
%%----------------------------------------------------------
%%----------------------------------------------------------
%% Enunciado de ejercicios
%%----------------------------------------------------------
\input{ejercicios-apps}
\end{document}