Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OTI13 Introducción a la Programación para Ingre...

OTI13 Introducción a la Programación para Ingresantes

Avatar for Abraham Zamudio

Abraham Zamudio

March 10, 2025
Tweet

More Decks by Abraham Zamudio

Other Decks in Education

Transcript

  1. Ciencia La ciencia puede definirse como el conjunto de conocimientos

    obtenidos a través de la observación, el razonamiento y la experimentación, que se organizan de manera sistemática y se utilizan para comprender el mundo natural y social. Conjunto de conocimientos La ciencia también puede referirse al método de investigación utilizado para obtener estos conocimientos, que se basa en la formulación de hipótesis, la realización de experimentos y la evaluación de resultados. Método de investigación La ciencia puede referirse a una rama específica del conocimiento, como la física, la química, la biología o la sociología. Rama del conocimiento CURSOS GRATUITOS
  2. Ciencia La ciencia es una actividad humana que busca comprender

    el mundo a través de la observación, el razonamiento y la experimentación. CURSOS GRATUITOS
  3. Ingenieria La ingeniería se define como la aplicación de conocimientos

    científicos, matemáticos y técnicos para diseñar, construir y mantener estructuras, máquinas, dispositivos, sistemas y procesos. Aplicación de conocimientos científicos y técnicos La ingeniería se enfoca en la resolución de problemas prácticos y la satisfacción de necesidades humanas a través de la creación y mejora de tecnologías. Resolución de problemas prácticos Además, se define como la actividad profesional del ingeniero. Actividad profesional del ingeniero CURSOS GRATUITOS
  4. Ingenieria la ingeniería es una disciplina que combina la ciencia,

    la tecnología y la creatividad para transformar ideas en soluciones tangibles que mejoren la calidad de vida. CURSOS GRATUITOS
  5. Primera revolucion industrial CURSOS GRATUITOS Ciencias Básicas: • La termodinámica,

    que estudia la relación entre el calor y el trabajo, proporcionó la base científica para comprender cómo convertir la energía térmica en energía mecánica. • Los principios de la física, como la presión y el volumen de los gases, fueron esenciales para el diseño y la optimización de las máquinas de vapor. Ingeniería: • Ingenieros como James Watt aplicaron estos principios científicos para mejorar significativamente la eficiencia y la potencia de las máquinas de vapor existentes. • La invención y el perfeccionamiento de la máquina de vapor revolucionaron la industria, el transporte y la minería, al proporcionar una fuente de energía confiable y potente. La Máquina de Vapor
  6. Primera revolucion industrial CURSOS GRATUITOS Ciencias Básicas: • La química

    proporcionó conocimientos sobre las propiedades de los metales y las reacciones químicas involucradas en la producción de hierro y acero. • La mineralogía, que estudia los minerales y sus propiedades, fue fundamental para la identificación y el procesamiento de los minerales de hierro. Ingeniería: • Ingenieros metalúrgicos desarrollaron nuevos procesos, como el pudelado y el laminado, para producir hierro y acero de mayor calidad y en mayores cantidades. • La disponibilidad de acero más fuerte y económico impulsó la construcción de puentes, ferrocarriles y maquinaria industrial. Metalurgia y Producción de Acero
  7. Segunda revolucion industrial CURSOS GRATUITOS Ciencias Básicas: • Los descubrimientos

    de Michael Faraday sobre la inducción electromagnética y las leyes de Ohm y Kirchhoff sentaron las bases para la comprensión de la electricidad. • La física teórica, con el desarrollo de la teoría electromagnética de Maxwell, proporcionó un marco matemático para la electricidad y el magnetismo. Ingeniería: • Ingenieros como Thomas Edison y Nikola Tesla desarrollaron sistemas de generación, transmisión y distribución de electricidad, así como dispositivos eléctricos como la bombilla incandescente y el motor eléctrico. • La invención del telégrafo, el teléfono y la radio revolucionó las comunicaciones. Electricidad y Electrónica
  8. Segunda revolucion industrial CURSOS GRATUITOS Ciencias Básicas: • La termodinámica

    y la mecánica de fluidos proporcionaron la base científica para comprender el funcionamiento de los motores de combustión interna. • La química permitió el desarrollo de combustibles más eficientes. Ingeniería: • Ingenieros como Rudolf Diesel y Karl Benz desarrollaron motores de combustión interna eficientes y confiables. • La invención del automóvil y el avión transformó el transporte. El Motor de Combustión Interna
  9. Segunda revolucion industrial CURSOS GRATUITOS Ciencias Básicas: • El desarrollo

    de la estadística y el control de calidad permitió mejorar la eficiencia de los procesos de producción. • la metrologia desarrollo herramientas de medida muy precisas. Ingeniería: • Henry Ford introdujo la línea de ensamblaje y la producción en masa, lo que redujo drásticamente los costos de producción. • La estandarización de piezas y componentes facilitó la fabricación y el mantenimiento de productos. Producción en Masa y Estandarización
  10. Tercera revolucion industrial CURSOS GRATUITOS Ciencias Básicas: • La física

    cuántica y la física del estado sólido proporcionaron la base para la comprensión de los semiconductores y la electrónica. • La lógica matemática y la teoría de la información sentaron las bases para el desarrollo de la computación y la informática. Ingeniería: • Ingenieros eléctricos y de computación desarrollaron los transistores, los circuitos integrados y los microprocesadores, que son los componentes fundamentales de las computadoras modernas. • El desarrollo de lenguajes de programación y algoritmos permitió la creación de software para una amplia gama de aplicaciones. • La creación de internet y la world wide web, transformo la comunicacion a nivel global. La Computación y la Informática
  11. Tercera revolucion industrial CURSOS GRATUITOS Ciencias Básicas: • La física

    de las ondas electromagnéticas permitió el desarrollo de tecnologías de comunicación inalámbrica. • La teoría de la información proporcionó herramientas para la codificación y transmisión eficiente de datos. Ingeniería: • Ingenieros de telecomunicaciones desarrollaron sistemas de comunicación por satélite, telefonía móvil y redes de fibra óptica. • La digitalización de las comunicaciones permitió la convergencia de voz, datos y video en una sola red. Las Telecomunicaciones
  12. Tercera revolucion industrial CURSOS GRATUITOS Ciencias Básicas: • El descubrimiento

    de la estructura del ADN y el desarrollo de técnicas de biología molecular revolucionaron la biología. • La genómica y la bioinformática proporcionaron herramientas para el análisis de grandes conjuntos de datos biológicos. Ingeniería: • Ingenieros biomédicos desarrollaron tecnologías para el diagnóstico y tratamiento de enfermedades, como la resonancia magnética y la terapia génica. • La ingeniería genética permitió la creación de organismos modificados genéticamente para la producción de medicamentos y alimentos. La Biotecnología
  13. Tercera revolucion industrial CURSOS GRATUITOS Ciencias Básicas: • La física

    del estado sólido y la química de materiales proporcionaron la base para el desarrollo de nuevos materiales con propiedades mejoradas. • La nanotecnología permitió la manipulación de materiales a escala atómica y molecular. Ingeniería: • Ingenieros de materiales desarrollaron materiales compuestos, polímeros avanzados y nanomateriales para aplicaciones en diversas industrias. • La impresión 3D, permitió la creación de prototipos y la fabricación de piezas personalizadas. La Ciencia de los Materiales
  14. Cuarta revolucion industrial CURSOS GRATUITOS La diferencia fundamental entre la

    Tercera y la Cuarta Revolución Industrial radica en la evolución y la convergencia de las tecnologías digitales.
  15. Cuarta revolucion industrial CURSOS GRATUITOS Enfoque: • Se basa en

    la convergencia de tecnologías digitales, físicas y biológicas. • Se caracteriza por la interconexión, la inteligencia artificial, el Internet de las cosas (IoT), el big data, la robótica avanzada y la ciberseguridad. Características: • Automatización avanzada y sistemas ciberfísicos. • Interconexión de máquinas, dispositivos y sistemas. • Análisis de grandes volúmenes de datos para la toma de decisiones en tiempo real. • Personalización masiva y producción flexible. Impacto: • Transformación de la industria hacia fábricas inteligentes y conectadas. • Desarrollo de nuevos modelos de negocio y servicios personalizados. • Cambios profundos en la forma en que trabajamos y vivimos. Industria 4.0:
  16. Formulando un problema CURSOS GRATUITOS Formular un problema en ingeniería

    es un proceso que implica varias acciones clave, diseñadas para transformar una necesidad o desafío en un objetivo claro y alcanzable.
  17. Formulando un problema CURSOS GRATUITOS • Reconocimiento de la necesidad:

    El primer paso es identificar claramente qué problema se necesita resolver o qué necesidad se debe satisfacer. Esto puede surgir de una observación, una demanda del mercado, o una oportunidad de mejora. • Delimitación del problema: Es crucial definir los límites del problema, es decir, qué está incluido y qué no. Esto ayuda a enfocar los esfuerzos y evitar desviaciones. • Descripción detallada: Se debe realizar una descripción exhaustiva del problema, incluyendo sus causas, efectos, y cualquier información relevante. 1. Identificación y Definición del Problema
  18. Formulando un problema CURSOS GRATUITOS •Investigación: Recopilar información sobre el

    problema, incluyendo estudios previos, datos relevantes, y opiniones de expertos. •Evaluación de restricciones: Identificar las limitaciones que pueden afectar la solución, como restricciones presupuestarias, temporales, ambientales, o legales. •Análisis de interesados: Identificar a todas las personas o grupos que se verán afectados por el problema o su solución, y comprender sus necesidades y expectativas. 2. Análisis del Contexto
  19. Formulando un problema CURSOS GRATUITOS •Definición de metas: Establecer metas

    claras y medibles que describan lo que se espera lograr con la solución. •Especificación de criterios de éxito: Definir los criterios que se utilizarán para evaluar si la solución ha sido exitosa. •Priorización de objetivos: En caso de tener múltiples objetivos, establecer prioridades para asegurar que los esfuerzos se enfoquen en lo más importante. 3. Establecimiento de Objetivos
  20. Formulando un problema CURSOS GRATUITOS •Redacción clara y concisa: Escribir

    un enunciado del problema que resuma de manera clara y concisa la situación actual, el problema en sí, y los objetivos a alcanzar. •Uso de lenguaje técnico adecuado: Utilizar un lenguaje técnico preciso y apropiado para el contexto del problema. •Validación del enunciado: Revisar y validar el enunciado del problema con otros ingenieros y expertos para asegurar que sea preciso y completo. 4. Formulación del Enunciado del Problema
  21. Formulando un problema CURSOS GRATUITOS •Visualización: Utilizar diagramas, gráficos, o

    modelos para representar visualmente el problema y sus componentes. •Documentación: Mantener un registro detallado de todo el proceso de formulación del problema, incluyendo la información recopilada, los análisis realizados, y las decisiones tomadas. 5. Consideraciones Adicionales
  22. Lenguajes de Programacion CURSOS GRATUITOS El desarrollo de los lenguajes

    de programación ha sido un pilar fundamental en la evolución de la tecnología y la informática. En las últimas décadas, hemos presenciado una transformación significativa, desde lenguajes de bajo nivel hasta lenguajes de alto nivel, orientados a objetos, funcionales y de propósito específico. En esta parte de la clase resumire los hitos más relevantes en este período.
  23. Década de 1960: Los Primeros Lenguajes de Alto Nivel •

    FORTRAN (1957): Diseñado para aplicaciones científicas y de ingeniería, fue el primer lenguaje de alto nivel ampliamente adoptado. • COBOL (1959): Orientado a aplicaciones empresariales, se convirtió en estándar en sistemas financieros y gubernamentales. • ALGOL (1960): Sentó las bases para la estructuración de programas y la sintaxis de muchos lenguajes modernos. • LISP (1958): Desarrollado para la inteligencia artificial, introdujo conceptos como la recursión y la programación funcional. Década de 1970: La Era de la Estructuración • C (1972): Desarrollado por Dennis Ritchie, se convirtió en el lenguaje base para sistemas operativos como Unix y sentó las bases para lenguajes posteriores. • Pascal (1970): Diseñado para la enseñanza de programación estructurada, influyó en lenguajes como Modula y Ada. • SQL (1974): Introducido para la gestión de bases de datos relacionales, sigue siendo fundamental en el manejo de datos. CURSOS GRATUITOS Lenguajes de Programacion
  24. Década de 1980: Programación Orientada a Objetos •C++ (1985): Extensión

    de C con soporte para programación orientada a objetos (POO), ampliamente utilizado en desarrollo de software. •Objective-C (1984): Combinó C con Smalltalk, influyendo en el desarrollo de aplicaciones para macOS e iOS. •Ada (1983): Diseñado para aplicaciones críticas en defensa y aeroespacial, destacó por su robustez y seguridad. Década de 1990: Expansión y Diversificación •Python (1991): Enfatizó la legibilidad y simplicidad, convirtiéndose en uno de los lenguajes más populares para múltiples aplicaciones. •Java (1995): Introdujo la filosofía "write once, run anywhere" (WORA), revolucionando el desarrollo de aplicaciones empresariales y web. •JavaScript (1995): Impulsó la interactividad en la web, convirtiéndose en el lenguaje estándar para desarrollo front-end. •Ruby (1995): Destacó por su enfoque en la productividad y la simplicidad, popularizado por el framework Ruby on Rails. CURSOS GRATUITOS Lenguajes de Programacion
  25. Década de 2000: Lenguajes Modernos y Especializados •C# (2000): Desarrollado

    por Microsoft, se convirtió en un pilar para aplicaciones Windows y desarrollo de videojuegos con Unity. •Swift (2014): Introducido por Apple, reemplazó a Objective-C como el lenguaje principal para desarrollo en iOS y macOS. •Go (2009): Creado por Google, destacó por su eficiencia en sistemas distribuidos y aplicaciones en la nube. •Rust (2010): Enfocado en seguridad y rendimiento, ganó popularidad en sistemas de bajo nivel y desarrollo de sistemas operativos. Década de 2010- 2020: Enfoque en Productividad y Especialización •Kotlin (2011): Adoptado como lenguaje oficial para desarrollo Android, ofreció una alternativa moderna a Java. •TypeScript (2012): Extensión de JavaScript con tipado estático, mejoró la escalabilidad de aplicaciones web. •R (1993, popularizado en 2010s): Dominó el análisis estadístico y la ciencia de datos. •Julia (2012): Diseñado para computación científica y análisis de datos de alto rendimiento. CURSOS GRATUITOS Lenguajes de Programacion
  26. Tendencias Actuales (2020s) •Lenguajes de dominio específico (DSL): Aumento de

    lenguajes especializados para áreas como inteligencia artificial, blockchain y big data. •Enfoque en seguridad y concurrencia: Lenguajes como Rust y Go continúan ganando terreno por su manejo seguro de memoria y concurrencia. •Integración con IA: Lenguajes como Python y Julia son fundamentales en el desarrollo de modelos de machine learning y deep learning. •Low-code/No-code: Plataformas que permiten desarrollo sin necesidad de programación tradicional, democratizando el acceso a la creación de software. CURSOS GRATUITOS Lenguajes de Programacion Conclusión En las últimas décadas, los lenguajes de programación han evolucionado desde herramientas rudimentarias hasta sistemas sofisticados y especializados. Esta evolución ha sido impulsada por las necesidades cambiantes de la industria, desde la computación científica hasta la inteligencia artificial y el desarrollo web. El futuro apunta hacia una mayor especialización, seguridad y accesibilidad, consolidando la programación como una habilidad esencial en el mundo moderno.
  27. Paradigmas de la Programacion CURSOS GRATUITOS Los paradigmas de la

    programación son enfoques o estilos que definen cómo se estructuran y ejecutan los programas. Cada paradigma ofrece un conjunto de principios, técnicas y herramientas para resolver problemas de software. En esta seccion de la clase describiremos los principales paradigmas de programación, sus características y aplicaciones.
  28. Paradigmas de la Programacion CURSOS GRATUITOS • Descripción: Es el

    paradigma más tradicional y se basa en la ejecución de una secuencia de instrucciones que modifican el estado del programa. • Características: •Uso de variables, bucles (for, while) y condicionales (if, else). •Enfoque en "cómo" se realiza una tarea paso a paso. •El flujo del programa es explícito y lineal. • Ventajas: •Fácil de entender y depurar. •Ampliamente utilizado y soportado. • Desventajas: •Puede volverse complejo en proyectos grandes. •Menos eficiente para problemas que requieren alto nivel de abstracción. • Lenguajes representativos: C, Pascal, BASIC. • Aplicaciones: Sistemas operativos, software de bajo nivel, scripts simples. 1. Programación Imperativa
  29. Paradigmas de la Programacion CURSOS GRATUITOS • Descripción: Organiza el

    software en "objetos" que encapsulan datos (atributos) y comportamientos (métodos). • Características: • Clases y objetos: Las clases son plantillas para crear objetos. • Herencia: Permite reutilizar código mediante jerarquías de clases. • Polimorfismo: Objetos de diferentes clases pueden responder al mismo mensaje. • Encapsulamiento: Oculta los detalles internos de los objetos. • Ventajas: • Facilita la reutilización y mantenimiento del código. • Ideal para modelar problemas del mundo real. • Desventajas: • Curva de aprendizaje más pronunciada. • Puede generar sobrecarga en proyectos pequeños. • Lenguajes representativos: Java, C++, Python, Ruby. • Aplicaciones: Desarrollo de software empresarial, aplicaciones móviles, videojuegos. 2. Programación Orientada a Objetos (POO)
  30. Paradigmas de la Programacion CURSOS GRATUITOS • Descripción: Trata la

    computación como la evaluación de funciones matemáticas, evitando cambios de estado y datos mutables. • Características: •Funciones como ciudadanos de primera clase (pueden pasarse como argumentos). •Uso de recursión en lugar de bucles. •Inmutabilidad de los datos (no se modifican después de su creación). •Enfoque en "qué" se debe hacer, no en "cómo". • Ventajas: •Código más conciso y predecible. •Ideal para procesamiento paralelo y concurrente. • Desventajas: •Curva de aprendizaje para desarrolladores acostumbrados a paradigmas imperativos. •Puede ser menos eficiente en términos de rendimiento en algunos casos. • Lenguajes representativos: Haskell, Lisp, Erlang, Scala. • Aplicaciones: Procesamiento de datos, sistemas concurrentes, inteligencia artificial. 3. Programación Funcional
  31. Paradigmas de la Programacion CURSOS GRATUITOS • Descripción: Describe "qué"

    debe hacer el programa, sin especificar "cómo" lograrlo. Incluye subparadigmas como la programación lógica y funcional. • Características: •Enfoque en resultados, no en pasos. •Uso de consultas y reglas para definir comportamientos. •Menos énfasis en el control de flujo. • Ventajas: •Código más legible y mantenible. •Ideal para problemas complejos que requieren alto nivel de abstracción. • Desventajas: •Menos control sobre la ejecución del programa. •Puede ser menos eficiente en términos de rendimiento. • Lenguajes representativos: SQL (para consultas de bases de datos), HTML (para estructura web), Prolog (programación lógica). • Aplicaciones: Bases de datos, desarrollo web, sistemas expertos. 4. Programación Declarativa
  32. Paradigmas de la Programacion CURSOS GRATUITOS Conclusión Los cuatro paradigmas

    principales (imperativo, orientado a objetos, funcional y declarativo) ofrecen enfoques distintos para resolver problemas de software. La elección del paradigma depende del tipo de problema, los requisitos del sistema y las preferencias del desarrollador. En la práctica, muchos lenguajes modernos, como Python y JavaScript, combinan múltiples paradigmas, permitiendo a los programadores aprovechar lo mejor de cada enfoque. Esta flexibilidad ha sido clave para la evolución y adaptabilidad de la ingeniería de software en las últimas décadas.
  33. Sistema de procesamiento computacional CURSOS GRATUITOS Es un conjunto de

    componentes interrelacionados que trabajan juntos para manipular y transformar datos. Este sistema puede variar en complejidad, desde una simple calculadora hasta una supercomputadora masiva.
  34. Sistema de procesamiento computacional CURSOS GRATUITOS Definición Un sistema de

    procesamiento computacional es un sistema que: • Recibe datos: A través de dispositivos de entrada (teclado, ratón, sensores, etc.). • Procesa datos: Utilizando una unidad central de procesamiento (CPU) o unidades de procesamiento gráfico (GPU) y otros componentes de hardware. • Almacena datos: En memoria (RAM) o almacenamiento permanente (discos duros, SSD, etc.). • Genera resultados: A través de dispositivos de salida (monitor, impresora, altavoces, etc.).
  35. Sistema de procesamiento computacional CURSOS GRATUITOS Componentes clave Hardware: •

    Unidad Central de Procesamiento (CPU): El "cerebro" del sistema, que ejecuta instrucciones. • Memoria de Acceso Aleatorio (RAM): Almacenamiento temporal para datos y programas en uso. • Dispositivos de almacenamiento: Almacenan datos y programas de forma permanente. • Dispositivos de entrada/salida (E/S): Permiten la interacción con el usuario y el entorno. Software: • Sistema operativo: Controla el hardware y proporciona una interfaz para el usuario. • Aplicaciones: Programas que realizan tareas específicas.
  36. Sistema de procesamiento computacional CURSOS GRATUITOS Tipos de sistemas de

    procesamiento computacional • Computadoras personales (PC): Para uso general. • Servidores: Para proporcionar servicios en una red. • Supercomputadoras: Para cálculos complejos. • Dispositivos móviles: Teléfonos inteligentes, tabletas, etc. • Sistemas integrados: En dispositivos electrónicos como automóviles y electrodomésticos.