expertos en formación

ANALISTA PROGRAMADOR

OBJETIVOS El objetivo del curso es planificar e implementar soluciones de tecnología de información en organizaciones privadas y públicas, así como colaborar en el diseño, construcción y mantenimiento de sistemas informáticos y proyectos de software.

PROGRAMA Módulo 1. Programación Orientada a Objetos y UML. Módulo 2. Bases de Datos y Lenguaje SQL. Módulo 3. Diseño de Estructuras de Datos y Algoritmos. Módulo 4. Metodologías de Diseño de Aplicaciones Informáticas. Módulo 5. Programación en JAVA. Módulo 6. Pruebas y Documentación. Módulo 7. Coordinación de Equipos de Trabajo.

PROGRAMA DETALLADO MÓDULO 1. PROGRAMACIÓN ORIENTADA A OBJETOS Y UML

A) Contenidos Teóricos:

1. Introducción a UML. 2. Elementos de UML. 2.1. Clases. 2.2. Objetos. 2.3. Relaciones. 2.4. Asociaciones. 2.5. Navegabilidad. 2.6. Calificación. 2.7. Agregación. 2.8. Composición. 2.9. Herencia. 2.10. Dependencias. 2.11. Interfaces. 3. Lenguaje de UML: OCL. 4. Diagramas estructurales. 4.1. Diagramas de clase. 4.2. Diagramas de objetos. 4.3. Diagramas de componentes. 4.4. De distribución. 5. Diagramas de comportamiento. 5.1. Diagramas de casos de uso. 5.2. Diagramas de secuencia. 5.3. Diagramas de colaboración. 5.4. Diagramas de estados. 5.5. Diagramas de actividades.

B) Prácticas 1. Realizar el gráfico de clase completo para cada una de las clases de un programa dado. 2. Realizar el gráfico de objeto para cada uno de los objetos de un programa dado. 3. Realizar los siguientes diagramas de una aplicación: 3.1. De clases. 3.2. De componentes. 3.3. De distribución. 3.4. De casos de uso. 3.5. De secuencia. 3.6. De colaboración. 3.7. De estados. 3.8. De actividades.

MÓDULO 2. BASES DE DATOS Y LENGUAJE SQL A) Contenidos Teóricos

1. Características del lenguaje, y principios de funcionamiento de bases de datos relacionales. 2. Consultas y subconsultas, tipos y características. 3. Tablas de referencia cruzadas. 4. Consultas simples. 4.1. Selección de consultas. 4.2. Ordenación de las filas. 5. Consultas multitabla. 5.1. Unión. 5.2. Composición de tablas. 6. Consultas de resumen. 7. Subconsultas, referencias externas. 8. Actualización de datos. 9. El DDL, lenguaje de definición de datos.

10. Conceptos teóricos avanzados de bases de datos. 10.1. Base de datos Distribuidas. 10.2. Base de datos Orientada a Objetos. 10.3. DataMart. 10.4. DataMining. 10.5. DataWarehouse. 10.6. GIS. B) Prácticas Obtener información de una base de datos y a partir de unos criterios previamente establecidos, realizar las siguientes prácticas: 1. Realizar consultas aplicando las cláusulas comunes. 2. Realizar consultas multitabla utilizando operadores habituales. 3. Unir tablas. 4. Realizar consultas de resumen, utilizando las funciones de cada columna. 5. Seleccionar el origen de los datos en consultas de resumen y cláusulas habituales. 6. Realizar subconsultas: 6.1. Anidar subconsultas. 6.2. Realizar subconsultas de una lista de selección. 6.3. Utilizar las cláusulas de las subconsultas. 7. Insertar, borrar y modificar filas. 8. Realizar consultas basadas en referencias cruzadas, usando columnas dinámicas y fijas. 9. Actualizar datos de una tabla. 10. Subsanar problemas derivados de la integridad referencial. 11. Definir datos utilizando el lenguaje de definición de datos.

MÓDULO 3. DISEÑO DE ESTRUCTURAS DE DATOS Y ALGORITMOS A) Contenidos Teóricos 1. Estructuras de datos estáticas: matrices de una, dos y más dimensiones, registros, conjuntos, BD relacionales, tablas y columnas. 2. Estructuras de datos dinámicas: listas, pilas, colas, árboles, grafos. 3. Combinación de estructuras de datos. 4. Abstracción, refinamiento, modularidad, ocultamiento, jerarquía de control, cohesión, acoplamiento, diseño ascendente, y el descendente, tablas de decisiones, recursividad. 5. Algoritmos de búsqueda, de ordenación, de mezcla. 6. Algoritmos recursivos. 7. Algoritmos heurísticos. B) Prácticas 1. Definir varias estructuras estáticas para ayudar a resolver un conjunto de problemas determinado. 2. Definir varias estructuras dinámicas para ayudar a resolver ciertos problemas planteados por el analista funcional. 3. Dado un problema a resolver informáticamente, aplicar el método de refinamiento hasta conseguir pequeños problemas planteables a los programadores. 4. Partiendo de una aplicación que se va a construir, indicar los módulos más apropiados para su implementación. 5. Aplicar el diseño ascendente, y el descendente a un mismo problema, y confrontar los resultados y los tiempos empleados. 6. Indicar las distintas opciones posibles para implementar una tabla de verdad dada por el analista funcional. 7. Resolver un problema mediante un algoritmo recursivo y mediante otro que sea iterativo. 8. Programar en algún lenguaje estructurado un algoritmo de búsqueda dicotómica, otro de ordenación por burbuja, y otro para realizar una mezcla. 9. Resolver un problema mediante un algoritmo heurístico.

MÓDULO 4. METODOLOGÍAS DE DISEÑO DE APLICACIONES INFORMÁTICAS A) Contenidos Teóricos 1. Información, sistemas de información (SI), elementos y estructuras de un SI. Subsistemas. 2. Sistemas de información de gestión. Procesos de negocio. BD. 3. Ciclo de vida de un sistema de información. Modelos de desarrollo en cascada y en espiral. Prototipo técnico. 4. Metodologías estructuradas, orientación a objetos, tiempo real, metodología Merise, SSADM, Métrica 3, Warnier, Jackson, Booch, OMT, UML. 5. Documento de análisis: menús, listado, pantallas, informes, procesos, interacción con otros sistemas, ayudas, ficheros y BD. 6. Diagramas de flujo de datos (DFD), diccionario de datos, manual de usuario, manual de administrador. 7. Diagrama entidad/relación, implementación en BDR y en ficheros. 8. Diagrama de transición de estados y de comportamiento. 9. Diagramas estructurados. 10. Tablas cruzadas, tablas de decisión y árboles. 11. Diseño de la interfaz de usuario. 12. Cuaderno de carga. 13. Diseño de la seguridad y de auditoría. B) PRÁCTICAS 1. Identificar varios sistemas de información de una empresa típica y sus subsistemas. 2. Identificar los procesos de negocio de un departamento de personal. 3. Describir un prototipo técnico para el caso de un proyecto de robótica. 4. Realizar la documentación de un pequeño análisis de un programa de control de entradas/salidas del personal (enfermedades, vacaciones, permisos).

5. Obtener los diagramas de flujos de datos (DFD) y los diagramas entidad-relación de una aplicación de nóminas que se relacione con otros sistemas de la empresa. 6. Obtener las tablas cruzadas: procesos-ficheros y procesos–tablas, de la aplicación anterior. 7. Realizar el cuaderno de carga de dos programas de una aplicación de nómina. 8. Diseñar el interfaz gráfico de una aplicación de nómina. 9. Diseñar la seguridad de una aplicación de nómina.

MÓDULO 5. PROGRAMACIÓN EN JAVA A) Contenidos Teóricos 1. Orientación a objetos. 2. Objetos y clases. 3. Características de la orientación a objetos. 3.1. Herencia. 3.2. Polimorfismo. 3.3. Encapsulación. 4. Estructuras de datos complejas. 4.1. Líneas. 4.2. Árboles. 4.3. Grafos. 5. La eficiencia de los algoritmos. 6. Ordenación. 6.1. Ventajas. 6.2. Ordenación por mezcla. 6.3. Ordenación rápida. 7. Algoritmos voraces. 8. Exploración de árboles. 8.1. Backtracking. 9. Patrones de diseño.

10. Introducción a JAVA SOCKETS. 11. Introducción a JAVA RMI. B) PRÁCTICAS Desarrollar una aplicación en JAVA realizando las siguientes prácticas: 1. Definir la finalidad de la aplicación. 2. Establecer una jerarquía en la estructura de las funciones que va a realizar la aplicación. 3. Definir las variables, constantes, expresiones y operadores, como tipos de datos básicos en JAVA. 4. Crear sentencias de control de flujo, utilizando identificadores y palabras reservadas. 5. Definir los objetos y las clases: 5.1. Definir subclases y superclases, además de la clase Object. 6. Establecer una estructura de datos compleja, utilizando líneas, árboles y grafos: 6.1. Explorar la estructura de datos, practicando el recorrido de árboles en profundidad, y anchura, así como ramificaciones y poda y árboles de recubrimiento mínimo. 6.2. Buscar los árboles binarios y usar el editor ortográfico con backtracking. 7. Generar algoritmos eficientes, aplicar reglas para el calculo de la eficiencia en algoritmos ordinarios y recursivos, así como su notación asintótica: 7.1. Identificar algoritmos voraces y subsanar el problema de la mochila. 7.2. Aplicar la teoría del algoritmo de Kruskal y Prim. 8. Establecer patrones en el programa, ya sean estructurales o de comportamiento. 9. Compilar el programa. 10. Verificar el programa y depurar los errores. 11. Documentar la aplicación.

MÓDULO 6. PRUEBAS Y DOCUMENTACIÓN A) Contenidos Teóricos 1. Verificación y validación. 2. Pruebas individuales y de integración. 3. Pruebas de caja blanca y caja negra. 4. Juego de ensayo, casos, pruebas, resultados. 5. Casos para estructuras secuenciales repetitivas y alternativas del análisis. Pruebas de pantallas, de informes y de procesos. 6. Simplificación de los casos de prueba. 7. Pruebas de integración descendente y ascendente. 8. Validación, pruebas alfa y beta. 9. Documentación del sistema, de los programas, de los procesos y de los datos. 10. Manual del usuario, manual del administrador y documentación del sistema. 11. Generación automática de documentación. B) Prácticas 1. Para varios ejemplos de proyectos en desarrollo, identificar pruebas individuales de integración, de verificación y de validación. 2. Dadas varias pantallas, informes, listados y procesos, obtener sus juegos de ensayo. 3. Dado un juego de ensayo, simplificarlo para reducir el número de pruebas. 4. Ejemplificar pruebas ascendentes y descendentes. 5. Documentar un manual de usuario para una pequeña aplicación, así como su manual de administrador.

MÓDULO 7. COORDINACIÓN DE EQUIPOS DE TRABAJO A) Contenidos Teóricos 1. El personal. 2. Estilos de dirección. 3. Organización del trabajo. 3.1. Organización y planificación de tareas. 3.1.1. Fijación de objetivos. 3.1.2. Reparto de tareas. 3.2. Control de tiempos. 4. Comunicación con el equipo. 5. Técnicas de motivación. B) Prácticas 1. Identificar y describir los diferentes estilos de dirección de un equipo. 2. Establecer un plan de trabajo en el que figuren las responsabilidades individuales. 3. A partir de un equipo de trabajo supuesto y perfectamente caracterizado: 3.1. Analizar el grado de madurez de los componentes del equipo de trabajo desde una triple vertiente: 3.1.1. Características personales. 3.1.2. Competencia técnica. 3.1.3. Voluntad para aceptar responsabilidades y capacidad para ejercerlas. 3.2. Realizar un reparto equilibrado de funciones y tareas entre todos los miembros del equipo. 4. Simular la conducción y animación de una reunión de trabajo. 5. Simular la transmisión / recepción de una crítica.

DATOS DEL CURSO Duración: 350 Horas. Inicio: Presentación del curso en Diciembre. Inicio en Enero. Horario: Por determinar.

DOCUMENTOS A PRESENTAR - Fotocopia del D.N.I. - CV. - El documento “Demanda de Ocupación” de la OTG (Tanto parados como trabajadores deben ir a la OTG, darse de alta y pedir el documento “Demanda de Ocupación” para realizar cursos ocupacionales).

FORMACIÓN OCUPACIONAL (Gratuita) La formación ocupacional, también conocida como "cursos gratuitos para desempleados y cursos gratuitos para trabajadores", consiste en cursos subvencionados por la generalitat y el Fondo Social Europeo. Dichos cursos están destinados a personas que quieran iniciarse en el aprendizaje de una profesión o bien quieran reciclar sus conocimientos en relación a su puesto de trabajo. La incorporación en el mundo laboral no solo depende de una buena preparación técnica sino de las habilidades y formación complementaria que el alumno posea. Estos cursos gratuitos en Barcelona ofrecen la preparación necesaria para dicha incorporación. Además de la formación en su especialidad, incluyen un módulo de integración laboral y de orientación profesional. Pueden hacer cursos de Formación Ocupacional todas las personas entre 16 y 65 años, independientemente de su formación previa, siendo el único requisito traer el documento “Demanda de Ocupación” de la OTG.

HORAS

350

P u n to d e in fo rm a c ió n

Confederación Española de Empresas de Formación

Asociación Española de Centros de Informática