MF2497_3: Desarrollo de componentes software específicos para sistemas de Inteligencia Artificial basados en aprendizaje automático

912 171 879

Categorías

DENOMINACIÓN

Desarrollo de componentes software específicos para sistemas de Inteligencia Artificial basados en aprendizaje automático

CÓDIGO

MF2497_3

DESCRIPCIÓN

Módulo formativo MF2497_3: Desarrollo de componentes software específicos para sistemas de Inteligencia Artificial basados en aprendizaje automático

DURACIÓN

180 horas

CAPACIDADES Y CRITERIOS DE EVALUACIÓN

C1: Aplicar técnicas de modelización de algoritmos de carácter general y específicos de Inteligencia Artificial, previa interpretación usando lenguajes propios del sector para integrarlos en un sistema de Inteligencia Artificial.

CE1.1 Identificar técnicas de abstracción de problemas reales para su traslado a la elaboración de algoritmos que los solucionen, describiendo los pasos a seguir.

CE1.2 Interpretar gráficos y la documentación de análisis y diseño que representan el problema a resolver, describiendo mecanismos para su traslado a algoritmos programables.

CE1.3 Describir técnicas de modularización tales como ‘top‐down’ y ‘bottom‐up’, explicando sus ámbitos y mecanismos de aplicación.

CE1.4 Describir herramientas de abstracción lógica para modelizar siguiendo algoritmos y técnicas tales como gestión y ordenación de archivos, búsqueda ordenada y secuencial, divide y vencerás, programación dinámica, algoritmos voraces, recursividad, búsquedas con retroceso, ramificación y poda, programación lineal y reducciones y algoritmos recursivos, entre otros, indicando su utilidad y explicándolas paso a paso.

CE1.5 Describir técnicas de representación de algoritmos tales como pseudocódigo y diagramas de flujo, explicándolas paso a paso.

CE1.6 En un supuesto práctico de modelización de problemas mediante algoritmos de carácter general y específicos de Inteligencia Artificial:
‐ Interpretar los problemas a resolver, abstrayendo con pautas lógicas las guías y bases para elaborar los algoritmos que los solucionan, a partir de la documentación y gráficos de análisis y diseño del problema.
‐ Descomponer los problemas a resolver, modularizándolos usando estrategias ‘top‐down’ o ‘bottom‐up’.
‐ Modelizar los problemas a resolver, usando la herramienta de la abstracción lógica, siguiendo algoritmos y técnicas tales como gestión y ordenación de archivos, búsqueda ordenada y secuencial, divide y vencerás, programación dinámica, algoritmos voraces, recursividad, búsquedas con retroceso, ramificación y poda, programación lineal y reducciones y algoritmos recursivos, entre otros.
‐ Representar los algoritmos, usando herramientas al efecto, tales como pseudocódigo y diagramas de flujo.

C2: Aplicar el paradigma de la Programación Orientada a Objetos a la resolución de problemas generales y específicos de Inteligencia Artificial, codificando en lenguajes de programación propios del sector, para aplicar algoritmos elaborados según especificaciones de análisis y diseño recibidas.

CE2.1 Identificar las clases a partir del problema o de la documentación de análisis y diseño, extrayendo la información conectada con la resolución del problema.

CE2.2 Identificar las relaciones entre clases y sus características tales como clases hija o derivadas de las clases padre o base asociadas, restricciones, visibilidad, multiplicidades, herencia y otras, a partir del problema o de la documentación de análisis y diseño, discriminando su ámbito de aplicación y describiendo su funcionalidad.

CE2.3 Describir las técnicas y utilidades de la programación orientada a objetos tales como sobrecarga de constructores y métodos, uso de tipos abstractos y polimorfismo, entre otros, discriminando su ámbito de aplicación y describiendo su funcionalidad, a partir de la documentación de análisis y diseño.

CE2.4 Identificar en las clases, sus atributos, métodos e interfaces, describiendo los tipos de datos que los representan o que usan, discriminando su ámbito de aplicación y describiendo su funcionalidad, a partir de la documentación de análisis y diseño.

CE2.5 Describir el concepto de constructor de clases, a partir de las clases definidas, explicando su aplicación.

CE2.6 Enumerar los tipos y estructuras de datos básicos para representación de valores tales como aquellos que representan caracteres, números y valores lógicos, entre otros, explicando y discriminando su aplicación.

CE2.7 Enumerar los tipos y estructuras de datos complejos como cadenas, vectores, tablas multidimensionales, árboles, grafos, pilas, colas, tablas hash y colecciones, explicando y discriminando su aplicación.

CE2.8 Describir las herramientas estructuradas de programación tales como asignaciones, condiciones, bucles e iteraciones, entre otras, explicando y discriminando su aplicación.

CE2.9 En un supuesto práctico de codificación de algoritmos de resolución de problemas generales o específicos de Inteligencia Artificial en un lenguaje determinado y según especificaciones de análisis y diseño:
‐ Codificar las clases, sus atributos, métodos e interfaces, utilizando el lenguaje de programación indicado y las técnicas metodológicas orientadas a objetos.
‐ Aplicar a los atributos de las clases y a los parámetros de los métodos, los tipos y estructuras de datos básicos tales como aquellos que representan caracteres, números y valores lógicos, entre otros.
‐ Aplicar los tipos complejos como cadenas, vectores, tablas multidimensionales, árboles, grafos, pilas, colas, tablas hash y colecciones a las clases y variables codificadas, integrando y utilizando las clases y métodos predefinidos.
‐ Aplicar las herramientas estructuradas de programación tales como asignaciones, condiciones, bucles e iteraciones, entre otras, para codificar los métodos de las clases, siguiendo los algoritmos elaborados para resolver los problemas planteados, definiendo los parámetros de entrada y/o salida.
‐ Codificar las relaciones entre clases, derivando o extendiendo clases hija de las clases base o padre asociadas, manteniendo las restricciones, visibilidad, multiplicidades, herencia y otras características especificadas, tales como gestión de envío de mensajes e implementándolas con las técnicas y utilidades de la programación orientada a objetos tales como sobrecarga de constructores y métodos, uso de tipos abstractos y polimorfismo, entre otros.
‐ Definir los objetos, interpretando las especificaciones establecidas en el diseño y los algoritmos, instanciando las clases codificadas.

C3: Aplicar mecanismos de control, gestión e integración propios del paradigma de la Programación Orientada a Objetos a un código de resolución de problemas generales y específicos de Inteligencia Artificial, usando lenguajes de programación propios del sector, para aplicar algoritmos elaborados.

CE3.1 Identificar mecanismos de control de errores usando las sentencias y mecanismo propios del lenguaje tales como ‘Try‐Catch’ u otros, describiendo su funcionamiento y discriminando su aplicación.

CE3.2 Describir las herramientas de desarrollo y depuración para facilitar el proceso de generación del código y de detección y corrección de errores, explicando su funcionalidad y discriminando su aplicación.

CE3.3 Identificar componentes y librerías de terceros aplicables según las necesidades, interpretando su documentación, describiendo sus características, utilidad y explicando los pasos a seguir para integrarlos en un código.

CE3.4 Identificar mecanismos de acceso y manipulación de datos estructurados y no estructurados externos utilizando librerías disponibles, describiendo los pasos a seguir para integrarlas en la aplicación y codificar programas a partir de ellas.

CE3.5 Describir los procedimientos a seguir para elaborar un plan de pruebas, siguiendo los protocolos y los criterios de calidad definidos en la organización, clasificando los tipos de prueba y explicándolos paso a paso.

CE3.6 Describir procedimientos de integración de elementos de código en paquetes y librerías para su uso posterior en futuras aplicaciones, explicando los pasos a seguir.

CE3.7 En un supuesto práctico de aplicación de mecanismos de control, gestión e integración propios del paradigma de la Programación Orientada a Objetos a un código de resolución de problemas generales y específicos de Inteligencia Artificial, usando lenguajes de programación:
‐ Implementar el control de errores en el código, usando las sentencias y mecanismo propios del lenguaje tales como ‘Try‐Catch’ u otros.
‐ Emplear las herramientas de desarrollo y depuración, para facilitar el proceso de generación del código, detectando y corrigiendo errores en el código.
‐ Utilizar los componentes y librerías de terceros, seleccionándolos según las necesidades, interpretando su documentación e implementando su uso, para reutilizar código y reducir el tiempo de desarrollo.
‐ Programar el acceso y manipulación de datos estructurados y no estructurados externos utilizando librerías disponibles e integrándolas en la aplicación, codificando programas a partir de ellas.
‐ Ejecutar el plan de pruebas, siguiendo los protocolos y los criterios de calidad definidos en la organización, discriminado los tipos de prueba, resolviendo los problemas encontrados en la implementación, consultando la documentación técnica.
‐ Integrar en paquetes y librerías los elementos elaborados susceptibles de ser compartidos, para su uso posterior en futuras aplicaciones.

C4: Aplicar unas técnicas de predicción de tendencias o la organización y descripción de datos, codificando sistemas de redes neuronales en programas mediante técnicas y algoritmos al efecto.

CE4.1 Describir modelos de aprendizaje de las redes neuronales (RRN) supervisados y no supervisados, explicando su funcionamiento y mecanismos de uso.

CE4.2 Describir mecanismos de aplicación de algoritmos de aprendizaje automático supervisados (predictivos) usando redes neuronales con el objeto de predecir un dato (variable objetivo) desconocido a priori, a partir de otros datos conocidos, explicando los pasos a seguir y discriminando su aplicación.

CE4.3 Describir mecanismos de aplicación de algoritmos de aprendizaje automático no supervisados usando redes neuronales, que buscan descubrir patrones (estructuras) y tendencias en los datos, explicando los pasos a seguir y discriminando su aplicación.

CE4.4 Describir métodos de cuantización (‘clustering’) de vectores tales como ‘K‐means’, con el enfoque de examinar y presentar, datos complejos de manera más simple, explicando los pasos a seguir para su codificación.

CE4.5 Describir técnicas de representación del espacio de entrada de las muestras de entrenamiento, tales como ‘mapas auto organizativos de Kohonen’, SOM (‘SOM‐Self‐Organizing Maps’), explicando los pasos a seguir y discriminando su aplicación.

CE4.6 Describir técnicas de simulación de redes asociativas, tales como ‘Programación de Redes de Hopfield’ o redes recursivas recurrentes para garantizar la convergencia a un mínimo local, explicando los pasos a seguir y discriminando su aplicación.

CE4.7 Describir técnicas de resolución de problemas que no son linealmente separables, tales como Redes Neuronales con Perceptrones Multicapa, explicando los pasos a seguir para su codificación.

CE4.8 En un supuesto práctico de aplicación de técnicas de predicción de tendencias o la organización y descripción de datos mediante redes neuronales:
‐ Programar los algoritmos de aprendizaje automático supervisados (predictivos), usando redes neuronales con el objeto de predecir un dato (variable objetivo) desconocido a priori, a partir de otros datos conocidos.
‐ Programar los algoritmos de aprendizaje automático no supervisados, usando redes neuronales, buscando descubrir patrones (estructuras) y tendencias en los datos, con el objetivo de organizar los datos o describir su estructura.
‐ Programar código siguiendo siguiendo métodos de cuantización (‘clustering’) de vectores tales como ‘K‐means’, con el enfoque de examinar y presentar, datos complejos de manera más simple.
‐ Representar el espacio de entrada de las muestras de entrenamiento, programando código que use técnicas tales como ‘mapas auto organizativos de Kohonen’, SOM (‘SOM‐Self‐Organizing Maps’), para discretizarlo.
‐ Simular las redes asociativas, programando código en base a técnicas tales como ‘Programación de Redes de Hopfield’ o redes recursivas recurrentes para garantizar la
convergencia a un mínimo local.
‐ Explorar la resolución de problemas que no son linealmente separables, usando técnicas tales como Programación de Redes Neuronales con Perceptrones Multicapa.

C5: Aplicar técnicas estadísticas de análisis de datos, programando software para la extracción de patrones preparatorios aplicables en aprendizaje automático (‘Machine Learning’ ‐ML‐) usando librerías predefinidas.

CE5.1 Describir librerías de análisis de datos tales como ‘Numpy’ en ‘Jupyter’, explicando sus características y discriminando los casos de aplicación.

CE5.2 Describir librerías de manipulación y análisis tales como Pandas, explicando las estructuras de datos y funcionalidades al efecto que proporcionan tales como series y ‘DataFrames’, discriminando los casos de aplicación.

CE5.3 Describir librerías de representación tipo ‘Plotter’ tales como ‘Matplotlib’ y ‘Seaborn’ y programación de rectas y curvas de regresión de los datos de ajuste, explicando sus características y discriminando los casos de aplicación.

CE5.4 Describir mecanismos de integración, unificación y uniformización de datos e instancias provenientes de distintas fuentes, mediante eliminación de atributos redundantes y limpieza de los datos, tratando los valores faltantes y el ruido de datos, explicando sus características y discriminando los casos de aplicación.

CE5.5 Describir técnicas de filtrado de repositorios de información para descubrir y extraer información siguiendo un proceso tal como ‘Knowledge Discovery in Data bases’ (KDD), explicando sus características y discriminando los casos de aplicación.

CE5.6 Describir técnicas de análisis del lenguaje natural (NLP) y de las redes sociales, usando para ello algoritmos tales como clasificación, regresión lineal, regresión logística, uso de árboles de decisión, uso de polinomios y variabilidad para extraer y clasificar información, explicando sus características y funcionamiento por pasos.

CE5.7 En un supuesto práctico de aplicación de técnicas estadísticas de análisis de datos para la extracción de patrones preparatorios aplicables en aprendizaje automático (‘Machine Learning’‐ML‐) usando librerías predefinidas:
‐ Codificar el software de análisis de datos, a partir de librerías tales como Numpy en Jupyter, usando array multidimensional homogéneo.
‐ Manipular los datos, previo análisis, usando librerías tales como Pandas, usando estructuras de datos y funcionalidades al efecto tales como series y ‘DataFrames’.
‐ Representar los datos, usando librerías tipo ‘Plotter’ tales como ‘Matplotlib’ y ‘Seaborn’ y programación de rectas y curvas de regresión de los datos de ajuste.
‐ Integrar los datos, unificando y uniformando instancias provenientes de distintas fuentes, eliminando atributos redundantes y limpiando los datos, tratando los valores faltantes y el ruido de datos.
‐ Filtrar los repositorios de información, descubriendo y extrayendo información siguiendo un proceso tal como ‘Knowledge Discovery in Data bases’ (KDD) para obtener todo el conocimiento posible.
‐ Aplicar los algoritmos tales como clasificación, regresión lineal, regresión logística, uso de árboles de decisión, uso de polinomios y variabilidad al análisis del lenguaje natural (NLP) y redes sociales, escribiendo el código para extraer y clasificar información.

C6: Aplicar técnicas de elaboración de la documentación del código desarrollado para sistemas de Inteligencia Artificial según los estándares de la organización, para garantizar su futuro mantenimiento.

CE6.1 Identificar el tipo de documentación a generar tales como manuales, guías para desarrolladores, administradores o usuarios, entre otras, explicando su estructura y contenidos.

CE6.2 Identificar los componentes susceptibles de ser documentados, explicando el contenido a informar.

CE6.3 Describir técnicas de elaboración de comentarios de código, nomenclatura de identificadores con nombres autoexplicativos (mnemotécnicos), sangrado e indentación u otros, que se incluyen en el código, para una mejor comprensión del programa, explicando pautas a seguir.

CE6.4 Describir herramientas de producción automática de documentación a partir del texto incluido en el componente software, explicando su uso paso a paso.

CE6.5 En un supuesto práctico de elaboración de la documentación del código desarrollado para sistemas de Inteligencia Artificial:
‐ Redactar la documentación, tal como manuales, guías para desarrolladores, administradores o usuarios entre otros, de acuerdo a unas pautas o especificaciones, seleccionando la información de utilidad según el destinatario.
‐ Redactar la documentación correspondiente a cada componente, de acuerdo con las normas y modelos incluidos en el diseño de la aplicación.
‐ Añadir al código los comentarios, identificadores con nombres autoexplicativos (mnemotécnicos), tabulaciones u otros, documentándolo para una mejor comprensión.
‐ Generar la documentación de un componente desarrollado mediante las herramientas de producción automática de documentación, a partir del texto incluido en el componente software.
‐ Documentar los procedimientos de ejecución de las pruebas unitarias y de regresión, así como los resultados de las mismas, de acuerdo a los estándares y pautas proporcionadas.

Capacidades cuya adquisición debe ser completada en un entorno real de trabajo.
C1 respecto a CE1.6; C2 respecto a CE2.9; C3 respecto a CE3.7; C4 respecto a CE4.8; C5 respecto a CE5.7; C6 respecto a CE6.5.

Otras Capacidades:
Responsabilizarse del trabajo que desarrolla y del cumplimiento de los objetivos.
Demostrar cierto grado de autonomía en la resolución de contingencias relacionadas con su actividad.
Comunicarse eficazmente con las personas adecuadas en cada momento, respetando los canales establecidos en la organización.
Adaptarse a la organización, a sus cambios organizativos y tecnológicos, así como a situaciones o contextos nuevos.
Adoptar actitudes posturales adecuadas en el entorno de trabajo.
Mostrar una actitud de respeto hacia los compañeros, procedimientos y normas de la empresa.
Cumplir las medidas que favorezcan el principio de igualdad de trato y de oportunidades entre hombres y mujeres.
Valorar el talento y el rendimiento profesional con independencia del sexo.
Aplicar de forma efectiva el principio de igualdad de trato y no discriminación en las condiciones de trabajo entre mujeres y hombres.

CONTENIDOS

1 Modelización de algoritmos de carácter general y específicos de Inteligencia Artificial

Técnicas de abstracción de problemas reales para su traslado a la elaboración de algoritmos.
Interpretación de gráficos y la documentación de análisis y diseño para la elaboración de algoritmos.
Técnicas de modularización. ‘Top‐down’ y ‘bottom‐up’.
Herramientas de abstracción lógica para modelizar. Algoritmos y técnicas. Gestión y ordenación de archivos, búsqueda ordenada y secuencial, divide y vencerás, programación dinámica, algoritmos voraces, recursividad, búsquedas con retroceso, ramificación y poda, programación lineal y reducciones, algoritmos recursivos y otros.
Técnicas de representación de algoritmos: pseudocódigo y diagramas de flujo.

2 Resolución de problemas generales y específicos de Inteligencia Artificial aplicando Programación Orientada a Objetos

Clases. Tipología. Clase base, clase derivada, clase abstracta.
Relaciones entre clases. Herencia. Visibilidad. Multiplicidad.
Atributos y operaciones.
Sobrecarga. Polimorfismo.
Interfaces. Implementación y aplicación.
Constructores.
Tipos de datos básicos o elementales. Numéricos, alfanuméricos y lógicos (‘boolean’).
Tipos y estructuras de datos complejos. Cadenas, vectores, tablas multidimensionales, árboles, grafos, conjuntos, pilas, colas, tablas hash y colecciones.
Paso de mensajes.
Sentencias de la programación estructurada: asignaciones, condiciones, bucles e iteraciones.

3 Mecanismos de control, gestión en integración en Programación Orientada a Objetos aplicada a la Inteligencia Artificial

Control de errores.
Herramientas de desarrollo y depuración.
Componentes de terceros. Complementos y librerías.
Librerías y mecanismos de acceso y manipulación de datos estructurados y no estructurados externos.
Procedimientos a seguir para elaborar un plan de pruebas. Tipos de prueba.
Empaquetado de código en librerías. Refactorización.

4 Interpretación de diagramas de modelización de problemas

Estándares. ‘Unified Modelling Language’ (UML).
Interpretación de diagramas que representan el sistema de manera estática. Diagramas de Estructura Estática. Diagramas de Clases.
Interpretación de diagramas de interacción. Interpretación de diagramas de Casos de Uso.
Interpretación de diagramas que representan la interacción organizada. Diagramas de Casos de Colaboración.
Interpretación de diagramas de Modelado Dinámico. Diagramas de Actividades. Diagramas de Secuencia, Diagramas de Colaboración, Diagramas de Estados, Diagramas de Casos de Uso, Diagramas de Actividades.

5 Predicción de tendencias/organización y descripción de datos mediante redes neuronales usando Programación Orientada a Objetos

Modelos de aprendizaje de las redes neuronales (RRN). Supervisados y no supervisados.
Métodos de cuantización (‘clustering’) de vectores. ‘K‐means’.
Técnicas de representación del espacio de entrada de las muestras de entrenamiento. Mapas auto organizativos de Kohonen SOM (‘SOM‐Self‐Organizing Maps).
Técnicas de simulación de redes asociativas. ‘Programación de Redes de Hopfield’, redes recursivas recurrentes.
Técnicas de resolución de problemas no linealmente separables. Programación de Redes Neuronales con Perceptrones Multicapa.

6 Técnicas estadísticas de análisis de datos usando Programación Orientada a Objetos en Inteligencia Artificial

Librerías de análisis de datos tales como ‘Numpy’ en ‘Jupyter u otras.
Librerías de manipulación y análisis tales como ‘Pandas’ u otras.
Librerías de representación tipo ‘Plotter’ tales como ‘Matplotlib’, ‘Seaborn’ u otras.
Programación de rectas y curvas de regresión de los datos de ajuste.
Mecanismos de integración, unificación y uniformización de datos e instancias provenientes de distintas fuentes.
Técnicas de filtrado de repositorios de información para descubrir y extraer información.
‘Knowledge Discovery in Data bases’ (KDD), Análisis del lenguaje natural (NLP) y de las redes sociales. Clasificación, regresión lineal, regresión logística, uso de árboles de decisión, uso de polinomios y variabilidad.

SI QUIERES APRENDER MÁS…

TE LLAMAMOS Y TE LO EXPLICAMOS TODO

    [td_block_7 custom_title=»Echale un vistazo a nuestros cursos» category_ids=»-51,-50,21,40,39,11,-13,18″ limit=»10″ css=».vc_custom_1603406461579{background-color: #ffffff !important;}»]

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Scroll al inicio