Programando en C: Refactorización

Capítulo 12: Re factor izada Cion

En las 2 U anteriores, de manera más o menos consciente, menos hemos preocupado tanto de implementar nuevas funcionalidades, como de reestructurar y mantener el código limpio, mantenía ble, y entendible.

Éstas operaciones forman parte de un proceso más amplio llamado refacturación.

Lo importante en este caso es entender la utilidad de la refacturación y la necesidad de, cada poco tiempo, pararse por un momento y preguntarse si el código tiene una forma óptima, o podríamos reestructurarlo para hacerlo más fácil  de trabajar

En el día a día del desarrollo de programas informáticos, es muy común que, aunque se parta desde una planificación, finalmente se acaben implementando características sobre la marcha, en base a las necesidades que van surgiendo, y que desgraciadamente, muchas veces no pueden ser tenidas en cuenta en la planificación inicial.

esto provoca que, por muy ordenado y estructurado que pretendemos tener el código al principio de un proyecto, es totalmente común y normal que el código acabe ensuciándose, y que acabe adoptando una forma nada clara ni mantenimle.

El objetivo de la refacturación es detenerse cada poco tiempo y preguntarse de qué manera el código, manteniendo por supuesto su funcionalidad, podría ser más entendible para el ser humano, y estar estructurado de manera que, mantenerlo y ampliarlo, no resulte un esfuerzo titánico después de la realidad de cómo queda el código Al desarrollarlo poco a poco cada día.

Sin pretender entrar en esta publicación en demasiada profundidad con los principios y las técnicas de la refacturación, técnicamente, lo que hemos realizado en las 2 U anteriores, son dos técnicas bastante conocidas de esta filosofía de trabajo.

En primer lugar, la primera estrategia consiste en en capsular.

En cápsula amos porciones de códigos que tienen sed sentido como 1 U. Es decir, a lo largo del desarrollo de un programa, finalmente podemos ver fácilmente como hay porciones de código del programa que tienen sentido dentro de esa porción, y que podrían ser independientes del resto de la aplicación.

Por otra parte, como hemos comentado anteriormente, otra necesidad fundamental de crear funciones es cuando tenemos código que se repite.

Así que, el encapsulamiento de código en funciones, es una técnica de reorganización y reestructuración del código.

Antes de esta primera aplicación, generalmente, solemos tener un programa estructurado, es decir, un programa que puede perfectamente ocupar 500, 1000,2 1000 líneas de código, que va a lanzando instrucciones desde la primera hasta la última línea del programa. Fácil de entender, fácil de escribir, pero difícil de mantener, ya que cada vez que buscamos una porción del programa, tenemos que hacer Scroll a lo largo del código a través de miles y miles de líneas.

Al finalizar la refacturación que consiste en aislar segmentos en funciones, lo que acabamos teniendo es básicamente las mismas líneas de código, esos 500, 1000, o 2000 líneas de código, o quizás a veces mucho más, pero organizadas en burbujas, organizados en una serie de funciones, que anteceden a la función principal.

El código es más óptimo, pero la longitud del archivo no varía, así que acaba siendo aproximadamente igual de molesto tener que hacer Scroll a lo largo de miles de líneas cada vez que buscamos un segmento para modificar o cada vez que queremos implementar una nueva funcionalidad. Éste es verdaderamente uno de los problemas de la mantenía Billy dad de aplicaciones informáticas, que provoca que muchas veces tengamos que reescribir aplicaciones, simplemente porque nos cuesta menos Riesco reescribirlas, que mantenerlas, cuando el código se ha ensuciado demasiado. Evidentemente, lo que pretendemos es no tener que llegar a este.

es por esto que otra estrategia consiste en lo que hemos visto en la unidad anterior, básicamente extraer las funciones a archivos externos, incluirlas, en el caso del lenguaje que nos ocupa en esta publicación en las cabeceras.

Al hacer esto, el código podría pasar a tener aproximadamente esta forma:

tenemos un archivo principal que contiene la mínima expresión del código posible, y que, con suerte, puede verse todo en una sola pantalla, sin necesidad de hacer Scroll, o haciendo una cantidad mínima de Scroll a lo largo de las líneas.

Además, se visualiza la ejecución de las funciones, con lo cual, tenemos una idea muy aproximada mente de lo que hace el programa, aunque no necesariamente tenemos que estar viendo el código que contiene cada una de las funciones.

luego, por otra parte, si en un momento dado queremos profundizar en el código de alguna función concreta, simplemente tenemos que abrir la carpeta que contiene las funciones.

De un vistazo, podemos ver las funciones que contiene la carpeta, y si las hemos nombrado correctamente, podemos averiguar de un vistazo cuál es el archivo que tenemos que abrir para evitar.

cuando abrimos el archivo, estamos accediendo únicamente a la porción de código que nos interesa, y por tanto, estamos obviando todo ese código del resto de funciones que no nos interesa para implementar una nueva función concreta, o para retocar una parte de una función.

esta manera de trabajar, que solo nos ha exigido realizar dos operaciones de Rafa actualización, es totalmente conveniente, ya que nos permite aumentar enormemente nuestra productividad, trabajando más rápido, trabajando más cómodos, y en definitiva, permitiendo que, en un momento dado, el programa sea más fácil de extender, de hacer más grande, y de evolucionar

¿Cual es el mejor lenguaje de programación para inteligencia artificial?

 

Frecuentemente recibo la pregunta acerca de cuál es el mejor lenguaje de programación para crear aplicaciones de inteligencia artificial. Otras veces, directamente la pregunta es si lenguajes como Python o bibliotecas como TensorFlow son los adecuados para crear este tipo de aplicaciones.

Así que el objetivo de este artículo es aclarar algunos conceptos para poder elegir un lenguaje de programación u otro para desarrollar aplicaciones que hagan uso de la IA.

¿Qué es la IA?

Este concepto no es fácil de explicar. La inteligencia artificial no es un conjunto de instrucciones, ni un nuevo tipo de datos. Consiste en una serie de metodologías en las cuales podemos dotar a nuestros desarrollos de comportamientos percibidos como inteligentes. En definitiva, son metodologías, y no instrucciones.

Es por esto que, a priori, cualquier lenguaje de programación es válido para realizar aplicaciones de inteligencia artificial.

¿Qué lenguajes de programación existen?

Haciendo referencia al listado TIOBE, que muestra los lenguajes de programación más utilizados en el mercado, el listado para enero de 2019 muestra los siguientes datos:

https://www.tiobe.com/tiobe-index/

Jan 2019

Jan 2018

Change

Programming Language

Ratings

Change

1

1

 

Java

16.904%

+2.69%

2

2

 

C

13.337%

+2.30%

3

4

 

Python

8.294%

+3.62%

4

3

 

C++

8.158%

+2.55%

5

7

 

Visual Basic .NET

6.459%

+3.20%

6

6

 

JavaScript

3.302%

-0.16%

7

5

 

C#

3.284%

-0.47%

8

9

 

PHP

2.680%

+0.15%

9

 

SQL

2.277%

+2.28%

10

16

 

Objective-C

1.781%

-0.08%

Cualquiera de los lenguajes de programación de esta lista podría ser perfectamente válido para desarrollar aplicaciones de IA, a excepción probablemente del lenguaje SQL, que está orientado a consultas en bases de datos, en lugar de a desarrollo de aplicaciones.

Poríamos clasificar estos lenguajes en tres grandes grupos:

-Lenguajes de bajo nivel, que son aquellos que tienen mejor rendimiento, pero en los que el programador debe tomar muchas decisiones, de forma que puede optimizar la ejecución del programa, pero la probabilidad de cometer fallos es mayor. Ejemplos de estos lenguajes son C, C++ y Objective-C

-Lenguajes de alto nivel, que son aquellos que ofrecen una serie de abstracciones, de forma que el propio compilador toma algunas decisiones, liberando al desarrollador de tomarlas. De esta forma, estos lenguajes suelen ser menos eficientes en la ejecución, ya que las decisiones que se toman automáticamente por el compilador no suelen ser tan inteligentes como las que toma un ser humano. Sin embargo, dado que el desarrollador tiene que tomar menos decisiones, las probabilidades de fallo son menores. Ejemplos de estos lenguajes son Python y Javascript

-Lenguajes de nivel intermedio: Encontramos dentro de este grupo aquellos lenguajes que buscan un balance óptimo entre rendimiento y dificultad. De esta forma, ponen muchas decisiones en manos del usuario programador, pero a la vez ofrecen una serie de facilidades y herramientas para prevenir y arreglar los errores de código. Un ejemplo de este tipo de lenguajes es Java.

Eligiendo el mejor lenguaje:

Antes de elegir un lenguaje u otro, teniendo en cuenta que todos los lenguajes de la lista son perfectamente válidos, deberemos establecer un criterio para la elección, y no todos tenemos por qué tener el mismo criterio.

Por ejemplo, un criterio podría ser el rendimiento. Es decir, que nuestras aplicaciones se ejecuten lo más rápido posible. Este criterio es importante, ya que muchas aplicaciones de inteligencia artificial deben funcionar y proporcionar resultados en un tiempo aceptable, ya que, en caso contrario, podría considerarse que nuestras aplicaciones son inteligentes, pero lentas (y por tanto podrían ser percibidas por los usuarios finales como aplicaciones “no tan inteligentes”, aunque la velocidad no tenga que ver directamente con la calidad de los resultados)

En este caso, podríamos elegir aquellos lenguajes de más bajo nivel, como C o C++

Evidentemente, en este caso, puesto que el propio aprendizaje y puesta en práctica de las metodologías de inteligencia artificial en un lenguaje concreto es complejo, tendríamos que tener un nivel de partida bastante fluido en estos lenguajes.

Otro criterio posible sería la facilidad de uso del lenguaje de programación. Esta es la opción que suele elegirse para formación relacionada con la inteligencia artificial. De esta forma, el alumno se preocupa únicamente por las complejidades derivadas de la implementación de la IA, y no de las complejidades propias del lenguaje de programación. Esta es la razón por la cual los lenguajes como Python son tan famosos en los cursos de formación relacionados con este ámbito, en contra de la creencia popular de que es debido a su potencia, es por su facilidad y su flexibilidad.

Un ejemplo más concreto del rendimiento entre los diferentes lenguajes de programación podemos encontrarlo en comparativas como la siguiente:

https://www.instagram.com/p/BQTe7NegeSq/

Esta es una de las comparativas que suelo realizar en todo tipo de formaciones relacionadas con la programación en múltiples lenguajes. El objetivo es proponer el mismo reto a resolver a diferentes lenguajes de programación, y observar los resultados.

En esta comparación podemos observar como, para un mismo cálculo, donde lenguajes de un nivel bajo tardan entre 24 y 25 segundos en completar su tarea, los lenguajes de alto nivel como Javascript tardan 38 segundos (aproximadamente un 52% más lentos), pero otros lenguajes como Python pueden llegar a tardar 157 segundos (es decir, un 650% más lentos que los lenguajes de bajo nivel). Por tanto, estos lenguajes no se eligen por su rendimiento sino por su facilidad de uso.

El lenguaje de programación R: Ventajas y desventajas

Existe una serie de lenguajes que suelen considerarse más aptos para el desarrollo de aplicaciones de inteligencia artificial. Uno de ellos es el lenguaje estadístico R.

La diferencia de este lenguaje con respecto a los genéricos es que incluye una serie de herramientas y librerías que facilitan tanto el cálculo como la presentación de resultados de análisis estadísticos (área que tiene una gran importancia en la inteligencia artificial).

Esto a la vez es bueno y a la vez no tanto. Desde un punto de vista del desarrollo, añade productividad permitiendo a los desarrolladores crear presentaciones de resultados de una forma muy sencilla.

Podemos encontrar dos grandes ejemplos de esto en la propia pagina de la Wikipedia:

https://es.wikipedia.org/wiki/R_(lenguaje_de_programaci%C3%B3n)

Repasando los dos ejemplos (tanto en su código fuente como en los resultados), veremos que la inclusión previa de las librerías correspondientes minimizan el código que tiene que desarrollar el ser humano, y automatizan al máximo la tarea de generación de gráficas.

Sin embargo, desde el punto de vista de la formación, realizar tantas abstracciones, en ocasiones puede no resultar tan conveniente, ya que si delegamos todos estos cálculos en el propio lenguaje de programación y sus librerías, no estaremos realmente aprendiendo a realizarlos, y si el día de mañana estamos obligados a cambiar a un lenguaje de programación más genérico, podremos darnos cuenta de la dependencia que habremos desarrollado con respecto al lenguaje de programación R

Aún así, por supuesto es recomendable que cualquier formación en inteligencia artificial contenga algún apartado que muestre a los alumnos el uso del lenguaje de programación R

Matlab y Octave:

En la lista TIOBE, el lenguaje que ocupa el puesto número 11 es Matlab, lo cual es igual de interesante como el lenguage R.

Matlab es un sistema algebráico presentado dentro de un entorno de desarrollo integrado, que desde hace muchos años facilita el desarrollo y la realización de múltiples tipos de cálculos a científicos que no tienen por qué tener conocimientos especialmente profundos de programación. De la misma forma que el lenguaje R provee una serie de facilidades y bibliotecas de presentación de resultados, MatLab realiza lo propio en un nivel todavía superior (el IDE consituye una forma muy asequible y agradable de aproximarse al desarrollo de proyectos que requieran cálculos)

En definitiva, tanto Matlab como software comercial, como Octave como alternativa de código abierto, son excelentes alternativas para personas que desean cumplir con el objetivo de acercarse al mundo de la inteligencia artificial, intentando facilitar o al menos abstraer las complejidades derivadas de los lenguajes de programación duros.

Diferentes niveles:

Dentro de las múltiples alternativas de las que disponemos como entornos de desarrollo para implementar proyectos de realidad virtual, dentro de que cualquier lenguaje de programación con unas mínimas capacidades es viable para implementar este tipo de proyectos, podríamos resumir:

Entornos como Matlab u Octave: Mayor facilidad y abstracción, eliminando o minimizando las dificultades de la programación. El propio entorno que nos facilita el trabajo es el que puede hacer que nuestras aplicaciones no sean posteriormente aplicables y portables en todas las plataformas. Aptos para desarrollar prototipos y en definitiva para que personas que no sean programadores puedan aproximarse a desarrollos de inteligencia artificial.

Lenguajes de programación específicos u optimizados, como R: Buena proporción entre esfuerzo y resultado, herramientas específicas para la tarea concreta. Sin embargo, son lenguajes tan específicos que luego no podemos usarlos para otros tipos de proyectos.

Lenguajes generalistas de programación de alto nivel: Buena proporción entre esfuerzo y resultado, y buen balance entre rendimiento, facilidad, y portabilidad del código en la implementación entre diferentes plataformas. Aptos para el aprendizaje y la implementación de aplicaciones reales de inteligencia artificial donde el rendimiento no sea un factor clave pero el éxito y la facilidad de la implementación si que lo sean.

Lenguajes generalistas de programación de bajo nivel: Alto rendimiento, exigen extensos conocimientos del propio lenguaje de programación ya que son propensos a cometer fallos humanos en la escritura del código. Aptos para la implementación final de aplicaciones en  las que el rendimiento sea un factor clave.

Un par de criterios más: facilidad de compilación y generalidad del lenguaje

Hay otra explicación por la cual los lenguajes de programación de alto nivel, como Python y Javascript, son ampliamente utilizados en formaciones relacionadas con inteligencia artificial, no es solo por su facilidad de uso sino también por la facilidad de puesta en marcha.

La puesta en marcha consiste en la serie de operaciones que deben realizarse para, desde cero, comenzar a desarrollar y ejecutar programas con un lenguaje de programación determinado.

En el caso de Python, todos los prerrequisitos pueden descargarse rápida y gratuitamente desde la página https://www.python.org/

Además, contiene instaladores para todo tipo de sistemas operativos y arquitecturas de hardware, lo que posibilita poder instalar y ejecutar programas en todo tipo de equipos informáticos, incluso en aquellos que están muy desactualizados.

El caso de Javascript es todavía más curioso, ya que cualquier navegador web de los que tenemos ya de por sí instalados en nuestro ordenador, llevan YA incorporados los intérpretes que permiten ejecutar programas realizados en este lenguaje de programación.

Únicamente en ese caso es necesario descargar algún editor de código para crear programas, como por ejemplo el archiconocido Notepad++:

https://notepad-plus-plus.org/download/v7.6.2.html

Conclusiones:

El desarrollo de aplicaciones de inteligencia artificial no se realiza de forma exclusiva con un lenguaje de programación u otro. Prácticamente cualquier lenguaje de programación es apto para realizar implementaciones de IA. Lo que si que es importante es conocer las ventajas y las desventajas de cada uno de los lenguajes, para escoger la mejor alternativa según el criterio o los criterios que se adapten a nuestras necesidades.

Quieres saber más?

Ya estamos inmersos de pleno en la era de la inteligencia artificial, que cambiará nuestras vidas y la forma en la que trabajamos. Pero, ¿estas preparad@ para estos cambios? El objetivo de este curso es proporcionarte las herramientas necesarias para que la inteligencia artificial sea una oportunidad y no una amenaza.

Con este curso, aprenderás las técnicas más punteras que empresas como Google, Facebook o Microsoft ya están utilizando para mejorar sus algoritmos. Cualquier dispositivo móvil, ya esté basado en Android o en iOS, ya está utilizando este tipo de tecnologías para mejorar tu experiencia de usuario. En breve, tus propios usuarios y tus clientes darán por hecho esta tecnología y esperarán que los servicios que tu les ofrezcas contengan inteligencia artificial. ¿Está preparada tu empresa para este reto?

Este curso se divide en tres módulos:

IA para todos – primer módulo del curso pensado para que todas las personas, aún sin conocimientos de programación, puedan entender y aprovechar las oportunidades que nos ofrece la inteligencia artificial


Programando aplicaciones de IA – segundo módulo del curso, en el cual ponemos en funcionamiento los conceptos principales del curso, permitiéndote desarrollar aplicaciones prácticas que usan inteligencia artificial


IA hasta el límite – Tercer módulo del curso en el que te mostramos cómo sacar el máximo partido a la inteligencia artificial desarrollando aplicaciones de visión artificial, procesamiento del lenguaje, y combinación con Big Data, entre otros


Entrevista en Linkedin Learning

Entrevista realizada para Linkedin Learning y Pulse, por Alicia Ortega.

Puedes leer la entrevista original aqui:

https://es.linkedin.com/pulse/jos%C3%A9-vicente-carratal%C3%A1-3d-y-el-internet-de-las-cosas-ortega-herrero

 

El diseño 3D por ordenador está ya plenamente desarrollado y nos estamos adentrando en el mundo de la impresión 3D. ¿Cuál crees que será el siguiente paso?

Las técnicas de modelado 3D han llegado, aparentemente, a un punto de estabilidad. Es evidente que ya no vemos innovaciones tan grandes como las que vimos al final de la década de los 90 y al principio de la siguiente, donde no solo el modelado 3D llegó a su apogeo, sino que se democratizó en gran medida su uso, mediante el abaratamiento del precio por licencia, o la compatibilidad con sistemas informáticos domésticos, por ejemplo.

Analizando un poco los comienzos de la infografía y el CAD 3D, no podemos olvidar que las técnicas que usamos hoy en día no son más que simplificaciones de una realidad demasiado compleja como para ser simulada con la potencia computacional actual. Solo un cubo de 1 cm de lado se compone de tantos millones de átomos como para que sea ineficiente reproducirlo átomo a átomo en el interior de un ordenador. En lugar de eso, recurrimos a simplificaciones como, por ejemplo, los polígonos. Resolvemos el problema del cubo simplificándolo a 12 triángulos, y en base a esas simplificaciones hemos construido un conjunto de herramientas que nos permite construir cualquier cosa. Pero ,en mi opinión, no debemos perder nunca de vista el hecho de que son simplificaciones y, como tales, tienen limitaciones. ¿Cuál sería la alternativa? Por ejemplo, el modelado 3D en base a nubes de puntos lleva muchos años esperando su turno, aunque parece que no ha llegado todavía su momento, al menos no desde el punto de vista del uso generalizado.

En el caso de la impresión 3D, muchos de los procesos pasan por usar el formato STL, que esta compuesto por triángulos. Es decir, imprimimos objetos reales, digamos «basados en átomos», con archivos simplificados basados en polígonos. ¿Qué hacemos para solventar el problema? Aumentar los polígonos en número y disminuirlos en tamaño para que no se note la simplificación… pero sigue siendo una simplificación.

Así que quien me conoce sabe que adoro el modelado 3D basado en polígonos, pero en mi inconformista opinión, todavía está por desvelarse un paradigma de modelado 3D tal que nos permita reproducir informáticamente en 3D la realidad que nos rodea de una manera tal que nuestra potencia computacional pueda abordar la reproducción, y que las simplificaciones, en el caso de que las haya, no nos impongan tantas limitaciones como las técnicas actuales.

El siguiente paso, para mí, sin duda, es la realidad virtual y/o realidad aumentada. Un concepto que ha estado rondándonos desde hace 20 años, pero que nunca ha acabado de cuajar, y que ahora parece que está recibiendo el apoyo masivo de los grandes, como Microsoft, Google, Sony, o Facebook. Pero, una vez más, como desarrollador y formador de realidad virtual, puedo decir que los polígonos representan una barrera que nos aleja de esa inmersión completa. Por ejemplo, cuando percibimos un mundo sintético en 3D construido con polígonos a través de un medio 2D como es la pantalla de un ordenador, el modelado polígonal queda muy aparente, el resultado final es muy convincente. Sin embargo, cuando esa misma escena la ves a través de un dispositivo de realidad virtual, donde la sensación de inmersión es mucho más completa, la percepción de que los modelos están construidos en base a caras planas arruina bastante el efecto.

De todas formas, debo decir que estoy muy emocionado con las aplicaciones de la realidad virtual y aumentada, y con su combinación con el resto de tendencias tecnológicas actuales. Si bien a día de hoy las gafas de realidad virtual son dispositivos toscos y pesados, yo los considero como los móviles Motorola de los años 90: eran igualmente toscos, pero mira en lo que se han convertido los teléfonos móviles a día de hoy.

 

 

¿Qué tienes en cuenta a la hora de elegir un software de 3D u otro?

Donde hay un problema, debe haber al menos una solución. Cada software tiene unas ventajas y unas desventajas con respecto a los demás. Por tanto en mi opinión no se trata de elegir un software u otro, sino de conocer las ventajas y desventajas de cada uno de ellos.

Escucho lo que el cliente necesita, lo enfrento a las ventajas y desventajas de cada programa, y entonces elijo el más adecuado.

Entonces, un buen día, llega un cliente con un problema concreto que necesita resolver. Lo que suelo hacer es escuchar lo que el cliente necesita, enfrentar esas necesidades con las ventajas y desventajas de cada uno de los programas, y elegir aquel programa que, para ese cliente concreto, y ese proyecto concreto, solucione lo mejor posible sus necesidades.

Yo siempre digo que los programas son como herramientas dentro de una caja de herramientas. No puedes tener una caja de herramientas con solo un martillo. Si ocurre que tienes que clavar un clavo, bueno, en ese caso estarás de suerte. Pero si a continuación tienes que atornillar una estantería… probablemente el martillo no será tu mejor elección. De la misma manera que te interesa tener una caja de herramientas suficientemente nutrida, te interesa conocer cuantos más programas 3D mejor, para poder dar soluciones óptimas a diferentes tipos de proyectos.

 

¿Crees que los avances en modelado 3D y en animación van de la mano, o uno está adelantando al otro?

Es curioso, pero en infografía 3D, el modelado, la animación, la configuración de esqueletos, la iluminación, y otras tantas áreas, se han desarrollado a lo largo de los años juntas pero a la vez separadas. Paralelas, por supuesto, y tocándose en muchos puntos, porque finalmente llega un momento en el que el modelado ha de ser animado. Pero curiosamente el modelado y la animación son el resultado de una serie de técnicas que nada tienen que ver entre si.

Por ejemplo, la animación moderna 3D basada en claves está basada en los conceptos de animación de Disney de principios del siglo XX, en los que un animador principal creaba los fotogramas importantes, llamados primarios, y una serie de animadores secundarios creaban los fotogramas de relleno entre los fotogramas primarios. La animación con claves no es más que la versión digital de este método de animación clásico.

El modelado, por contrario, se ha construido en base a las simplificaciones poligonales que comentaba en la pregunta anterior.

En la vida real, esto no ocurre así. El cómo se mueve una persona depende de su morfología, de su anatomía. Los movimientos que puede hacer dependen de sus músculos, de sus huesos, y de otros elementos, pero en definitiva, la forma y el movimiento son parte de un todo.

Cabe decir que, a lo largo de los años, ha habido diferentes propuestas de sistemas de animación y modelado basados en las físicas de un personaje, que han intentado cubrir este vacío entre las dos técnicas y relacionarlas más entre sí, como ocurre en la vida real. Pero ninguna de ellas ha acabado dando más ventajas que la unión de estos sistemas simplificados e independientes.

En cuanto al ritmo de las innovaciones, igualmente ha discurrido paralelamente, ya que, como una técnica no tiene nada que ver con la otra, el ritmo de estos descubrimientos en una de las dos líneas no está relacionado ni limitado por la otra.

Por ejemplo, a finales de los 90, el modelado de superficies de subdivisión, implementado de diferentes maneras a lo largo de los diferentes programas, revolucionó el modelado de personajes 3D, haciendo que esta tarea fuera mucho más rápida y agradable de lo que era hasta el momento. La primera gran producción en usar esta técnica fue A Bug’s Life (“Bichos”, en España), en el año 1998.

Paralelamente, más o menos en la misma época, se empezó a popularizar el uso de la técnica de captura de movimiento, en lugar de la clásica animación por claves. Una de las primeras producciones cinematográficas en usar ampliamente esta técnica, fue Final Fantasy: The Spirits Within, en el año 1999. Esta producción ya usaba la técnica de captura de movimiento, que después se usó en “El Señor de los Anillos”, por ejemplo para animar a Gollum, pero a la vez se benefició del modelado de superficies de subdivisión, para modelar a los personajes 3D.

Estos son solo dos ejemplos, pero en definitiva, el concepto es que las producciones que vemos hoy en día en la pantalla son el resultado de la suma de miles de innovaciones hechas en los terrenos del modelado 3D, la animación, la iluminación, la creación de esqueletos virtuales, y otras tantas áreas. Así que al final las innovaciones corren de manera completamente paralela, pero acaban convergiendo en el producto final.

 

¿Piensas que el internet de las cosas puede consolidarse como industria de empleo, o que quedará más en ámbitos domésticos?

El término “internet de las cosas” es solo un concepto de paso hacia una realidad futura más compleja, pero en la que no me cabe ninguna duda que la interconectividad jugará un papel crucial. Imagínate, en 1996 yo tenía un ordenador de 66MHz con 16 megas de memoria. Hoy, 20 años después, todos llevamos en el bolsillo dispositivos móviles no sólo 100 veces más potentes, sino que, además, son táctiles y están permanentemente conectados a internet. Algo impensable para la mayoría en 1996. Ahora, analiza el pasado y el presente, e imagínate lo que tendremos en 20 años.

Los dispositivos son cada vez más pequeños, más potentes, y están más cercanos al ser humano.

Otro ejemplo: los ordenadores en los 70 ocupaban habitaciones enteras, en los 80 eran cajas encima de una mesa, en los 90 se popularizaron los portátiles, en los 2000 se extendió el uso de los teléfonos móviles, en el presente se empiezan a popularizar los relojes inteligentes, y las gafas de realidad virtual o aumentada para las masas están ya a la vuelta de la esquina. Si analizas esa tendencia, y la proyectas hacia el futuro, verás que los dispositivos son cada vez más pequeños, cada vez más potentes, y sobre todo, cada vez están más cercanos al ser humano, en el sentido de que los llevamos puestos encima, y quizás en un momento dado los llevaremos no solo encima, sino dentro de nosotros. Puede que si te hablo de dispositivos interconectados e implantados dentro del ser humano te suene a ciencia ficción, pero imagínate cómo percibiría una persona de 1996 el concepto actual de smartphone.

Y ni siquiera están todas las piezas todavía en el tablero. Por ejemplo, tenemos la inteligencia artificial, cuyo importante papel podemos empezar a intuir, pero todavía ni siquiera podemos cuantificar su influencia exacta en nuestro día a día en los próximos años.

Este es el futuro que yo creo que viene, un futuro en el que la interconectividad jugará un papel crucial en nuestras vidas y en nuestro día a día. Y por supuesto, en la medida de que esta interconectividad sea omnipresente, las demandas laborales irán acordes a esa nueva realidad. Es algo que ya pasa hoy en día, los trabajos relacionados con las nuevas tecnologías no tienen casi paro, mientras que la demanda de otros perfiles profesionales, incluso siendo cualificados, ha decaído. Por tanto, ¿habrá oportunidades de empleo? Por supuesto que sí. Pero yo creo que la pregunta interesante es: ¿estaremos preparados para cubrir esos empleos?

Estamos hablando de perfiles profesionales que ni siquiera existen hoy en día. Pasará algo parecido que ocurre con el perfil profesional “programador de aplicaciones Android”. Hace diez años ni siquiera existía ese concepto. ¿Cómo hemos aprendido los que finalizamos nuestros estudios de grado hace diez o quince años? Pues, evidentemente, aceptando que el aprendizaje no acaba con el título universitario. El aprendizaje continuo es algo que debe formar parte de tu vida diaria si quieres asegurar tu futuro laboral. No digo que tengas que dedicar 5 horas al día, de cada uno de tus días, a reciclarte. Pero lo que creo que está claro es que, con lo rápido que cambian los tiempos, no adoptar una postura de aprendizaje continuo no es una alternativa. Si esto es lo que ya ocurre a día de hoy, imagino que el futuro maximizará esta tendencia.

Por ejemplo, una persona de 20 años, una de 30 y una de 40, dentro de 20 años seguirán en el mercado laboral. Pero  en ese momento se demandarán perfiles laborales que todavía ni existen a día de hoy. En mi opinión, la única manera en la que un profesional puede estar preparado para este futuro es mantener una mentalidad abierta al cambio, y aceptar el aprendizaje y el reciclaje continuo como parte normal de tu vida profesional.

 

¿Qué aplicaciones crees que podrán incorporar los elementos como Arduino para hacernos la vida más sencilla?

Yo soy absolutamente fan de Arduino, casi un evangelista, diría yo.

Arduino ha abierto el campo del prototipado de sistemas electromecánicos a cualquier tipo de persona. Lo sacas de la caja, lo conectas al ordenador mediante USB, descargas el IDE (que, además de gratuito, contiene infinidad de ejemplos), y en cinco minutos estás haciendo proyectos. Y luego hay gran cantidad de componentes, de complementos que puedes conectar a tu placa, y que te permiten cosas increíblemente divertidas con poco tiempo, con poco esfuerzo, y con poco presupuesto. Arduino allana el camino para los creadores. Por ejemplo, un diseñador de producto, anteriormente limitado a los componentes físicos del producto, ahora puede también integrar la electromecánica, y programar fácilmente el comportamiento del sistema.

Un ejemplo que me encanta son los talleres de «robótica para niños» que cada vez proliferan más. Son talleres orientados para niños en los que muchas veces montan robots preconstruidos, pero demuestran que los kits de Arduino son tan fáciles, que hasta un niño los puede usar.

Por tanto, ¿qué aplicaciones espero de Arduino? Tengo muchas expectativas, no en la plataforma Arduino en sí misma, sino en las personas que lo usan para crear más y más cosas cada día.

Una expectativa que tengo a medio plazo, y pienso que soy realista en esto que voy a decir, es el advenimiento de la era de la robótica. Hasta hace poco el concepto «robot» era algo casi exclusivo de la ciencia ficcion. Pero, por ejemplo, casi sin darnos cuenta, ya tenemos robots limpiando nuestras casas.

¿Qué nos depara el futuro? Si juntamos el hardware capaz de realizar la tarea, con precios asequibles, con personas formadas y capaces (quiero creer que, por ejemplo, los talleres de «robótica para niños» pavimentan en cierta manera el camino, en este sentido), veremos que tenemos todos los ingredientes para una revolución tecnológica.

En mi opinión, Arduino es una pieza más de esa revolución. La generalización del uso de internet por el ciudadano medio, es una revolución comparable a otras revoluciones anteriores, como la industrial. Personas interconectadas entre sí, comunicadas, intercambiando información. Si al uso de internet como medio de comunicación lesumamos la facilidad actual para aprender a programar, el abaratamiento de técnicas de fabricación o prototipado como la impresión 3D, y la aparición de entornos como Arduino… en mi opinión se están juntando los ingredientes para una ola perfecta de creatividad. Lo puedes ver ahora mismo, abres YouTube, buscas «Arduino», y puedes ver cada día a más gente que, desde cualquier parte del planeta, y con recursos mínimos, construyen y convierten en realidad sus proyectos y sus ideas. Eso, para mí, es lo mejor de todo esto: ahora cualquier persona con interés suficiente, cualquier estudiante, puede tener encima de su escritorio las piezas necesarias para crear y desarrollar esa innovación que mejore nuestras vidas.

Curso de programación de aplicaciones multiplataforma con Python

En pocas semanas comienza la siguiente edición del curso de programación de aplicaciones multiplataforma con Python

Este curso está pensado tanto para usuarios nuevos del programa, que quieran aprender a crear sus propias aplicaciones desde cero, como para usuarios existentes que quieran actualizarse y aprender las novedades de las últimas versiones.

En este curso, que realizaremos a través de streaming, en directo, aprenderemos a desarrollar cualquier tipo de aplicación en Python

El curso se realizará en directo, qué tal forma que los alumnos podrán ver en tiempo real el contenido que se va impartiendo, y podrán realizar preguntas y plantear dudas que serán resueltas en la misma clase. 

Las clases se grabarán, y las grabaciones se facilitarán a los alumnos, para que puedan repasar el contenido de las clases en cualquier momento.

El objetivo de este curso es que los alumnos sean capaces de crear sus propios programas

Si deseas recibir más información o inscribirte al curso, puedes hacerlo enviando el siguiente formulario:

[contact-form-7 404 "No encontrado"]

Curso de Inteligencia Artificial

La inteligencia está cambiado la forma en la que nos relacionamos con el mundo, y estos cambios no han hecho más que empezar. Desde los automóviles que se conducen solos hasta la automatización de los puestos de trabajo, la IA está entrando en nuestras vidas, en nuestros trabajos, en nuestras carreras profesionales, en nuestros negocios, e incluso hasta en nuestros hogares, a un ritmo tan rápido que probablemente ni siquiera te has dado cuenta. Probablemente ahora mismo llevas en el bolsillo un dispositivo con inteligencia artificial.

Con este crecimiento exponencial, estamos al borde de una nueva revolución industrial. Pronto la inteligencia artificial será parte de tu día a día de la misma forma que un teléfono móvil, con la excepción de que la IA no tiene botón de apagado.

Lo más interesante es que esta vez, esta revolución va a permitir que las máquinas hagan tareas que ni siquiera el intelecto humano puede realizar. Imagínate cómo cambiará el mundo en los próximos 50 años!

Pero la tecnología no tiene por qué ser una amenaza: puede ser una oportunidad. Cualquier individual o empresa que cuente con la inteligencia artificial de su lado, podrá:

  • Estar al frente de la innovación en procesos y metodologías, asegurando su competitividad ante otras compañías que usen la IA y asegurando su futuro.
  • Lanzar nuevas líneas de negocio que antes eran impensables

¿Dónde pueden adquirirse los conocimientos necesarios para ser capaces de sacar el máximo provecho de la revolución que propone la inteligencia artificial?

Proponemos una manera directa y amena de acceder al conocimiento requerido para poner en marcha aplicaciones y proyectos de inteligencia artificial, de una forma rápida y eficaz, yendo directamente al grano.

Nos complace presentarte este curso de inteligencia artificial, para que puedas desatar el potencial completo de la inteligencia artificial y que puedas abrir incontables puertas y oportunidades.

Queremos presentar un curso hecho para todos aquellos perfiles que quieran sacar partido de la IA a cualquier nivel: Desde gerentes y directivos que desean comprender los beneficios que puede aportar la inteligencia artificial, arquitectos, ingenieros, y cualquier otro perfil responsable de dirigir equipos de trabajo en los que esté presente la IA, hasta perfiles técnicos encargados de interactuar directamente con la creación de este tipo de aplicaciones.

La inteligencia artificial ya está entre nosotros, y las empresas que la utilizan se benefician del potencial y de las nuevas posibilidades de negocio que se abren con esta nueva tecnología. Muchas empresas y empresarios se preguntan cual es,realmente, el funcionamiento de la IA. Cuando todos oímos en las noticias cada día de forma más frecuente que la inteligencia artificial va a cambiar el mundo, las pequeñas y medianas empresas se preguntan si están perdiendo el tren de la innovación, si quizás hay otras empresas de la competencia, a nivel local o a nivel global, que ya le están sacando partido, y si, para cuando quieran darse cuenta, ya será demasiado tarde.

Módulo 1:
La razón de existir de este primer módulo es proporcionar el conocimiento de entrada de estos sistemas, para que las personas que toman las decisiones en las empresas, puedan conocer la idoneidad de implantarlos, o cuales son las áreas donde pueden tener más cabida.
Módulo 2:
En el segundo módulo, implementamos los conocimientos mostrados en el primer módulo, en ejercicios prácticos con lenguajes de programación reales. De esta forma mostramos cómo implementar en la realidad sistemas de inteligencia artificial, de machine learning, visión artificial, vida artificial, y procesamiento del lenguaje natural.
Módulo 3:
El módulo 3 esta orientado a mostrar, paso a paso, ejercicios en los que desarrollamos proyectos avanzados de inteligencia artificial, aplicados a visión artificial, reconocimiento de formas en movimiento, procesamiento del lenguaje natural, y creación de sistemas de vida artificial.

¿Cual es el objetivo del curso?

El objetivo de este curso es proporcionar los fundamentos de conocimiento que permiten entender cómo funciona un sistema de inteligencia artificial, cómo piensa una IA, y los problemas que puede ayudar a resolver. El curso está enfocado a personas sin conocimiento previo de programación, para que cualquier persona, en cualquier estrato de la empresa, pueda comprender los entresijos de esta tecnología, y pueda tener el criterio necesario para implantar soluciones de IA en su empresa.

¿A quien va dirigido este curso?

Este curso va dirigido a cualquier persona que tenga interés en conocer cuál es el conocimiento real de un sistema de inteligencia artificial, como piensa un sistema de IA, y los beneficios que puede aportar a cualquier entorno, especialmente en el sector de la empresa. En el módulo 1, cualquier persona, de cualquier nivel y perfil, podrá comprender cómo funciona la inteligencia artificial, y tendrá el criterio necesario para poder implementar este tipo de sistemas, y decidir en qué entornos puede convenir más realizar este tipo de inversión. En los módulos 2 y 3, las personas con conocimientos de programación tendrán ejemplos paso a paso, desarrollados con metodología y código, acerca de cómo funcionan en la práctica estos sistemas de IA. Los ejercicios del curso se desarrollan paso a paso desde una hoja en blanco hasta el ejercicio completado, mostrando todos y cada uno de los detalles de la implementación de sistemas de inteligencia artificial.

Requisitos de acceso

El módulo 1 de este curso no tiene requisitos previos de acceso. Para cursar los módulos 2 y 3 es recomendable tener conocimientos básicos de cualquier lenguaje de programación, a nivel de: estructuras de datos (variables y matrices), estructuras de control (bucles y condicionales), programación orientada a funciones y a objetos, así como uso básico de bases de datos de tipo SQL. En el caso de que el alumno no disponga de estos conocimientos, podemos ofrecerle complementos de formación para adquirirlos.

¿En qué se diferencia este curso del resto?

Este curso explica tanto los fundamentos como los conceptos avanzados de la inteligencia artificial mediante explicaciones claras y sencillas, y ejemplos de código completos. El formador que imparte el curso tiene una amplia trayectoria en formación de alto rendimiento, y goza de popularidad en cuanto a proporcionar explicaciones claras a materias complejas, facilitando el aprendizaje a los alumnos del curso.

¿Qué puede hacer el alumno al acabar el curso?

Actualmente, en el sector laboral hay necesidad de incorporar a profesionales que tengan conocimientos de todas las áreas relacionadas con la ciencia de los datos (data science). Tras la formación, las empresas participantes podrán implementar, con criterio, metodologías y sistemas de inteligencia artificial, haciendo que sus negocios sean más competitivos. Los profesionales apuntados al curso contarán con conicimientos valiosos desde el punto de vista de la empleabilidad.

Preguntas frecuentes:

¿Es necesario tener conocimientos previos de programación?

Para el módulo 1 del curso no es necesario tener experiencia previa en programación. Los módulos 2 y 3 si que la requieren, y te la podemos ofrecer de forma complementaria.

¿Cuáles son los lenguajes de programación que se usan en el curso?

En el curso se usan lenguajes de programación como Java, Javascript, Python o R. Realmente, el lenguaje de programación que se use es poco relevante, ya que en este curso se enseñan y se muestran metodologías de programación aplicables a cualquier lenguaje.

Resumen del temario de los cursos:

Módulo 1:
-Introducción a la inteligencia artificial
-Redes neuronales.
-Machine learning.
-Deep learning.
-Visión artificial.
-Procesamiento del lenguaje natural.
-Vida artificial.

Módulo 2:
-Aprendizaje por parte de la máquina.
-Aprendizaje supervisado y autónomo.
-Aplicación de sigmoides.
-Mínimo de esfuerzo de aprendizaje.
-Reconocimiento de formas con redes neuronales.

Módulo 3:
-Visión artificial
-Reconocimiento de formas stéreo
-Detección de movimiento
-Cálculo iterativo
-Computación multinúcleo
-Vida artificial avanzada

Precio de los cursos:

Los alumnos pueden matricularse de los módulos de forma individual. El coste de los módulos del curso es el siguiente:
Módulo 1: 100€
Módulos 1 y 2: 240€
Módulos 1,2 y 3: 350€

Si quieres obtener mas información acerca de los tres módulos, puedes hacerlo a continuación:


IA para todos – primer módulo del curso pensado para que todas las personas, aún sin conocimientos de programación, puedan entender y aprovechar las oportunidades que nos ofrece la inteligencia artificial

Saber más


Programando aplicaciones de IA – segundo módulo del curso, en el cual ponemos en funcionamiento los conceptos principales del curso, permitiéndote desarrollar aplicaciones prácticas que usan inteligencia artificial

Saber más


IA hasta el límite – Tercer módulo del curso en el que te mostramos cómo sacar el máximo partido a la inteligencia artificial desarrollando aplicaciones de visión artificial, procesamiento del lenguaje, y combinación con Big Data, entre otros

Saber más


¿Qué vas a encontrar en el curso?

  1. Competencias completas, desde nivel completamente de entrada, hasta nivel experto. Cada uno de los ejercicios del curso comienza con una página en blanco, en la que escribimos el código desde cero. De esta forma puedes seguir cada uno de los pasos y puedes comprender el funcionamiento línea a línea del código, y entender la función de cada una de las líneas.
  2. Plantillas de código: Podrás descargar cada uno de los ejercicios el curso, completamente finalizados por el formador del curso, y utilizarlos como plantillas para tus propios proyectos, o importarlos como librerías. De esta forma podrás aprovechar el potencial del código ya escrito y personalizar su comportamiento simplemente cambiando unas pocas líneas
  3. Contenido claro e intuitivo – Mientras que otros cursos te bombardean con densa teoría, especialmente en el campo de la IA, creemos que es importante que desarrolles una profunda comprensión no solo de lo que estás haciendo, sino de la razón por la que lo estás haciendo. Es por esto que nos enfocamos, más que en la teoría matemática, en desarrollar tu comprensión por cada uno de los ejercicios del curso.
  4. Soluciones del mundo real – Cada ejercicio seleccionado en este curso responde a proyectos que suelen solicitar a nuestra empresa, en el campo de la inteligencia artificial. Son ejercicios pensados para darte una perspectiva realista del día a día de cualquier empresa en este sector, y su objetivo es que tengas muestras lo más reales posibles de la aplicación de la inteligencia artificial al mundo empresarial.
  5. Soporte durante la realización del curso – Estamos comprometidos con nuestros alumnos. Este curso no es sólo una colección de materiales audiovisuales: incluye también diferentes mecanismos mediante los cuales los alumnos están en constante contacto con el formador del curso, para permanecer actualizados y para poder consultar y resolver cualquier tipo de duda relacionada con el contenido de la formación.

Formador del curso:

Jose Vicente Carratalá es un formador con 20 años de experiencia en la impartición de formaciones de alto rendimiento en campos como la programación o la robótica.

Puedes consultar referencias a cursos anteriores como estos:

Perfil y listado de cursos como instructor en Linkedin Learning

Taller de prototipado de un robot autónomo en la Universidad Politécnica de Valencia

Más información:

    Curso de programación videojuegos 2D con HTML5

    En pocas semanas comienza la siguiente edición del curso de programación de videojuegos 2D con HTML5. Con este curso podrás crear tus propios juegos en 2D y en 2.5D

    En este curso te enseñaremos a crear diferentes tipos de juegos bidimensionales, que podrás ejecutar en el navegador web de tu ordenador, o en infinidad de dispositivos compatibles.

    Este curso está pensado tanto para usuarios nuevos del programa, que quieran aprender a crear sus propias aplicaciones desde cero, como para usuarios existentes que quieran actualizarse y aprender las novedades de las últimas versiones.

    En este curso, que realizaremos a través de streaming, en directo, aprenderemos a instalar distribuciones Linux en el cliente y a manejarlas mediante línea de comando en el servidor.

    El curso se realizará en directo, qué tal forma que los alumnos podrán ver en tiempo real el contenido que se va impartiendo, y podrán realizar preguntas y plantear dudas que serán resueltas en la misma clase. 

    Las clases se grabarán, y las grabaciones se facilitarán a los alumnos, para que puedan repasar el contenido de las clases en cualquier momento.

    El objetivo de este curso es que los alumnos sean capaces de crear sus propios videojuegos 2D y 2.5D

    Si deseas recibir más información o inscribirte al curso, puedes hacerlo enviando el siguiente formulario:

    [contact-form-7 404 "No encontrado"]

    Curso de programación de aplicaciones web

    En pocas semanas comienza la siguiente edición del curso de Linux. Con este curso aprenderás crear y programar completas aplicaciones web, que te permitirán poner tus proyectos en marcha.

    Con este sistema operativo puedes disfrutar de tu ordenador de sobremesa y de tu ordenador portátil con las mismas prestaciones que un sistema propietario.Además, en este curso, también te enseñamos a instalar, configurar, y sacarle partido a servidores que utilicen el sistema operativo Linux.

    Este curso está pensado tanto para usuarios nuevos del programa, que quieran aprender a crear sus propias aplicaciones desde cero, como para usuarios existentes que quieran actualizarse y aprender las novedades de las últimas versiones.

    En este curso, que realizaremos a través de streaming, en directo, aprenderemos a instalar distribuciones Linux en el cliente y a manejarlas mediante línea de comando en el servidor.

    El curso se realizará en directo, qué tal forma que los alumnos podrán ver en tiempo real el contenido que se va impartiendo, y podrán realizar preguntas y plantear dudas que serán resueltas en la misma clase. 

    Las clases se grabarán, y las grabaciones se facilitarán a los alumnos, para que puedan repasar el contenido de las clases en cualquier momento.

    El objetivo de este curso es que los alumnos sean capaces de crear imágenes y animaciones 3D

    Si deseas recibir más información o inscribirte al curso, puedes hacerlo enviando el siguiente formulario:

    [contact-form-7 404 "No encontrado"]

    Curso de Linux (clientes y servidores)

    En pocas semanas comienza la siguiente edición del curso de Linux. Con este curso aprenderás a manejar este sistema operativo de software libre, tanto en su versión de cliente como en su versión de servidor.

    Con este sistema operativo puedes disfrutar de tu ordenador de sobremesa y de tu ordenador portátil con las mismas prestaciones que un sistema propietario.Además, en este curso, también te enseñamos a instalar, configurar, y sacarle partido a servidores que utilicen el sistema operativo Linux.

    Este curso está pensado tanto para usuarios nuevos del programa, que quieran aprender a crear sus propias aplicaciones desde cero, como para usuarios existentes que quieran actualizarse y aprender las novedades de las últimas versiones.

    En este curso, que realizaremos a través de streaming, en directo, aprenderemos a instalar distribuciones Linux en el cliente y a manejarlas mediante línea de comando en el servidor.

    El curso se realizará en directo, qué tal forma que los alumnos podrán ver en tiempo real el contenido que se va impartiendo, y podrán realizar preguntas y plantear dudas que serán resueltas en la misma clase. 

    Las clases se grabarán, y las grabaciones se facilitarán a los alumnos, para que puedan repasar el contenido de las clases en cualquier momento.

    El objetivo de este curso es que los alumnos sean capaces de crear imágenes y animaciones 3D

    Si deseas recibir más información o inscribirte al curso, puedes hacerlo enviando el siguiente formulario:

    [contact-form-7 404 "No encontrado"]

    Curso de desarrollo de videojuegos y aplicaciones interactivas en 3D con Unity

    En pocas semanas comienza la siguiente edición del curso de Unity. En esta edición del curso aprenderemos a crear videojuegos y aplicaciones interactivas en 3D utilizando younity, que es el motor de creación de videojuegos más utilizado en la actualidad

    Gracias a este completo entorno de desarrollo, podrás crear fácilmente tus juegos en 3D y aplicaciones interactivas de tipo empresarial, de una forma rápida, y sencilla. Además, podrás publicar tus juegos en múltiples plataformas, y personalizar su funcionamiento utilizando un sencillo lenguaje de programación

    Este curso está pensado tanto para usuarios nuevos del programa, que quieran aprender a crear sus propias aplicaciones desde cero, como para usuarios existentes que quieran actualizarse y aprender las novedades de las últimas versiones.

    En este curso, que realizaremos a través de streaming, en directo, aprenderemos a crear tanto videojuegos en 3D como aplicaciones interactivas que usen las tres dimensiones

    El curso se realizará en directo, qué tal forma que los alumnos podrán ver en tiempo real el contenido que se va impartiendo, y podrán realizar preguntas y plantear dudas que serán resueltas en la misma clase. 

    Las clases se grabarán, y las grabaciones se facilitarán a los alumnos, para que puedan repasar el contenido de las clases en cualquier momento.

    El objetivo de este curso es que los alumnos sean capaces de crear imágenes y animaciones 3D

    Si deseas recibir más información o inscribirte al curso, puedes hacerlo enviando el siguiente formulario:

    [contact-form-7 404 "No encontrado"]

    Curso de desarrollo de aplicaciones informáticas con C#

    En pocas semanas comienza la siguiente edición del curso de C#. En esta edición del curso aprenderemos a crear programas informáticos de escritorio usando las tecnologías de .net, concretamente en este caso utilizando el lenguaje de programación C#.

    Gracias a este potente lenguaje de programación podrás crear tus propias aplicaciones tanto en el escritorio como para otros fines, Tales como por ejemplo para sitios web, utilizando una de las tecnologías más demandadas actualmente dentro del mercado laboral

    Este curso está pensado tanto para usuarios nuevos del programa, que quieran aprender a crear sus propias aplicaciones desde cero, como para usuarios existentes que quieran actualizarse y aprender las novedades de las últimas versiones.

    En este curso, que realizaremos a través de streaming, en directo, aprenderemos a desarrollar aplicaciones informáticas creadas utilizando el lenguaje de programación C#

    El curso se realizará en directo, qué tal forma que los alumnos podrán ver en tiempo real el contenido que se va impartiendo, y podrán realizar preguntas y plantear dudas que serán resueltas en la misma clase. 

    Las clases se grabarán, y las grabaciones se facilitarán a los alumnos, para que puedan repasar el contenido de las clases en cualquier momento.

    El objetivo de este curso es que los alumnos sean capaces de crear imágenes y animaciones 3D

    Si deseas recibir más información o inscribirte al curso, puedes hacerlo enviando el siguiente formulario:

    [contact-form-7 404 "No encontrado"]

    Curso de Blender 3.0

    En pocas semanas comienza la siguiente edición del curso de Blender. En esta nueva edición aprenderemos a crear imágenes y animaciones en 3D usando la última versión del programa, la 3.0.

    En esta versión se han introducido múltiples mejoras, tanto en la interfaz de usuario, que cambia radicalmente con respecto a versiones anteriores, como en la inclusión de nuevas y potentes herramientas de modelado, de render, escultura, y simulación, entre otras.

    Este curso está pensado tanto para usuarios nuevos del programa, que quieran aprender a crear sus propias animaciones desde cero, como para usuarios existentes que quieran actualizarse y aprender las novedades de las últimas versiones.

    En este curso, que realizaremos a través de streaming, en directo, aprenderemos a usar el programa Blender 3D para crear nuestros propios proyectos de imagen y animacion tridimensional

    El curso se realizará en directo, qué tal forma que los alumnos podrán ver en tiempo real el contenido que se va impartiendo, y podrán realizar preguntas y plantear dudas que serán resueltas en la misma clase. 

    Las clases se grabarán, y las grabaciones se facilitarán a los alumnos, para que puedan repasar el contenido de las clases en cualquier momento.

    El objetivo de este curso es que los alumnos sean capaces de crear imágenes y animaciones 3D

    Si deseas recibir más información o inscribirte al curso, puedes hacerlo enviando el siguiente formulario:

    [contact-form-7 404 "No encontrado"]