DESARROLLO DE APLICACIONES AVANZADAS

DESARROLLO DE APLICACIONES AVANZADAS

GRADO EN INGENIERÍA INFORMÁTICA

1. Datos de la asignatura

(Fecha última modificación: 26-07-17 13:01)
Código
101136
Plan
ECTS
6.00
Carácter
OPTATIVA
Curso
4
Periodicidad
Primer Semestre
Área
LENGUAJES Y SISTEMAS INFORMÁTICOS
Departamento
Informática y Automática
Plataforma Virtual

Campus Virtual de la Universidad de Salamanca

Datos del profesorado

Profesor
José Rafael García-Bermejo Giner
Grupo/s
A
Departamento
Informática y Automática
Área
Lenguajes y Sistemas Informáticos
Centro
Fac. Ciencias
Despacho
Edif. Ciencias - F3017
Horario de tutorías

A convenir

URL Web
http://diaweb.usal.es/diaweb/personas/coti
E-mail
coti@usal.es
Teléfono
924 294500, Ext 6082

2. Sentido de la materia en el plan de estudios

Bloque formativo al que pertenece la materia.

Programación

Papel de la asignatura.

El objetivo de esta asignatura es introducir al alumno de forma sólida en las tecnologías asociadas a MacOS / iOS, de tal modo que sea capaz de construir aplicaciones básicas. Concretamente, se estudian las analogías y diferencias existentes entre Mac OS e iOS, o más exactamente, las analogías y diferencias entre Cocoa y Coca Touch. El elevado número de clases de que consta el API de estas plataformas hace aconsejable realizar una introducción a las bibliotecas de clases más usuales, para poder abordar posteriormente el estudio de otros frameworks, quizá en el marco de otras actividades académicas más especializadas.

Perfil profesional.

Esta asignatura ofrece una visión general de temas muy en boga en la actualidad, como son las plataformas GUI alternativas (MacOS), el desarrollo de software para dispositivos móviles (iOS), el intercambio de información e interoperabilidad, y los procedimientos avanzados de internacionalización, instalación, actualización. Como tal, esta asignatura es la continuación natural de Interfaces Gráficas, que sienta sus bases. Se recomienda cursar esta asignatura después de aprobar Interfaces Gráficas, aunque con cierto esfuerzo es posible abordarla de manera independiente.

En la actualidad, no se concibe un sistema operativo sin interfaz gráfica de usuario. Los avances que se producen de manera continua hacen que quienes construyen aplicaciones para estos sistemas operativos requieran un esfuerzo constante de reciclaje; además, la rápida evolución hace difícil adaptar los planes de estudio para abordar unas técnicas, capacidades y metodologías que cambian sin cesar. La asignatura “Desarrollo de Aplicaciones Avanzadas” se adapta a un entorno cambiante, y ofrece a los alumnos la posibilidad de introducirse en un aspecto de la informática que suscita enorme interés en la actualidad.

Concretamente, la asignatura hace uso de la formación recibida en asignaturas y cursos anteriores (Programación, Algoritmia, Ingeniería del Software) para construir aplicaciones dotadas de las características que exige el público en la actualidad. Se estudia la programación en Mac OS/ Cocoa, ya presentada en Interfaces Gráficas, y que sirve como plataforma de lanzamiento para iOS, una variante que subyace a una plataforma de gran difusión e interés en la actualidad.

Adicionalmente, se estudian las técnicas profesionales que hacen posible la adaptación de aplicaciones a otros idiomas, cuestión vital en el mercado mundial, así como los procesos de instalación (tanto para aplicaciones de escritorio como para aplicaciones móviles). Los alumnos pueden solicitar, si lo desean, un certificado que les permitirá instalar programas en sus propios dispositivos móviles.

Finalmente, se expone con detalle la infraestructura de comercialización y distribución asociada a las dos plataformas que se estudian. El alumno recibe una formación completa, que le capacita para empezar a diseñar, implementar y comercializar aplicaciones.

3. Recomendaciones previas

Es requisito indispensable aprobar previamente las asignaturas de Programación (I, II y III).

Se recomienda cursar anteriormente la asignatura Interfaces Gráficas.

Parte de la bibliografía que se aporta, y la mayor parte de las información que aparece en Internet, está escrita en Inglés.

4. Objetivo de la asignatura

Tomando como base los conocimientos previos del alumno, y propios de quien aborda una asignatura relacionada con el diseño de aplicaciones avanzadas, se pretende estudiar y poner en práctica los algoritmos de utilización propios de aplicaciones dotadas de GUI, muy especialmente en el caso de un escritorio táctil. El alumno recibe la formación necesaria para comprender los procesos subyacentes cuando se hace uso de la tecnología móvil actual, y aplica concretamente esa formación para construir aplicaciones iOS.

Como parte importante de la asignatura, se ponen de manifiesto los aspectos relacionados con la usabilidad de una aplicación, y se tienen en cuenta las especiales posibilidades que aporta una plataforma móvil (acelerómetros, GPS, acceso a Internet). Estas posibilidades forman parte de un API muy extenso (aproximadamente 100 frameworks), que se estudia de forma detallada con objeto de posibilitar el futuro estudio de otras partes del API.

5. Contenidos

Teoría.

1.    Una plataforma GUI alternativa

1.1.- El lenguaje de programación Objective-C

1.2.- Orígenes. Creación de Clases. Propiedades.

1.3.- Protocolos. Categorías.

1.3.- Tratamiento de cadenas. Colecciones.

1.4.- Cocoa. La arquitectura MVC

1.5.- Primeros pasos. Interface builder.Acciones, Conexiones y Blancos.

1.6.- Vistas. Controladores. La biblioteca de objetos.

1.7.- Delegados. Sandboxing si o no.

1.8.- Ejercicios

2.-  Desarrollo de aplicaciones para dispositivos móviles

2.1.- Cocoa Touch. Primeros pasos. El emulador de iOS. iPhone. iPad.

2.2.- Vistas. Controladores. La biblioteca de objetos. Delegados.

2.3.- Acelerómetros. Mapas. Sandboxing.

2.4.- Otros frameworks

2.5.- Intercambio de información. Interoperabilidad.

2.6.- Ejercicios

3.-  Distribución de software

3.1.- Internacionalización.

3.2.- Instalación

3.3.- AppStore. Provisioning Certificate.

3.4.- Submission. Publicación. Actualización.

3.5.- Ejercicios

6. Competencias a adquirir

Básicas / Generales.

CB3, CB4, CB5

Específicas.

Comunes: CC1, CC6, CC7, CC8, CC14, CC16, CC17

De tecnología específica: TI3, TI6, C02, C03, C05, C06

Transversales.

CT1, CT3, CT8, CT9, CT12, CT16, CT21, CT22

7. Metodologías

Las actividades formativas que se proponen para esta materia son las siguientes:

Actividades presenciales:

Lección magistral: exposición de teoría y resolución de problemas 

  • Seminarios tutelados para grupos pequeños 
  • Sesiones de tutorías
  • Exposición de trabajos y pruebas de evaluación

Actividades no presenciales:

  • Estudio autónomo por parte del estudiante
  • Revisión bibliográfica y búsqueda de información
  • Realización de un trabajo.
     

8. Previsión de Técnicas (Estrategias) Docentes

9. Recursos

Libros de consulta para el alumno.

Swift Programming: The Big Nerd Ranch Guide (2nd Edition) Mathias M. and Gallagher J.

iOSProgramming: The Big Nerd Ranch Guide (6th Edition) Keur, C. and Hillegass, A.

Cocoa Programming for Mac OS X (5th Edition) Hillegass, A., Preble A. and Chandler N.

Otras referencias bibliográficas, electrónicas o cualquier otro tipo de recurso.

10. Evaluación

Consideraciones generales.

  • Evaluación continua (entragas y/o controller): 40%
  • Proyecto final: 60%

La nota final de las asignatura se obtendrá de forma ponderada a través de las notas finales conseguidas en los apartados anteriores

Criterios de evaluación.

Evaluación continua: se llevará a cabo mediante la realización de ejercicios propuestos en las clases de teoría y práctica. Los ejercicios se realizarán y entregarán en clase, por escrito en el caso de teoría y a través de la plataforma Studium en el caso de prácticas.

Examen de teoría y problemas: se realizará por escrito, y estará formado por una colección de cuestiones teóricas y prácticas con pesos ponderales aproximadamente equivalentes. Las cuestiones abordarán los conceptos, técnicas y lenguajes de programación estudiados. Realización y defensa de prácticas, trabajos o proyectos: se evaluará con especial atención al rigor teórico de lo construido a lo largo de todo el curso completo. El profe sor podrá proponer uno o más temas, y especificar el lenguaje o lenguajes utilizados en el trabajoEvaluación continua: tendrá como objetivo facilitar un aprendizaje progresivo, evitando que el alumno aborde su aprendizaje de manera puntual, tanto en los aspectos teóricos como en los prácticos. Se llevará a cabo mediante controles y/o entregas de ejercicios eminentemente prácticos que se pro- pondrán a lo largo del curso, buscando escalonar la comprensión de la asignatura. La propuesta de estos ejercicios para evaluación continua se realizará tanto desde las clases de teoría como desde las clases de prácticas. Tendrá un peso del 40% respecto a la nota total. Los profesores de teoría y prácticas podrán considerar la posibilidad de no admitir a examen a los alumnos que no superen un 80% de asistencia a las clases de teoría y de prácticas.

Realización de controles de teoría y problemas: tendrán como objetivo comprobar la correcta comprensión de los contenidos teóricos, y también la capacidad del alumno para aplicar esos conceptos en la construcción de programas. Su peso será del 60% respecto a la calificación final, repartido por igual entre los aspectos teórico y práctico.

Realización y defensa de un proyecto final: Se propondrá al alumno la realización de un proyecto final, que implemente un contenido teórico, destinado a comprobar la correcta comprensión de los conceptos estudiados a lo largo del curso. Tendrá un peso del 60% respecto a la nota total.

Para poder aprobar la asignatura se exigirá una nota mínima de 3 sobre 10 en cada una de las partes

Instrumentos de evaluación.

Evaluación continua: se llevará a cabo mediante la realización de ejercicios propuestos en las clases de teoría y práctica. Los ejercicios se realizarán y entregarán en clase, por escrito en el caso de teoría y a través de la plataforma Studium en el caso de prácticas.

Examen de teoría y problemas: se realizará por escrito, y estará formado por una colección de cuestiones teóricas y prácticas con pesos ponderales aproximadamente equivalentes. Las cuestiones abordarán los conceptos, técnicas y lenguajes de programación estudiados. Realización y defensa de prácticas, trabajos o proyectos: se evaluará con especial atención al rigor teórico de lo construido a lo largo de todo el curso completo. El profe sor podrá proponer uno o más temas, y especificar el lenguaje o lenguajes utilizados en el trabajo

Recomendaciones para la evaluación.

Evaluación continua: se prestará especial atención a un trabajo continuado por parte del alumno, que deberá respetar los plazos de entrega (distribuidos de tal modo que se vayan tratando todas las partes del curso a medida que este avanza).

Realización de exámenes de teoría y problemas: se prestará especial atención a comprobar la correcta comprensión de los temas estudiados a lo largo del curso.

Realización y defensa de prácticas: Salvo indicación expresa del profesor, éstas se realizarán y calificarán de forma individual. La defensa es potestativa del profesor.

Recomendaciones para la recuperación.

Evaluación continua: no se contempla su recuperación. La nota obtenida se mantendrá a efectos de la segunda convocatoria.

Realización de exámenes de teoría y de prácticas: se recomienda encarecidamente realizar los ejercicios solicitados en las clases prácticas y en el proyecto final.

11. Organización docente semanal