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
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
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
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
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
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
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
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
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
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
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
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:
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
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
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
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
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
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.
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
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
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
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.
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.
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
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)
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
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
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.
componentes interrelacionados que trabajan juntos para manipular y transformar datos. Este sistema puede variar en complejidad, desde una simple calculadora hasta una supercomputadora masiva.
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.).
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.
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.