Bienvenido al Curso

1

Introducción al curso básico de algoritmos y estructuras de datos

Introducción a los algoritmos

2

¿Qué entiende una computadora?

3

Lenguajes de programación

4

Estructuras de datos

5

¿Qué es un algoritmo?

6

Metodología para la construcción de un algoritmo

7

Variables y tipos de datos

8

User defined data types

9

Instalando Ubuntu Bash en Windows

10

Creando nuestro user defined data type

11

Abstract Data Types básicos: Lists, Stacks, Queues

12

Explicación gráfica Data Types básicos

13

Glosario de funciones para Abstract Data Types

14

Clases y objetos

15

Creando tu primera Queue: Arrays

16

Creando tu primera Queue: implementación.

17

Creando tu primera Queue: implementar la función enQueue

18

Creando tu primera Queue: implementar la función deQueue

19

Creando tu primera Queue: main code

Algoritmos de ordenamiento

20

Algoritmos de ordenamiento

21

Bubble sort

22

Bubble sort: implementación

23

Bubble sort: main code

24

Insertion sort

25

Desafío: implementa un algoritmo de ordenamiento

Recursividad

26

Recursividad

27

La función Factorial, calculando el factorial recursivamente

28

Manejo de cadenas de caracteres

29

Arte: Generando arte recursivo

Divide and conquer y programación dinámica

30

Divide and Conquer (divide y vencerás)

31

Qué es la programación dinámica (divide y vencerás v2.0)

32

MergeSort

33

Desafío: Buscar el algortimo más rápido de sort

34

Implementando QuickSort con Python

35

Implementando QuickSort con Python: main code

Algoritmos 'Greedy'

36

Qué son los Greedy Algorithm

37

Ejercicio de programación greedy

38

Ejercio de programación greedy: main code

Grafos y árboles

39

Grafos y sus aplicaciones

40

Árboles

¿Cómo comparar Algoritmos?

41

Cómo comparar algoritmos y ritmo de crecimiento

¿Qué sigue?

42

Cierre del curso y siguientes pasos

Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Metodología para la construcción de un algoritmo

6/42
Recursos

Los pasos recomendados para desarrollar un algoritmo son los siguientes:

  1. Definición del problema
  2. Análisis del problema
  3. Diseño del algoritmo
  4. Verificación o pruebas

Para la definición del problema debemos obtener los siguientes elementos:

  • Entradas: ¿Qué se necesita para realizar los pasos?
  • Salidas: ¿Qué se obtiene al final del algoritmo?
  • Tipos de datos involucrados: Textos, números, listas, etc.

Aportes 105

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Cuando estoy escribiendo codigo y estoy estancado siento que me ayuda demasiado a avanzar el hacerme las preguntas correctas pensando en el algoritmo especifico del trozo de codigo que quiero crear.

Pensar bien es hacerse buenas preguntas:

Tomando como framework lo que comparte el profe , comparto mis buenas preguntas

Definición del problema

  • ¿Qué problema quiero resolver?
  • ¿Que resultado quiero lograr?
  • ¿Que quiero especficamente? Visualizalo

Análisis del problema

  • ¿Qué necesito para alcanzar ese resultado?
  • ¿Cómo obtengo eso que necesito?

Diseño del algoritmo

  • Escribe el codigo paso a paso para alcanzar el resultado

Verificación o pruebas

Consegui el resultado:

  • Genialllllllll
  • ¿Es reutilizable, efectivo este codigo?
  • ¿Como lo puedo mejorar?

No consegui el resultado:
Visualiza el paso a paso en tu mente (a veces da pereza lo es, a mi tambien pero hazlo)

  • ¿Que me falta?
  • ¿Que hice mal?
  • ¿Donde esta el error?
  • ¿Que necesito cambiar?

Por que no recomiendas utilizar pseudocódigo?

Excelente explicación profe.
Para recordar:

  1. Definición del problema
  2. Análisis del problema
  3. Diseño del algoritmo
  4. Verificación o pruebas

IMPORTANTE

Los algoritmos, nos ayudan a tener la logica de programacion que necesitamos para resolver un problema, es decir muchas veces nos encontramos con problemas de programacion que no sabemos ni por donde empezar o si lo hacemos no lo hacemos correctamente, entonces los algortimos basicamente seran una guia para aplicar la logica programatica en el proyecto a realizar.
–> Por ende siempre es bueno tener esto en cuenta al momento de programar o buscar la solucion a un problema, recuerda que todo se puede hacer paso por paso y no simplemente hacerlo con prueba y error

Pienso que una buena practica al momento de hacer pruebas, seria implementar datos, que den lugar a errores no triviales (división entre cero, raíces complejas, lógicas débiles… ) de manera que si no nos da error, nos daría indicio de que algo esta pasando con nuestro código, otro consejo seria el que dio freddy en el curso de programación básica, que es cuando probamos el código, por segmentos del mismo.

El uso de Pseint (un lenguaje de pseudocódigo en español) está muy difundido en las universidades. Pseint te permite muchísimas cosas como escribir el propio pseudocódigo, pasarlo a diagramas e incluso “traducirlo” a código real.
Larga vida a pseint.

Recuerda que un algoritmo no debe de dar resultados ambiguos

Algoritmo:

Definir el problema.
Tener en cuenta de manera excelente que necesito para resolverlo.

Analizar el problema.

Diseño del algoritmo.

Verificación o pruebas.

Datos del problema:

Entrada.
Salida.

Tipo de datos:

Numeros enteros, reales, complejos.
Texto, letras, palabras, frases.
Otros.

Los propios pasos para resolver un algoritmo, como los que estan escrito en la descripcion de este video, son un algoritmo.

Ray Dalio, comparte unos principios para su vida y trabajo en lo que él llama el proceso de 5 pasos que creo que son aplicables tambien para construir algoritmos

El principio es:
Cuando estes ejecutando en un paso, no pienses en el otro

En la practica significa que cuando estes definiendo el problema no pienses si este tiene solucion, cuando estes verificando no pienses en el diseño del algoritmo, a menos que habra fallas y necesites volver a ese paso

Un algoritmo es una secuencia de pasos que resuelven un problema.

Esta clase es fundamental para poder programar y resolver problemas correctamente. Muchas gracias

Jajaja, en las clases básicas de programación, universidad, etc… te obligan aprender pseudocódigo. Me alegra que aqui no te lo recomienden porque siempre me ha parecido una perdida de tiempo habiendo formas mas sencillas de plantear un problema y diseño de la misma. Para hacer pseudocódigo mejor me tiro a programar de una xd. Es mi opinión y experiencia usándolo aunque puede que a otras personas les funcione.

En robótica los datos tambien pueden ser de variables físicas. Cómo temperatura, humedad, etc que al final deben ser interpretadas como numéricas

Clase 6. Metodología para la construcción de un algoritmo
_
1. Pasos para la construcción de un algoritmo
i. Definición del problema
 Tener muy en claro la definición del problema
 Si es el caso, será necesario pedirlo
ii. Análisis del problema
 Qué necesito para resolverlo
 Cómo lo voy a hacer
 Qué necesito dar como un resultado final
iii. Diseño del algoritmo
 Escribirlo, haciendo uso de diagrama de flujos
 Realizamos el diseño del algoritmo, luego lo programamos

iv. Verificación o pruebas
 Probar tantos casos como sean necesarios
 Un algoritmo no debe de dar resultados ambiguos
_
2. Datos a extraer del problema
i. Entrada
 ¿Qué se necesita para realizar los pasos?
ii. Salida
 ¿qué se obtiene al final del algoritmo?
iii. Tipos de datos
 Números: enteros, reales, complejos
 Texto: letras, palabras, frases
 Otros

pregunta. en cursos mas avanzados tocaran el tema de las Triplas de hoare. Analisis y verificacion de algoritmos?. seria un complemento super bueno.

me dio risa, sobre la definición del problema en la empresa, sí no te la dan tienes que pedirla XD jajaj

se deben seguir los pasos para obtener un resultado optimo en la creación de algoritmos.

Interesante, por medio de los algoritmos podemos solucionar cualquier problema por medio de instrucciones.

Paos para la construccion de un algoritmo:

Definiciòn del problema, tiene que ser claro, porque de hay inicia 					las bases del algoritmo.

Anàlisis del problema, ¿Como lo voy a hacer?, sumergirme en los datos.

Diseño del algoritmo: se escribe se realiza diagramas de flujo.

Verficiacion o pruebas: se tiene que probar el algoritmo, de antemano ya debo de saber la respuesta.

Todos los días realizamos actividades inconscientemente que llevan un orden, pero si nos pusiéramos a analizar cada una de estas encontraríamos que tienen muchos pasos

No soy experto, pero en mi trabajo con desarrolladores y diseñadores, he logrado entender lo importante que es la metodología... Sin método un desarrollo se puede hacer muy costoso.

Siendo fieles a los principios básicos de la ingeniería de software ❤️

Excelentes 4 puntos:

  1. Definición
  2. Análisis
  3. Diseño
  4. Verificación

Esto es muy importante para poder programar correctamente, no solamente es correr a programar también hay que analizar. Y como siempre dice Freddy mas del 90% del tiempo nos la vamos a pasar leyendo código que programando 😃

Excelente!!

Seguir la metodología es la forma más segura de presentar un resultado favorable y funcional.

En Homo Deus Harari menciona el hecho de que hay investigadores que afirman que el ser humano no es mas que un conjunto de algoritmos bioquímicos, los cuales formas las experiencias y emociones.

Y que por ejemplo, la natalidad no es mas que otro algoritmo bioquímico ,solo que enfocado en replicarnos como humanos, pero es solo eso, un algoritmo de replicación con una serie de pasos que tienen un Output que en este caso es otro humano…

Link del algoritmo del camino mas corto de Dijkstra?

Considero que antes de los pasos dichos en esta clase, la base del pensamiento, inclusive la construcción de un algoritmo, es el métodod científico:
Tales etapas son: la observación sistemática, el planteo de hipótesis o teorías basadas en la observación, la medición, la experimentación y obtención de datos experimentales, el análisis, la comprobación de su reproducibilidad y repetibilidad, y la posibilidad de predicción de sucesos futuros en base a dichas

Metodología para construir un algoritmo

Son los pasos a seguir para desarrollar un algoritmo. Es curioso que para plantear un algoritmo se necesite de otro.

Fundamentalmente son 4 etapas:

  1. Definición del problema: Debe de ser claro, generalmente, los clientes nos lo dan.
  2. Analisis del problema: Revisar detalles hasta comprender el problema ¿Qué necesito para resolverlo? ¿Como lo haré? ¿Cuál será mi resultado final?
  3. Diseño del algoritmo: Uso de diagramas de flujo, pseudocódigo o lenguajes de programación.
  4. Verificación o pruebas: Testear, corregir y volver a probar.

Son pocas las veces que se hace un diagrama de flujo 😅 no debería, en la escuela hace muchos años también enseñaban pruebas de escritorio, plasmar en papel lo que hace debe hacer el programa. Pero, aunque no parezca si es mas rápido tener claro antes de esperar que el código fluya.

Durante mi secundaria, recuerdo que un Ingeniero nos daba clases introductorias al mundo de la programación, él nos resumía todo en:

1. Entrada
2. Proceso
3. Salida

Para construir un algoritmo, sigue los siguientes pasos:

  1. Identificar el problema: Lo primero que debes hacer es definir claramente el problema que se quiere resolver con el algoritmo. Debe estar claramente definido y tener límites precisos.
  2. Analizar el problema: Debes analizar el problema y buscar la mejor manera de resolverlo. Para ello, debes tener un conocimiento sólido de las técnicas y herramientas que se utilizan en la programación.
  3. Diseñar el algoritmo: Una vez que hayas identificado y analizado el problema, debes diseñar un algoritmo para resolverlo. El algoritmo debe ser claro y fácil de entender, y debe estar basado en los datos disponibles.
  4. Escribir el código: Ahora que tienes el algoritmo diseñado, debes escribir el código que lo implemente. Es importante que el código esté bien estructurado y documentado, para que otros desarrolladores puedan entenderlo fácilmente.
  5. Probar y depurar: Una vez que el código esté escrito, debes probarlo exhaustivamente para asegurarte de que funciona correctamente. Si encuentras errores, debes depurarlos y corregirlos.
  6. Optimizar el algoritmo: Si el algoritmo funciona correctamente, pero tarda demasiado en ejecutarse, debes optimizarlo para que sea más eficiente. Puedes hacerlo eliminando pasos innecesarios o utilizando técnicas de programación más avanzadas.

Los pasos recomendados para desarrollar un algoritmo son los siguientes:

Definición del problema
Análisis del problema
Diseño del algoritmo
Verificación o pruebas
Para la definición del problema debemos obtener los siguientes elementos:

Entradas: ¿Qué se necesita para realizar los pasos?
Salidas: ¿Qué se obtiene al final del algoritmo?
Tipos de datos involucrados: Textos, números, listas, etc.

En que curso veremos diagramas de flujo?

  • Para desarrollar un algoritmo debemos tener clara la definición del problema.
  • Realizar el análisis. Que se necesita para resolver
  • Diseñar el algoritmos, podemos hacer uso de diagramas de flujo.
  • Verificación y pruebas. Casos de prueba.
  • Los datos que se necesitan son las entradas, salidas y los tipo de datos.

Looking forward to the method…

Tal vez un ultimo paso podria ser la aprobacion del algoritmo luego de probarlo/verificarlo

En los 4 pasos que el profe menciona, es más sencillo entender la metodología para la construcción de algoritmos.

Es interesante comparar el conocimiento adquirido en la universidad respecto a platzi

1. dEfinicion de problema

esta genial el curso

Hola Profe Celis, en la etapa de documentación del programa, que diseño de algoritmo recomienda. En la clase habla de diagrama de flujos y apuntes en la librera. Para una documentación formal, no es conveniente los apuntes.

Saludos cordiales.

El resultado de un algoritmo nunca debe ser ambiguo

La definición es trascendental si esta mal definido o no se tiene toda la información se pueden dar malos resultados.

Excelente clase!

Acabo de calcular una relación entre la velocidad normal y velocidad 1.5 de reproducción de las clases, esto obedece a la función:
F(x) = x + (x/2)
Donde x es la cantidad de segundos a velocidad normal, y F(x) será el segundo especifico en el que estaría a velocidad 1.5

Definición del problema

Análisis del problema

Diseño del algoritmo

Verificación o pruebas

Poco a poco todo empieza a cobrar sentido. Excelente explicación!

Está muy fácil de entender hasta ahora, debemos definir el problema, analizarlo y luego diseñar el algoritmo que nos permita solucionar el problema, finalmente probar que no falle.

Se puede usar números Irracionales?

OK

El proceso de Verificación / Pruebas, incluye al proceso de Evaluación?
Tengo entendido que la validación y evaluación son cosas distintas. La primera va con validar el diseño,y la aplicacion a traves de pruebas y test. Y la otra, evalua el performance del sistema que se desarrollo.

Siempre tener en cuenta la importancia de los pasos para desarrollar un algoritmo

  1. Definición del problema
  2. Análisis del problema
  3. Diseño del algoritmo
  4. Verificación o pruebas

Confirmo lo del pseudocodigo jajaja, la verdad no es tan bueno para la construcción de un algoritmo

Esta serie de pasos los realizamos diariamente desde que comienza el día, por ejemplo, cuando nos levantamos, tomamos un baño, desayunamos, preparamos la comida, entre muchas otras actividades, seguimos una seria de pasos que al final nos permiten alcanzar un resultado. La realidad es que a cada momento aplicamos un algoritmo para resolver un problema o alcanzar un resultado.

Los algoritmos son pasos secuenciales que siempre estamos realizando en las diferentes actividades o planes que tenemos en nuestra vida sin darnos cuenta. Pero si aplicamos esta Metodología para solucionar un algoritmo. nos va a ayudar bastante para poder generar una planificación de los objetivos que queremos conseguir tanto a nivel personal como a nivel profesional ademas si nuestra mente comienza a sentirse mas entrenada viendo los algoritmos que planteamos y ejecutamos. esto ya se volverá una rutina y nos permitirá hacer algoritmos de una manera mas fácil.

Hola!

El profesor a qué se refiere al decir ‘algoritmo percé’?

Muy clara la explicación

rayos,apenas me di cuenta, que hay muchos huecos que tengo como programador principiante

hay que profundizar mucho en este tema, es complejo pero de suma importancia

1.- Definir bien o asegurarse de tener bien claro que es lo que vamos hacer.
2.- Cual debe ser mi resultado final en base al análisis del problema.
3.- Escribir, diagramar y tomar notas.
4.- Saber los datos a introducir, y saber la solución. probar tantos casos sean necesarios que nos permitan resultados verídicos.

gracias profe

aprendiendo poco a poco

Genial!!! 😃

Todo en un algoritmo se asemeja a una función. Muy buena info!

¿Por qué no recomiendas el uso de pseudocódigo? De hecho, en mi colegio es la única manera como enseñan programación… Gran cuestión

Como construir un algoritmo (Metodología)
1. Definición del problema: ¿Qué quieres resolver?
2. Análisis del problema: ¿Qué es necesario hacer? ¿Cuál sera el resultado final?
3. Diseño del algoritmo: ¿Cómo lo resolveremos?
4. Verificación o pruebas: Testeo

Datos:
- Entrada: Que se necesita para resolver el problema
- Salida: Resultado final
- Tipos: Representación de la información

Definición…Análisis…Diseño…Verificación…

Increíble, algo que suena tan básico y elemental que sirve para afrontar cualquier problema y resolverlo de la forma correcta.

interesante

Algoritmo computacional… Mis días de bachiller

*** Metodología para la construcción de un algoritmo**

  1. DEFINICIÓN DEL PROBLEMA
  2. Análisis del problema
  3. Diseno del algoritmo
    4)Verificación o pruebas

** DATOS A EXTRAER DEL PROBLEMA **

-ENTRADA-
LO QUE SE NECESITA PARA REALIZAR LOS PASOS?

–SALIDA–
QUE SE OBTIENE AL FINAL DEL ALGORITMO?

—TIPOS DE DATOS —
Números :Enteros,reales,complejos
Texto:Letras,palabras,frases
Otros

Diagramas de flujo en que curso lo encuentro? Gracias

No quiero hablar más al respecto

Excelente, muy bien explicado

Excelente guia de como desarrollar un algoritmo.

si se comprende perfecto el metodo

Sin duda que una clase muy corta pero muy contundente. Dan ganas de seguir avanzando. Me quedo con la recomendación de desarrollo del algoritmo, que claramente se usa para todo en la vida.

**1 **Definición del problema
Se describe el problema y el resultado requerido
2 Análisis del problema
Se recopila los datos de entrada y salida, se busca deducir los tipos de datos implícitos en el problema
3 Diseño del algoritmo
Se inicia la creación del algoritmo (código o pseudocódigo)
4 Verificación y pruebas
Se construye un conjunto de datos de entrada y salida para verificar el correcto funcionamiento del algoritmo

Excelente la manera tan simple que es, y como vamos desarrollando la parte lógica. A veces no podemos explicar los pasos a pasos tasitos de una tarea o actividad porque no somos capaces de desarrollar un pensamiento lógico.

execelente. ;D

Muy importante seguir la metodología y vale la pena entender que cada uno de ésto pasos también tiene su propia metodología.

Muy buen video y tenía la pregunta de porqué Ricardo Celis no recomendaba pseudo código pero ya fue respondida.

que buen resumen de los algoritmos, claro y entendible muchas gracias!!

un algoritmo establece, de manera genérica e informal, la secuencia de pasos o acciones que resuelve un determinado problema y, para representarlo, se utiliza, fundamentalmente, dos tipos de notación: pseudocódigo y diagramas de flujo.

  1. Definición del problema.
  2. Análisis del problema.
  3. Diseño del algoritmo.
  4. Verificación o pruebas.
    Aunque me parece que el paso de diseño se recluye a la proyección de la solución. Personalmente pondría otro punto para la ejecución o modelado del algoritmo.

La metoldoogía es fácil.
Primero saber cual es mi problema, analizarlo, saber como lo voy a resolver que inputs necesito & el flujo.
Fin.

Otro tipo de datos es el tipo de dato Booleano, que para resumir vendrìa a ser que el dato puede ser Verdadero o Falso.

Metodología para algoritmos:
1.- Definición de problema.
2.- Análisis del problema.
3.- Diseño del algoritmo.
4.- Verificación o pruebas.

Estructura y diseño de un algoritmo
La estructura nos dice que partes va a tener CASI SIEMPRE un algoritmo:
Y son estos elementos:

  • Entrada (La mayoría): Esto se refiere a la información que se necesita para que arranque el algoritmo.
  • Proceso (Siempre): Las operaciones que se estarán ejecutando.
  • Salida (Siempre): Son los resultados.

Un algoritmo siempre hace una tarea. La entrada y salida puede ser explícita o implícita. Eso quiere decir que a veces no se le pasa una entrada y también a veces no tiene una salida, simplemente el algoritmo ejecuta tareas internas del programa.

Cuando se dice que tiene una entrada no siempre quiere decir que la vas a pasar como un dato. A veces el algoritmo hace solo tareas internas.

Cuando el dice que no recomienda Pseudocódigo es porque el pseudocódigo tiene una característica y es que debe evitarse mucho del código , es decir debe ser entendido por cualquier persona, no solo para los que conozcan X lenguaje de programación, y eso es lo que pasa, muy a menudo no se respeta eso, por eso es mejor usar diagramas de flujo para evitar atrasos o malentendidos.
Los diagramas de flujo al ser figuras son más fáciles y rápidos de interpretar.

Buen curso, me gusta mucho el contenido y el profesor es claro y conciso

Una de las partes más difíciles debe ser que el cliente nos dé un problema que sea tangible y medible, sin expresiones ambiguas y poco claras.

¿En que curso puedo ver los diagramas de flujo?