Skip to content

Repositorio con toda la informacion, imágenes y diapositivas del curso de "Lógica de Programación" de mi canal de YouTube

Notifications You must be signed in to change notification settings

sergiecode/curso-logica-de-programacion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Curso de Lógica de Programación por Sergie Code

Logica de Programacion

PROGRAMACIÓN y PROGRAMADOR

Programación es el proceso de crear instrucciones que le dicen a una computadora cómo realizar una tarea específica. Estas instrucciones se escriben en un lenguaje que la computadora pueda entender, conocido como lenguaje de programación. La programación implica la resolución de problemas, el diseño de algoritmos y la traducción de esos algoritmos en un código que la máquina pueda ejecutar.

Ser un programador significa ser la persona que diseña, escribe, prueba y mantiene el código que permite que los programas de computadora funcionen. Los programadores no solo crean soluciones técnicas, sino que también aplican lógica y pensamiento crítico para resolver problemas de manera eficiente, traduciendo ideas abstractas en instrucciones precisas que una computadora puede seguir.

Logica de Programacion

PENSAMIENTO COMPUTACIONAL

Es un enfoque de resolución de problemas que implica descomponer un problema complejo en partes más pequeñas y manejables, identificar patrones, abstraer los aspectos esenciales, y desarrollar algoritmos o instrucciones paso a paso para resolverlo.

Este tipo de pensamiento no se limita a la programación, sino que puede aplicarse en diversas áreas para analizar y abordar problemas de manera lógica y eficiente, similar a cómo lo haría una computadora.

  • Descomposición de problemas
  • Identificación de patrones
  • Enfoque en lo esencial (Abstracción)
  • Desarrollo de algoritmos
  • Análisis y mejora de soluciones (Evaluación)

Logica de Programacion

¿Qué es un patrón?

Un patrón es una repetición identificable y predecible de elementos o características en un conjunto de datos, situaciones o fenómenos.

  • Repetición: Los patrones son secuencias o características que se repiten de manera constante.
  • Discernibilidad: Los patrones pueden ser reconocidos y destacados dentro de un conjunto de datos o situaciones.
  • Predictibilidad: Los patrones permiten anticipar comportamientos o resultados futuros basados en observaciones anteriores.
  • Regularidad: Los patrones presentan una disposición consistente de sus elementos a lo largo del tiempo o del espacio.
  • Abstracción: Los patrones se pueden simplificar para representar información de forma más clara y manejable.

Logica de Programacion

¿Qué es un ALGORITMO?

Un algoritmo es un conjunto de instrucciones precisas y ordenadas que se siguen para realizar una tarea específica o resolver un problema.

  • Secuencia de pasos: Una serie lógica de pasos que deben seguirse en un orden específico para lograr un objetivo.
  • Precisión: Cada paso debe ser definido y comprensible para una ejecución precisa y consistente.
  • Finitud: Los algoritmos deben tener un número finito de pasos, terminando una vez alcanzado el objetivo o después de un número determinado de pasos.
  • Solución de problemas: Diseñados para resolver problemas específicos.
  • Eficiencia: Un buen algoritmo no solo logra el resultado deseado, sino que lo hace de manera eficiente, optimizando el uso de recursos como tiempo y memoria.

Logica de Programacion

ANALISIS DE UN PROBLEMA

Es el proceso de comprender completamente un problema antes de diseñar una solución. Implica descomponer el problema en partes más manejables, identificar sus causas subyacentes y establecer un enfoque claro para resolverlo de manera efectiva.

  • Identificar y comprender el problema: Es fundamental entender en qué consiste exactamente el problema. Esto implica identificar todos los detalles relevantes, las entradas y salidas esperadas, así como cualquier restricción o limitación que pueda existir.
  • Establecer objetivos claros: ¿Cuál es el propósito final de resolver este problema? Definir claramente los objetivos ayuda a mantener el enfoque y a diseñar una solución efectiva que cumpla con las expectativas.
  • Identificar requisitos y restricciones: Es importante tener en cuenta las necesidades y expectativas de los usuarios o stakeholders involucrados en el problema. ¿Qué funciones o características son esenciales para ellos?
  • Analizar las causas subyacentes: En ocasiones, un problema puede ser solo un síntoma de una causa subyacente más profunda. Identificar y abordar esta causa raíz es fundamental para evitar que el problema resurja en el futuro.
  • Explorar soluciones alternativas: Antes de comprometerse con una solución específica, es útil considerar diferentes enfoques y evaluar sus ventajas y desventajas. Esto puede ayudar a encontrar la mejor manera de abordar el problema.
  • Establecer criterios de éxito: Definir claramente lo que constituirá una solución exitosa es crucial para evaluar el progreso y el rendimiento del programa una vez implementado. Estos criterios pueden incluir medidas de rendimiento, calidad, eficiencia, etc.

Logica de Programacion Logica de Programacion Logica de Programacion

ESTRUCTURAS DE CONTROL

Las estructuras de control son un conjunto de instrucciones en un programa que permiten alterar el flujo de ejecución de las operaciones, es decir, dictan cómo y cuándo se deben ejecutar las distintas partes del código. Estas estructuras son fundamentales en la programación, ya que sin ellas, los programas seguirían una ejecución secuencial y lineal, sin poder realizar decisiones, repeticiones o desviaciones en el flujo del programa.

Logica de Programacion

Estructuras Condicionales:

Las estructuras condicionales permiten que el programa tome decisiones y ejecute ciertas instrucciones solo si se cumplen ciertas condiciones. Esto se logra utilizando sentencias como if, else if (o elif en algunos lenguajes), y else.

Estructuras de Iteración:

Los bucles son estructuras de control que permiten repetir una o varias instrucciones múltiples veces, hasta que se cumpla una condición específica. Existen varios tipos de bucles, siendo los más comunes while, for, y do-while.

Logica de Programacion Logica de Programacion Logica de Programacion Logica de Programacion Logica de Programacion

Variables

Son contenedores que almacenan datos que pueden cambiar a lo largo del programa. Se declaran, se les asignan valores y se utilizan para realizar operaciones.

Tipo de Datos

Definen la naturaleza de los valores que pueden ser manipulados en un programa. Los tipos más comunes incluyen enteros, decimales, cadenas de texto y booleanos.

Operaciones

Permiten manipular y comparar los datos almacenados en variables para producir nuevos valores, tomar decisiones y controlar el flujo del programa.

Logica de Programacion Logica de Programacion Logica de Programacion

Funciones

Las funciones o procedimientos son bloques de código que realizan una tarea específica y que pueden ser reutilizados a lo largo del programa. Su uso permite mejorar la organización, la legibilidad y la mantenibilidad del código.

Modularidad

La modularidad se refiere a la práctica de dividir un programa en partes más pequeñas y manejables, llamadas módulos o funciones. Esto tiene varios beneficios:

Logica de Programacion Logica de Programacion Logica de Programacion

Estructura de Datos:

La Estructura de Datos en programación es una manera organizada y eficiente de almacenar, manipular y acceder a datos en una computadora. Las estructuras de datos permiten que los programas manejen grandes cantidades de información de manera eficiente y efectiva, facilitando operaciones como búsqueda, inserción, eliminación y modificación de datos.

  • Arreglos (Arrays): Colección de elementos del mismo tipo almacenados en ubicaciones de memoria contiguas. Permiten acceso rápido por índice.
  • Listas Enlazadas (Linked Lists): Una serie de nodos donde cada nodo contiene un dato y una referencia al siguiente nodo en la secuencia.
  • Pilas (Stacks): Colección de elementos que sigue el principio LIFO (Last In, First Out).
  • Colas (Queues): Colección de elementos que sigue el principio FIFO (First In, First Out).
  • Árboles (Trees): Estructura jerárquica donde cada nodo tiene un valor y referencia a uno o más nodos hijos. Un tipo común es el Árbol Binario.
  • Grafos (Graphs): Conjunto de nodos conectados por aristas (edges), útil para representar relaciones complejas entre datos.
  • Hash Tables: Estructura que almacena pares clave-valor, permitiendo un acceso rápido a los datos a través de una función hash.

Logica de Programacion Logica de Programacion Logica de Programacion

Paradigmas de programación

Un paradigma de programación es un enfoque o estilo particular de programación que guía y estructura el desarrollo de software. Un paradigma define la manera en que los programadores conceptualizan y organizan los problemas que deben resolver, y dicta cómo se deben estructurar las soluciones en términos de lenguajes de programación y metodologías.

  • Programación Imperativa: Enfocada en ejecutar instrucciones secuenciales que modifican el estado del programa.
  • Programación Orientada a Objetos (OOP): Organiza el software en objetos que encapsulan datos y comportamientos. Ejemplos: Java
  • Programación Funcional: Se basa en funciones puras, evitando el estado mutable y los efectos secundarios.
  • Programación Declarativa: El programador especifica qué se debe hacer, no cómo hacerlo. Ejemplos: SQL

Logica de Programacion

PSEUDOCÓDIGO

El pseudocódigo es una forma de escribir algoritmos utilizando un lenguaje informal y cercano al lenguaje humano, sin seguir la sintaxis específica de ningún lenguaje de programación en particular. Es una herramienta útil para planificar y diseñar soluciones antes de implementarlas en un código real.

  • Lenguaje informal: Utiliza un lenguaje que es fácil de entender, parecido al lenguaje natural.
  • Independiente de la sintaxis: No sigue las reglas de sintaxis de ningún lenguaje de programación específico.
  • Facilita la planificación: Ayuda a diseñar y organizar el algoritmo antes de escribir el código.
  • Accesible para todos: Puede ser entendido tanto por programadores como por personas sin conocimientos técnicos.
  • Estructuras lógicas: Emplea estructuras como condicionales, bucles y asignaciones de manera simple y directa.
  • Enfoque en la lógica: Se concentra en la lógica y secuencia de pasos más que en detalles técnicos.

Logica de Programacion Logica de Programacion Logica de Programacion

Diagramas de Flujo

Un diagrama de flujo es una representación gráfica de un proceso o algoritmo, donde se utilizan símbolos y flechas para mostrar la secuencia de pasos y la relación entre ellos. Es una herramienta visual que facilita la comprensión, el análisis y la comunicación de procesos complejos.

  • Visualización clara: Representa procesos de manera visual, lo que facilita la comprensión.
  • Símbolos estándar: Usa símbolos estandarizados, como óvalos para inicio/fin, rectángulos para procesos, rombos para decisiones, y flechas para indicar el flujo.
  • Secuencia de pasos: Muestra el orden en que se deben realizar los pasos de un proceso.
  • Identificación de problemas: Ayuda a identificar cuellos de botella, redundancias y otros problemas en un proceso.
  • Facilita la comunicación: Es útil para explicar procesos a personas de diferentes niveles de conocimiento.
  • Aplicaciones variadas: Se usa en diferentes campos, como programación, ingeniería, administración y más.

Logica de Programacion Logica de Programacion Logica de Programacion Logica de Programacion

EJEMPLO PRACTICO FINAL:

https://github.com/sergiecode/ejemplo-practico-logica-programacion

Situación:

Sara está investigando cómo la temperatura influye en la velocidad de una reacción química específica. Para ello, trabaja en un laboratorio donde se comparan datos de temperatura en distintas unidades. Dado que los datos llegan en grados Fahrenheit desde Estados Unidos, Sara necesita convertirlos a grados Celsius para poder utilizarlos en sus experimentos.

  • Identificar y comprender el problema: Sara necesita convertir datos de temperatura de grados Fahrenheit a grados Celsius para realizar sus experimentos. La conversión es necesaria para alinear los datos con los otros resultados que ya están en grados Celsius.
  • Establecer objetivos claros: El objetivo principal es convertir con precisión los datos de grados Fahrenheit a grados Celsius y automatizar este proceso para manejar grandes volúmenes de datos de manera eficiente.
  • Identificar requisitos y restricciones: Se requiere precisión en la conversión, automatización del proceso para grandes conjuntos de datos, y compatibilidad con los formatos de análisis existentes. Las restricciones incluyen el formato de datos y el tiempo disponible para el análisis.
  • Analizar las causas subyacentes: El problema surge porque los datos se registran en una unidad diferente a la utilizada en el análisis experimental, requiriendo una conversión para mantener la coherencia en los resultados.
  • Explorar soluciones alternativas: Las posibles soluciones incluyen realizar conversiones manualmente, usar herramientas de hojas de cálculo como Excel, escribir un script para automatizar el proceso, o utilizar software especializado en análisis de datos.
  • Establecer criterios de éxito: El éxito se mide por la precisión de la conversión, la eficiencia en el manejo de grandes volúmenes de datos, la correcta integración de los datos convertidos con los resultados experimentales, y la facilidad de uso del método elegido.

Logica de Programacion Logica de Programacion Logica de Programacion

About

Repositorio con toda la informacion, imágenes y diapositivas del curso de "Lógica de Programación" de mi canal de YouTube

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published