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

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
23 Hrs
24 Min
27 Seg

Lenguajes de programación

3/42
Recursos

Los lenguajes de programación son un set de instrucciones que usamos para enseñarle a las computadoras los pasos a seguir para resolver un problema.

Existen diversos tipos de lenguajes de programación y los podemos reducir en 2 grandes categorías: lenguajes de bajo nivel y de alto nivel. Esto según su complejidad y nivel de preocupación o acceso al hardware.

Lenguajes de bajo nivel: Son los que te permiten hacer modificaciones en el hardware. Entre más bajo es el nivel, más nos debemos preocupar los programadores por el hardware. Por ejemplo, tenemos el lenguaje máquina (solo código binario) como el de más alto nivel, siguiendo por ensamblador (con instrucciones más amigables) y otros lenguajes como C o C++.

Lenguajes de alto nivel: Son frecuentemente lenguajes más modernos en los que uno como programador se enfoca en el software, no tanto por el hardware. Por ejemplo, Ruby, JavaScript o Perl.

Aportes 91

Preguntas 10

Ordenar por:

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

Los lenguajes de programación se dividen en dos campos:

  • Lenguajes de bajo nivel: cuando se dice que un lenguaje es de bajo nivel quiere decir que se ejecuta más cerca de la CPU y, por lo tanto, es más difícil de entender. Por ejemplo, los lenguajes de programación más cercanos a la CPU son el lenguaje máquina y el ensamblador.

  • Lenguajes de alto nivel: son los que están más cerca a nuestro lenguaje humano, es más amigable para nosotros. Por ejemplo, los lenguajes programación de alto nivel serían JavaScript o Python.

Aun se sigue usando ensablador para programar drivers por ejemplo, o para programar emuladores

Super, recorde mi clase de programación en la universidad jeje!

Aquí tambien es importante conocer los lenguajes interpretados y compilados

**● Lenguajes compilados: ** Antes de poder utilizarse el programa debe utilizarse un traductor llamado
“compilador” que se encarga de traducir (“compilar”) el programa original (“código fuente”) al programa
equivalente escrito en lenguaje de máquina o ensamblador (“binario”). Los binarios son los programas
ejecutables y los únicos necesarios para el funcionamiento del programa.

**● Lenguajes interpretados: ** Cada vez que se usa el programa debe utilizarse un traductor llamado “intérprete”
que se encarga de traducir (“interpretar”) las instrucciones del programa original (“código fuente”) a código
máquina según van siendo utilizadas. Para el funcionamiento del programa siempre es necesario disponer del
código original y del intérprete.

Resumen:

Lenguajes de programación: set de instrucciones especificas que van a indicar a la computadora los pasos a seguir para resolver algún problema, es como nos comunicamos con las computadoras, entre ellos están el lenguaje maquina y ensamblador.
Lenguaje maquina se ingresa instrucciones directamente en código binario.
Lenguaje ensamblador ya cuenta con un set de instrucciones brindadas por el fabricante del circuito integrado, ejemplo el CPU 8086 de Intel ya contaba con instrucciones y cada una de ellas tenía una forma de ser leída directamente en el hardware de código, es un lenguaje eficiente.
Los lenguajes de alto nivel necesitan ser interpretados en la computadora, una instrucción de este lenguaje luego pasa a la conversión, y el intérprete (que es como un traductor) se encarga de que este lenguaje o código que estas escribiendo llegue al CPU (pasando antes por el SO) por eso son considerados lenguajes de alto nivel, que no son eficientes para programas de alto rendimiento ej. Un robot pero no pasa nada en las aplicaciones web o en los móviles ya que en los mismos contamos con muchos recursos de hardware

Ampersand: Me puse averiguar un poco sobre este código, ya que no hemos profundizado mucho y respecto a lo que él dice que ya se ha visto creo que no ha sido tan claro, sin embargo esto fue lo que encontré buscando alguna información. En HTML se usa al comienzo de los códigos de entidad con que se designan los caracteres especiales: los ejemplos más típicos son > <, y & (>, < y &, respectivamente). En Internet y direcciones web, & simboliza la separación de variables pasadas mediante GET. En Excel, se usa para concatenar celdas. En Access, se usa para sustituir un carácter o un espacio en máscaras de entrada. En la línea de comando (CLI) de Bash (Bourne Again Shell) Zbash, etc. usadas en Unix, GNU/Linux y *BSD se usa & al final de una orden para ejecutarla en segundo plano. En JavaScript, se usa para decir and (y)

Es recomendable aprender primero lenguajes de alto nivel o de bajo nivel? saludos.

En la vocacional llegué a trabajar con el Z86 y lenguaje ensamblador… obviamente apenas lo entendí en su momento y ahora no recuerdo nada jajaja

Yo aprendí a programar en AS3 (lo extraño), mi lenguaje favorito actualmente es js, aunque pasé por C, C++, C#, Java (ese no lo extraño), PHP.

Es muy útil entender la diferencia entre lenguajes de alto y bajo nivel para poder entender los límites de éstos.

“Lenguajes de bajo nivel: Son los que te permiten hacer modificaciones en el hardware. Entre más alto es el nivel, más nos debemos preocupar los programadores por el hardware”

¿No se supone que tiene que ser alrevez? entre mas bajo mas nos tenemos que preocupar por el hardware.

En resumen:

Lenguajes de programacion Es un metodo que se usa en la ingenieria para comunicar comandos a un ordenador, desde hacer un simple reinicio de la misma o encendido, de igual forma los lenguajes de programacion tienen enfoque principal en crear software, app,s juegos, edicion multimedia, etc. Todo se basa atravez de un Compilador : Atravez de el hace la traduccion del lenguaje de programacion que estemos escribiendo a codigo binario para que el ordenador entienda los procesos que tiene que realizar

Nota, los registros estan en el procesador. existe una instrucción llamada MOV, que mueve el valor de la memoria al registro. MOV RAX, 2 ; Mueve el valor 2 al registro RAX (64 bits) MOV RBX, 2 ; Mueve el valor 2 al registro RBX ADD RAX, RBX ; Suma el valor de RBX al de RA

¡Sigo fascinada con las explicaciones del maestro, yo no tenía nociones de programación y ahora lo veo muy posible! 😄

Lenguajes de programación
- Set de instrucciones especificos que le dicen a la computadora los pasos a seguir para resolver un problema

- Maquina: 0 y 1
- Ensamblador: upcodes 

- Alto nivel: Abstracción (necesita un intérprete)
- Bajo nivel: Directo al CPU
<h3>Tipos de lenguajes de programación</h3>
  • Lenguaje máquina: Se manejan con código binario, o sea, se le habla directamente en el lenguaje que entiende la computadora. Este lenguaje es muy viejo y ya no se usa, puesto qué es muy complejo de entender para un humano.
  • Lenguaje ensamblador: Es un lenguaje más amigable que el lenguaje máquina, puesto qué éste lenguaje contenía una lista de instrucciones. Aún, seguía siendo muy complejo de entender para un humano, por su enorme abstracción. Un ejemplo:
  • Lenguajes de bajo nivel: Estos lenguajes son un escalón encima del ensamblador, puesto que siguen siendo no fáciles de entender, poseen una sintaxis más legible, tienen una ejecución muy rápida, pueden gestionar la memoria directamente y dependen del hardware. En este tipo de lenguajes, cuando son compilados al código binario, el compilador no mejora ni corrije errores en el código como lo hacen lenguajes como JavaScript y esto les permite ser muy veloces. Un lenguaje cerca de ser de bajo nivel, es C, el cual es un lenguaje del que se han basado la mayoría de los lenguajes que tenemos en la actualidad: JavaScript, Python, etc.
  • Lenguajes de alto nivel: Este es el último escalón, y este tipo de lenguajes son los más fáciles de entender. Aquí están Python, JavaScript, Ruby, etc. Tienen una sintaxis muy legible, gran comunidad en general y no dependen del hardware. Aún así, tienen desventajas, como ser menos veloces (puesto que la computadora debe interpretarlos para traducirlos a código máquina) y la computadora debe interpretarlos o compilarlos a código máquina. Todo esto influye en su velocidad, y por esta clase de lenguajes no sirven para robots, por ejemplo, puesto que la velocidad es muy importante y eso nos lo otorgan lenguajes como C.
No pude ver la clase pasada :/

Tipos de lenguaje de programacion: Existen diversos tipos de lenguajes de programación y los podemos reducir en 2 grandes categorías: lenguajes de bajo nivel y de alto nivel. Esto según su complejidad y nivel de preocupación o acceso al hardware.


Lenguajes de bajo nivel: Son los que te permiten hacer modificaciones en el hardware. Entre más bajo es el nivel, más nos debemos preocupar los programadores por el hardware. Por ejemplo, tenemos el lenguaje máquina (solo código binario) como el de más alto nivel, siguiendo por ensamblador (con instrucciones más amigables) y otros lenguajes como C o C++.


Lenguajes de alto nivel: Son frecuentemente lenguajes más modernos en los que uno como programador se enfoca en el software, no tanto por el hardware. Por ejemplo, Ruby, Python, JavaScript o Perl.

*Resumen de esta clase* - Los lenguajes de programación son un set de instrucciones para que la computadora pueda ejecutar un proceso o una serie de procesos y es la manera que nosotros nos comunicamos con la computadora. Existen *lenguajes de bajo nivel* como: - Lenguaje máquina (0 y 1) - Ensamblador - C - C++ Estos nos permiten comunicarnos directo a la máquina. Y los de alto nivel como: - Java - Phyton - JavaScript - Ruby Lenguajes que requieren de una interpretación para ser ejecutados.

Recuerdo los trabajo realizados en la tecnicatura cuando programamos en Assembler, trabajando sobre el PIC16F84A

Recuerde que Java y JavaScript son lenguajes distintos. Sin embargo ambos son de nivel alto.

Muy interesante, entonces, a su vez podríamos afirmar que los lenguajes de alto nivel son los más fácil de aprender.

Los lenguajes de bajo nivel son los mas rápidos para interactuar con nuestros componentes físicos.

hay un error en la descripcion del video. Donde dice “tenemos el lenguaje máquina (solo código binario) como el de más alto nivel” deberia decir “como el de más bajo nivel”

Me encantaría aprender C es un lenguaje muy interesante .

Los lenguajes de bajo nivel no cuentan con un overhead o una carga que haga que sea más lento el procesamiento de las instrucciones.

C o C++ Se ocupa mucho en sistemas embebidos (microcomputadoras que viven en lavadoras, microondas, etc)

**Alto Nivel -> Java, C#, Python, JavaScript

Bajo Nivel -> C, C++**

A modo de repaso:

Los lenguajes de bajo nivel son más eficientes, ya que no tienen muhas capas …

Y una de las desventajas es el que es muy dificil de codificar

es buen concepto pa tener una idea de ingeniero y palabras de ingeniero lo que puedo agregare algo corto es que

  • Software: es la parte LOGICA de un dispositivo.
  • Hardware: es la parte FISICA de un dispositivo.
    en palabras mas sensillas

El profesor comenta que esto debí haberlo aprendido en el Curso de Programación Estructurada pero ese curso esta en la Ruta de Fundamentos de Programación en un nivel mas avanzado que este, el Team Platzi debe revisar esto?

ahhh de ahi viene Assembly, buen dato. Lo había escuchado, pero no entendía. Que bueno apesar de que en varios cursos se habla de esto, cada uno complementa muy bueno.

Los lenguajes de programación son sistemas formales de reglas que se utilizan para dar instrucciones a una computadora para realizar una tarea específica. Estos lenguajes permiten a los programadores comunicarse con las computadoras de manera efectiva y eficiente, utilizando un conjunto de instrucciones predefinidas para crear programas, aplicaciones y sistemas informáticos.

Los lenguajes de programación son un set de instrucciones que usamos para enseñarle a las computadoras los pasos a seguir para resolver un problema.

Existen diversos tipos de lenguajes de programación y los podemos reducir en 2 grandes categorías: lenguajes de bajo nivel y de alto nivel. Esto según su complejidad y nivel de preocupación o acceso al hardware.

Lenguajes de bajo nivel: Son los que te permiten hacer modificaciones en el hardware. Entre más bajo es el nivel, más nos debemos preocupar los programadores por el hardware. Por ejemplo, tenemos el lenguaje máquina (solo código binario) como el de más alto nivel, siguiendo por ensamblador (con instrucciones más amigables) y otros lenguajes como C o C++.

Lenguajes de alto nivel: Son frecuentemente lenguajes más modernos en los que uno como programador se enfoca en el software, no tanto por el hardware. Por ejemplo, Ruby, JavaScript o Perl.

Buenas,

No he programado en C y C++

Cual me recomiendan empezar, Ya que quiero probar estos lenguaje ?

Cuando a mi me enseñaron lenguajes de programación, indicaban que C++ y java eran de alto nivel, porque eran más fácil de aprender que C. Debido a la creación de lenguajes de más rápido aprendizaje, y sobre todo de más capas antes de llegar al cpu, pasaron a ser considerados de nivel medio.

  • Los lenguajes de programación son un set de instrucciones que usamos para comunicarnos con la computadora.
  • Lenguajes de bajo nivel, como el lenguaje máquina son las instrucciones de 0s y 1s o el lenguaje ensamblador. Permiten realizar configuraciones directas en el hardware del equipo.
  • Los lenguajes de alto nivel son más modernos y se enfocan en software, como Javascript, Ruby, Python, etc.

Yo aprendí lenguaje ensamblador en el 8086, la verdad fue muy interesante, les recomiendo mucho si tienen la oportunidad, les da una mejor idea de como funciona la computadora

Excelente!

Quedó perfecto para repasar mis dos materias de la universidad

Interesante curso

A mi me encanta el lenguaje java. 😃

Aprendí ensamblador en la escuela y tiene ventajas para procesos muy específicos como el menciona

Ya me estoy mareando. XD

Excelente, los lenguajes en resumen a lo referente al nivel, es que entre mas bajo nivel sea el lenguaje mas se acerca a las instrucciones direactamente al Hardware, y entre mas alto nivel es mas amigable con el desarrollador, ya que ofrece un lenguaje más legible

En la U me toco programar un juego en una matriz de led 8x8 en ensamblador. Fue bastante difícil pero al final aprendí un montón sobre lógica

El lenguaje ensamblador es bastante interesante. En la universidad en la materia de Estructura de computadores nos enseñan MIPS y usamos un simulador para programar.

Cool

Genial… Es super emocionante!!!

Hay varios tipos de lenguajes de programacion, los mas viejos son los de maquina, el esamblador.

Los lenguajes de medio nivel: C, C++ y JAVA.

Los lenguajes de alto nivel: Javascript, Ruby, Phyton, Perl, necesitan un interprete, que llegue al CPU.

Un poco complicadito se puso el tema.

uff

Es importante tener esta información clara. Java y javascript son grandes lenguajes.

Lenguajes de bajo nivel se enfocan mas en instrucciones para hardware, lenguajes de alto nivel se enfocan en instrucciones de software.

Me imagino los programadores de la epoca programando en Assembler

Gracias por tu excelente explicación.

Código máquina y código ensamblador son de primer nivel

Solo quería agregar que los lenguajes de alto nivel no te encargas de cosas tecnicas como el alamcenamiento de memoria, de forma “predeterminada” por el lenguaje y es una de las razones por la que son más lentos

estudie ingenieria en sistemas y en el 7mo semestre me toco que programar en asembler.

Lenguajes de alto y bajo nivel, vamos a lo que sigue !

No recuerdo que en la clase pasada se haya hablado de bits! La clase pasada fue la introducción

Lenguajes de programación más usados según el tipo de desarrollo
https://www.yeeply.com/blog/lenguajes-de-programacion-mas-usados/

Bien explicado

Mis favoritos son los de alto nivel

Está de lujo, esto me ayuda a repasar conceptos, por cierto para los que toman nota de la descripción, en la parte que describe al lenguaje máquina, este es de el más bajo nivel, no del más alto, hay un error ahí, pero con el video esto queda súper claro 😃

Yo se ensambler, es muy útil a la hora de programar PICs, aunque hay veces que causa pesadillas a la hora de hacer cosas mas robustas

Que interesante saber esta clasificación de los lenguajes de programación, Ricardo.

Básicamente hay dos grandes familias: alto nivel y bajo nivel.

  • Bajo nivel: son más antiguos y nos dejan hacer cambios en el hardware. Algunos ejemplos son: “Java” y “Scala”, “Lenguaje de máquina” y “ensablador”.

  • Alto nivel: son más actuales y debemos prestar más atención en el software.
    Algunos ejemplos son: “Python”, “Ruby”, “C#”.

  • Lenguajes de bajo nivel
    Ejm
    • C , C++ , Rust.
  • Lenguajes de alto nivel
    Ejm
    • Python , js

Ejemplos de lenguajes
Bajo nivel: C o C++
Alto nivel: Ruby, JavaScript o Perl

Lenguaje de programación._ Al igual que los lenguajes tales como el Español o el Inglés, los lenguajes de programación poseen una estructura (gramatica) bien definida que permire al usuario dar un conjunto de instrucciones para ser ejecuradas.

muy bien

Les comparto mis notas 😃

Que bien

Excelente explicación!!!

muy buena explicacion

Muy interesante.

Lenguajes de programación: Set de instrucciones en especifico que enseña a computadora los pasos a seguir para resolver un problema . Es una forma de comunicarnos con las computadoras.

Lenguaje de bajo y alto nivel en este buen aporte—> https://platzi.com/comentario/569155/

De nuevo pasándome por aquí.

¿Qué son lenguajes de programación?

Los lenguajes de programación son set de instrucciones con los cuales nos comunicamos con las computadoras. Lenguajes conocidos como Máquina y Ensamblador son de los primeros lenguajes de programación creados.

Lenguajes de Bajo nivel: Son lenguajes que no generan un entorpecimiento en las instrucciones.
Ejemplos: Máquina y Ensamblador

Lenguajes de medio nivel: Son lenguaje que se utilizan en sistemas para comunicarnos con microcomputadoras
Ejemplos: C, C++, Java, Scala

Lenguajes de alto nivel: Son lenguajes de alto rendimiento que tienen que pasar por varias capaz para ser entendidos por nuestra CPU.
Ejemplos: Ruby, JavaScript, Python

Lenguaje de Alto Nivel == Para la persona.
Lenguaje de Bajo Nivel == Para la máquina.

excelente curso quiero aprender mas

Existen muchísimos lenguajes de programación, de acuerdo a la necesidad del código podemos usarlos. entre los lenguajes primitivos se encuentran ellenguajes maquina y lenguaje ensamblador, la desventaja de ambos lenguajes es el nivel de abstracción que pueden presentar, lo que para una persona representa una curva de aprendizaje altísima. La ventaja que tienen es en el rendimiento ya que la comunicación es directa a la computadora.

Los siguientes lenguajes son los conocidos como lenguajes de bajo nivel y alto nivel entre ellos C, C++, Java o Scala los cuales se traducen tanto para humanos como para maquinas a un nivel intermedio, por lo que la curva de aprendizaje puede es media. C, y C++ son generalmente usados en sistemas embebidos y son usados generalmente para la Robótica.

Los lenguajes de alto nivel como Python tienen una curva de aprendizaje mas corta debido a que las instrucciones pueden ser entendidas con facilidad por el programador con algo de habilidad, y son generalmente usados para el desarrollo de aplicaciones Web.

Lenguajes de alto nivel como Python , JavaScript o Ruby se demoran un poco más en ejecutar un computo, a pesar de que son mas fáciles de entender para un programar ya que el lenguaje se acerca a la comunicación entre personas, la demora radica en que los comandos programados deben ser traducidos al lenguaje maquina de 1s y 0s

  1. Mis apuntes sobre: “Lenguajes de programación”:
    Lenguaje máquina y ensamblador
    Lenguaje de alto nivel y bajo nivel.

“Por ejemplo, tenemos el lenguaje máquina (solo código binario) como el de más alto nivel”

¿No debería decir “el de más bajo nivel”?

Básicamente los lenguajes de alto nivel son los interpretados y los de lenguajes medios serian los que se necesitan compilar

No sé que tan bueno sea aprender lenguaje ensamblador en nuestra época actual.

En la preparatoria el primer modulo de la especialidad fue ensamblador, buenos jalones de greñas daba aprenderlo XD