Curso de Fundamentos del Software

Introducción a los conceptos recurrentes en el desarrollo del software, entornos y herramientas básicas
Material disponible
Básico
39 Clases 43 h
Este es el módulo que da comienzo al Máster de Programación y Diseño de Software, en el que se abordan los conceptos esenciales, que se repiten a lo largo de todas las disciplinas del desarrollo de software. Son conceptos estructurales como complejidad, eficiencia, asociación y muchos otros, que se encuentran en el ámbito de la programación, pero también en el ámbito de la vida cotidiana.

Durante este curso abordaremos muchos de los conceptos teóricos de necesario conocimiento para todo el Máster, pero además iremos realizando prácticas de lenguajes para ir calentando motores antes de entrar de lleno con la programación. Veremos lenguajes como HTML, XML, SVG y otros, que nos ofrecerán una vía para la realización de prácticas y nos prepararán para afrontar más adelante los conocimientos de programación, en futuros cursos del Máster.

Paralelamente, estudiaremos y trabajaremos con varias herramientas necesarias para el desarrollo, como editores de código y el sistema de control de versiones Git, que necesitaremos tanto para publicar las prácticas del máster como herramienta indispensable para el control de proyectos de software por cualquier desarrollador.

Qué aprenderé en el Curso de Fundamentos del Software

  • Recursividad
  • Conceptos fundamentales en el ámbito de la programación
  • Formas de formalizar, caracterizar, visualizar y pensar una idea o problema
  • Uso de la abstracción en la informática
  • Compromisos y consecuencias en la informática
  • Programación en coordinación con otros desarrolladores y proyectos con GIT
  • HTML y XML
  • JSON Y YAML
  • Markdown
  • UML y PlantUML
  • Visual Studio Code

Objetivos del curso

  • Entender los conceptos esenciales, recurrentes a lo largo de todas las disciplinas del desarrollo de software.

  • Aportar una base de conocimiento a los estudiantes que permita despejar ruido en el aprendizaje de las siguientes materias.

  • Practicar con lenguajes diversos que nos permitan empezar a entender cómo codificar, siguiendo una sintaxis y estructura determinados, con la intención de suavizar la curva de aprendizaje cuando lleguemos a programación en futuros cursos.

  • Por último, aprender a manejar herramientas básicas de desarrollo que necesitaremos para realizar las prácticas del Máster y por supuesto, en el día a día del desarrollo.

Por qué debes aprender Fundamentos del Software

Es fundamental establecer las bases de una serie de conceptos que se van a ver en todas las disciplinas del desarrollo y a lo largo de todo el máster. Así podremos disponer de un lenguaje común y entendido por todos los estudiantes y que también apreciarás en el día a día de la profesión.

Es una estupenda manera de introducirse en el mundo de la tecnología, sea cual sea la actividad que vayas a realizar en el futuro. Además aportará el conocimiento de un set de herramientas iniciales necesarios si te vas a dedicar al desarrollo.

Qué tengo que saber

Este curso no tiene requisitos iniciales. Es suficiente con saber manejar un ordenador. La única necesidad es tener una mente despierta y abierta para aprender.

Clases y contenidos

Introducción del curso de Fundamentos del software Gratis

En esta clase vemos la introducción del curso, con los conceptos recurrentes que usaremos en todas las disciplinas del desarrollo de sofware.

Además vemos una introducción a Git, mayormente práctica, para que se sepa cómo se publicarán las prácticas a lo largo del curso.

Patrones

En esta clase explicamos qué son patrones, en la vida real y en el mundo de la programación por supuesto también. Para los avanzados, aclarar que no se trata de hablar de patrones de diseño de software, sino el concepto en general que es transversal a todas las disciplinas.

Patrones y UML
  • Conceptos importantes en programación como recurrente, iterativo y recursivo.
  • UML, tipos de diagramas y cómo se realizan mediante herramientas de interfaz gráfica, como StarUml
Modelo de dominio Conecta 4

En este vídeo vemos diversas soluciones de prácticas del modelo de dominio del juego Conecta 4 y las correcciones de Luis y de los críticos.

Conocimiento

En esta unidad del máster veremos el tema de conocimiento, donde abordamos los lenguajes en general, conjuntos, clases, objetos... Recordar que no estamos en programación, sino que se trata de aterrizar conceptos de la vida real, entendiendo sus definiciones, lo que nos ayudará a ir muy veloces cuando lleguemos a programación.

Prueba de patrones-UML

En este vídeo tenemos la resolución de la prueba propuesta en el tema de patrones-UML

Estructuras, clasificaciones y métodos

Esta es la segunda parte del tema de conocimiento, en la que se vieron asuntos como los tipos de relaciones, las estructuras, las clasificaciones y sus estrategias. Además se vieron métodos creados a lo largo de la historia de la ciencia y cómo nos atañen a los desarrolladores.

Resolver prácticas modelos de dominio Conecta4 y Klondike

En este vídeo veremos unas cuantas soluciones de diagramas de modelo de dominio de los juegos Conecta4 y Klondike, propuestas por los estudiantes, con las correcciones sugeridas del profesor.

PlantUML

Comenzamos el tema de PlantUML, que es el lenguaje declarativo que usaremos para construir todo tipo de diagramas para el curso, principalmente de UML. Hemos explicado cómo se declaran las clases, sus propiedades y métodos y cómo se dibujan las relaciones entre clases de todos los tipos vistos durante el máster.

Prueba de unidad de conocimiento

En este vídeo se resuelve la prueba de la unidad de conocimiento, con la corrección de las preguntas respondidas por los artistas y críticos.

Detalle del lenguaje PlantUML

En este vídeo veremos todo el detalle del lenguaje PlantUML, para la creación de los distintos tipos de diagramas que soporta.

Modelo de dominio del Klondike

Corrección en vivo de varios diagramas del modelo de dominio del juego del Klondike (solitario de Windows) realizados por estudiantes.

Qué es complejidad y por qué es importante

Esta es la primera parte de la teoría sobre el concepto de complejidad. Veremos qué son sistemas, qué son sistemas complejos, por qué es importante para que nosotros podamos realizar el software con éxito. Además explicamos qué es la eficacia y la eficiencia y por qué cada uno de estos conceptos tiene importancia en el desarrollo de software

Prueba de la unidad PlantUML

Cerramos la unidad temática con la corrección de la prueba realizada para la unidad de PlantUML.

Teoría de Complejidad, parte 2

Segunda parte de la teoría de la complejidad, en la que se explican entre otras cosas 4 conceptos que debemos tener siempre muy presentes y claros en la cabeza: Abstracción, Encapsulación, Modularidad, Jerarquía.

Nuevas propuestas de modelo de dominio Conecta 4

En este vídeo veremos la corrección de algunas prácticas presentadas, con nuevas propuestas del modelo de dominio del juego Conecta 4.

XML

Veremos qué es el lenguaje XML, cuáles son sus objetivos, qué nos ofrece XML y qué ventajas tenemos si usamos XML para la interoperabilidad entre sistemas. Además veremos qué lenguajes existen dentro del ecosistema de XML y finalmente la sintaxis permitida.

Prueba unidad de Complejidad

En este vídeo se corrigen las preguntas formuladas en la prueba de la unidad de complejidad.

Teoría de XML (segunda parte) + JSON + YAML

Este es el segundo bloque de teoría de la unidad de XML, JSON y YAML. Veremos el final de los contenidos relacionados con XML y los bloques de JSON y YAML.

Corregir práctica XML y modelo de dominio Klondike

En esta clase vamos a corregir prácticas realizadas hasta la fecha en distintos laboratorios. Se verá el modelado en XML de la historia de una partida de Klondkie y además todo el modelo de dominio de Klondike que se ha ido realizando a lo largo de las últimas semanas del curso.

Software

Veremos qué es el software, con un poco de su historia, y para qué se quiere el software. Además comenzaremos a ver cómo se realiza el software, abordando su complejidad.

Corrección de la prueba de XML - JSON - YAML

En este vídeo veremos cuáles son las preguntas de la prueba de la unidad de XML, JSON y YAML, junto con las correcciones realizadas por Luis.

Proyectos de software

En esta sesión vemos la segunda parte de la teoría de la unidad de Software. Se explicará cuáles son las variables existentes en un proyecto de software, establecidas en el triángulo de hierro: Tiempo, costes, requisitos (features) y en medio la calidad. Veremos cómo están relacionadas y cómo se pueden ajustar. Además veremos cómo la calidad es fundamental para conseguir el éxito en los proyectos de software.

Revisión del modelo de dominio de Conecta 4

Volvemos a corregir prácticas del modelo de dominio del juego Conecta 4 realizadas durante las últimas semanas. Ya nos vamos acercando en muchos casos a diagramas que expresan muy bien el vocabulario y las relaciones entre las entidades del mundo real.

Disciplinas del software

Nos metemos de lleno en las disciplinas del software, lo que nos dará una idea muy global de los distintos planos de la profesión de desarrollador. Explicaremos qué incluye cada disciplina, no profundamente sino de manera resumida, por establecer unas ideas en común sobre qué disciplinas existen y qué incluye cada una.

Prueba unidad Software

En este vídeo tenemos la parte dedicada a la prueba, con preguntas relacionadas con la unidad "Software".

Disciplinas del software II

Continuamos con el tema de las disciplinas del software, explicando desde el análisis, el diseño, pruebas, despliegue y cómo se relacionan entre sí.

Diagramas de estado y de secuencia juegos Conecta 4 y Klondike

En este vídeo se corrigen prácticas presentadas durante la semana, de los juegos Klondike y Conecta 4. En este caso se corrigen solamente los diagramas de estado, o en algunos casos diagramas de secuencia del modelo de dominio.

DOM (Document Object Model)

En este vídeo veremos qué es el DOM, qué vino a solucionar. Cómo se define el DOM, su modelo de dominio y dónde se aplica, tanto en el mundo de la web como en documentos como el XML. Qué lenguajes se usan para acceder al DOM y trabajar en XML o transformar la manera de presentar los documentos, abordando específicamente Xpath.

Corregir prueba de disciplinas del software

En este caso la prueba de la unidad se centra sobre todo en disciplinas del software, haciendo analogías con otros tipos de negocios del mundo real.

SVG

En esta clase hablaremos del lenguaje SVG, sin intención de describir exhaustivamente el lenguaje, sino más bien para que entendamos cómo se puede crear un vocabulario de XML que sirva para hacer algo tan impresionante como cualquier tipo de dibujo. Veremos que SVG soluciona diversos problemas, reutilizando ideas y conceptos existentes en XML y la web.

Evolución de las tecnologías de publicación hasta llegar a la web

Se explicará cómo han ido evolucionando las tecnologías de publicación, desde mitad del siglo pasado cuando se inventaron los documentos con hiperenlaces, hasta el nacimiento de la web en 1991.

Diagramas de estado Conecta4 y Klondike

Corregimos diagramas de estado de los juegos Conecta4 y Klondike realizados durante la última práctica.

La Web

En este vídeo tendremos un resumen del mundo de las tecnologías de la web. Un recorrido histórico a los lenguajes y tecnologías que han ido circulando por la web y cómo hemos llegado a tener una plataforma para cualquier tipo de aplicación en un medio que fue pensado para otra cosa. Cómo todas las tecnologías han luchado en una guerra que, afortunadamente, los estándares han conseguido zanjar.

Prueba de DOM y SVG

Se realizaron una serie de preguntas y respuestas sobre la unidad de DOM y SVG.

Lenguaje HTML

Explicamos el lenguaje HTML, no de manera exhaustiva, sino con la intención de ver cómo es un lenguaje basado en las ideas de SGML, similar a XML pero con otro vocabulario. Veremos la estructura, las etiquetas, los usos, virtudes y defectos de HTML.

Práctica de HTML

Corregimos las prácticas propuestas sobre HTML, viendo el modelado de las interfaces de Klondike y Conecta4, junto con el contenido de un curriculum propuesto.

CSS Lenguaje, usos y selectores

Qué es CSS, para qué y cómo lo usamos. Veremos las bases de CSS, como la estructura del lenguaje y temas tan importantes como la especificidad y las reglas de aplicación de estilos ante colisiones. Luego se explicará con detalle todo el tema de selectores de CSS.

Lenguaje CSS II

En esta clase avanzamos sobre el lenguaje CSS. Veremos cómo aplicar los estilos, los atributos, unidades posibles, el modelo de caja, etc.

Valoraciones

Luise

Luis Guillermo Márquez Cañas

Richard González

La Mejor Experiencia

ANDRES KAMYCKI

Tomás De Anta

Yojan David Castellanos Peña

Joamna

Excelente!

Sergio

Un grande Luis! Y Migue, por supuesto.

Jonathan Restan

Juan Andrés Candido Segovia

Bastante claro en las explicaciones y muy dinamico el curso

Juan Carlos Gaibor

Magnífico. He buscado por mucho tiempo un máster q explique desde cero la programación y creo que lo he encontrado.

Jose Caicedo

Sergio Bou Garcés

Interesante y entretenida pero....las clases hay que verlas 2 o 3 veces para coger todos los conceptos., para alguien que empieza realmente desde cero ....es muy "denso" este inicio.....Gracias por vuestro trabajo y especialmente a Luis .

Leonardo Arena

muy practica

Andres Cubillos Salazar

Kenny Jordan Tinoco Cerda

¡Un gran curso! Una exquisita exposición de información muy interesante y relevante.

Eduardo A. F.

todavia es pronto para valorarlo pero por ahora todo bien. Quizas hubiera estado bien tener el material que sigue Luis en un dominio para poder estudiarlo sin necesidad de descargar el repo.

Piero Luyo

Pablo Domínguez

Antonio Cortes

Me encanta, es fasinante la profundidad con las que explica Fernandez

Marcos Diaz

Con este curso vas a cambiar tu forma de ver y persar, sobre el software, muy pero muy recomendable

José Luis Marín Escamilla

El mejor curso de habla hispana que he tomado, es tener lo mejor de la educación superior europea al alcance de las manos. Este tipo de cursos si pueden sustituir la formación universitaria, en caso de ser autodidactas.

Eva Fernández

Profesor de 10!!!

Jorge62

Abarca mucho pero sin profundidad, no se pueden ver muchos lenguajes, cada uno en un rato y luego asumir que ya sabemos tal y cual...

Gabriel Diego Cejas

Fue un excelente curso, Luis explica los temas de forma excelente.

Manuel Rosendo Castro Iglesias

Hay cosa que flojea, otras estupendas, y otras demasiado densas se necesitaría más detalle, en general bastante bien, no perfecto pero, muy bien.

Antonio Berbel Gonzalez

Luis es un profesor genial. Gracias a este máster y al anterior he aprobado una oposicion de gestion informatica

Cristo Carlos López Manzano

Me pareció muy interesante el curso, ademas al ser videos permitía volver a verlos mas tarde para terminar de comprender algunos temas.

Martín Juárez Gutiérrrez

Si buscas como modelar la realidad, este es el curso que debes tomar

¿Conoces nuestra tarifa plana?

Toda la formación de EscuelaIT, con más de 200 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.

Suscríbete