DOC-20240727-WA0106..pdf
Document Details
Uploaded by ExemplaryChlorine
Tags
Full Transcript
INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO PÚBLICO DE LA JOYA ARQUITECTURA DE PLATAFORMAS Y SERVICIOS DE TECNOLOGÍAS DE LA INFORMACIÓN SESIÓN DE APRENDIZAJE...
INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO PÚBLICO DE LA JOYA ARQUITECTURA DE PLATAFORMAS Y SERVICIOS DE TECNOLOGÍAS DE LA INFORMACIÓN SESIÓN DE APRENDIZAJE N° 01 UNIDAD DIDACTICA: Fundamentos de Lenguajes de Programación DOCENTE: Ing. Wilfredo Jorge Chávez Ilasaca NOMBRE DE LA SESIÓN: Lenguajes de programación y entornos de desarrollo. I. OBJETIVO: Abstrae conceptos de programación, lenguajes de programación y los IDE Conocer el entorno Visual Studio y Java Neetbeans. Distingue los fundamentos de la programación orientada a objetos. II. FUNDAMENTO TEORICO ¿QUE ES UN LENGUAJE DE PROGRAMACIÓN? En la era digital en la que vivimos, los lenguajes de programación son fundamentales para el desarrollo de aplicaciones, software y páginas web. Aunque parezcan un lenguaje complejo y difícil de entender, en realidad son herramientas que permiten a los programadores comunicarse con las computadoras y decirles qué hacer. “Un lenguaje de programación es una herramienta que nos permite crear programas informáticos, que son conjuntos de instrucciones que le indican a una computadora cómo realizar una tarea específica”. Un lenguaje de programación se conforma de una serie de símbolos y reglas de sintaxis y semántica que definen la estructura principal del lenguaje y le dan un significado a sus elementos y expresiones. La función principal de los lenguajes de programación es escribir programas que permiten la comunicación usuario-máquina. Unos programas especiales (compiladores o intérpretes) convierten las instrucciones escritas en código fuente, en instrucciones escritas en lenguaje máquina (0 y 1). ¿CUÁL ES LA IMPORTANCIA DE LOS LENGUAJES DE PROGRAMACIÓN EN EL DESARROLLO DE APLICACIONES? Los lenguajes de programación son fundamentales en el desarrollo de aplicaciones, ya que son las herramientas que permiten a los programadores crear software funcional y eficiente. Estos lenguajes son utilizados para escribir las instrucciones que la computadora debe seguir para realizar una determinada tarea o función. Fundamentos de Lenguaje de Programación Ing. Wilfredo J. Chávez Ilasaca La importancia de los lenguajes de programación radica en que permiten a los desarrolladores comunicarse con las máquinas de manera efectiva. A través de un lenguaje específico, los programadores pueden escribir el código necesario para resolver problemas complejos y crear aplicaciones que mejoren la vida de las personas. Además, los lenguajes de programación ofrecen una serie de ventajas que hacen más eficiente el proceso de desarrollo de aplicaciones. Algunas de estas ventajas son: Facilidad de uso: Los lenguajes de programación están diseñados para ser comprensibles tanto por humanos como por máquinas, lo que facilita la escritura y lectura del código. Reusabilidad de código: Muchos lenguajes de programación permiten la creación de funciones y módulos que pueden ser utilizados en diferentes partes de un programa, lo que ahorra tiempo y esfuerzo al programador. Flexibilidad: Los lenguajes de programación ofrecen una amplia gama de funcionalidades y características que se adaptan a las necesidades específicas de cada proyecto. Compatibilidad: Existen lenguajes de programación compatibles con diferentes sistemas operativos y plataformas, lo que permite el desarrollo de aplicaciones multiplataforma. Los lenguajes de programación son esenciales en el desarrollo de aplicaciones, ya que permiten a los programadores comunicarse con las máquinas de manera efectiva y crear software funcional y eficiente. Además, ofrecen ventajas como la facilidad de uso, la reusabilidad de código, la flexibilidad y la compatibilidad con diferentes sistemas operativos y plataformas. Figura 1: Lenguajes de Programación ¿QUÉ ES Y PARA QUÉ SIRVE UN IDE? Un entorno de desarrollo integrado (IDE) es un sistema de software para el diseño de aplicaciones que combina herramientas del desarrollador comunes en una sola interfaz gráfica de usuario (GUI). Generalmente, un IDE cuenta con las siguientes características: Editor de código fuente: editor de texto que ayuda a escribir el código de software con funciones como el resaltado de la sintaxis con indicaciones visuales, el relleno automático específico para el lenguaje y la comprobación de errores a medida que se escribe el código. 2 Fundamentos de Lenguaje de Programación Ing. Wilfredo J. Chávez Ilasaca Automatización de las compilaciones locales: herramientas que automatizan las tareas sencillas y repetitivas como parte de la creación de una compilación local del software para que use el desarrollador, como la compilación del código fuente de la computadora en código binario, el empaquetado de ese código y la ejecución de pruebas automatizadas. Depurador: programa que sirve para probar otros programas y mostrar la ubicación de un error en el código original de forma gráfica. ¿QUÉ SON LOS PARADIGMAS DE PROGRAMACIÓN? En el ámbito de la programación, un paradigma es un conjunto de principios y directrices que define un enfoque particular para diseñar, estructurar y escribir código. Cada paradigma impone una forma única de pensar sobre cómo debería desarrollarse el software y cómo interactúan sus componentes. Tipos de paradigmas de programación Fig. 02: Paradigmas de la programación Programación imperativa: Este es uno de los paradigmas de programación más antiguos y fundamentales. En la programación imperativa, se describen detalladamente los pasos que debe seguir el programa para alcanzar un estado deseado. Los lenguajes de programación como C y Pascal son ejemplos clásicos de este paradigma. Programación declarativa: A diferencia de la programación imperativa, la programación declarativa se centra en describir el resultado deseado sin especificar los pasos detallados para llegar allí. Dos subcategorías comunes son la programación funcional y la lógica. Lenguajes como Haskell y Prolog son representativos de estas subcategorías, respectivamente. Programación orientada a objetos (OOP): En la programación orientada a objetos, los programas se estructuran alrededor de «objetos», que son instancias de clases que encapsulan datos y métodos. Este enfoque se basa en conceptos como la encapsulación, la herencia y el polimorfismo. Lenguajes como Java, Python y C++ son conocidos por seguir este paradigma. 3 Fundamentos de Lenguaje de Programación Ing. Wilfredo J. Chávez Ilasaca Programación orientada a aspectos (AOP): La programación orientada a aspectos es un paradigma que permite modularizar aspectos transversales a través de la aplicación, como el registro o la seguridad, que no encajan fácilmente en un paradigma OOP tradicional. AspectJ es un ejemplo de un lenguaje que implementa la programación orientada a aspectos. Programación funcional: La programación funcional se centra en tratar las computaciones como evaluaciones de funciones matemáticas y evita el cambio de estado y datos mutables. Lenguajes como Lisp, Haskell y Erlang son conocidos por seguir este paradigma. Programación lógica: En este paradigma, la lógica formal se utiliza para expresar reglas y relaciones que gobiernan el problema en cuestión. Prolog es un ejemplo clásico de un lenguaje de programación lógica. Programación reactiva: La programación reactiva se centra en construir sistemas que reaccionan automáticamente a cambios en su entorno, mediante la propagación de cambios. RxJava y ReactiveX son bibliotecas que permiten la programación reactiva en lenguajes como Java. Programación basada en eventos: Este es otro de los paradigmas de programación; aquí el flujo del programa está determinado por eventos, como clics del reatón o entradas de usuario. JavaScript en el contexto de desarrollo web es un ejemplo común de programación basada en eventos. La importancia de entender los paradigmas de programación Adaptabilidad a diferentes problemas: Cada paradigma tiene sus fortalezas y debilidades, y entender varios paradigmas le permite a los programadores seleccionar el enfoque más adecuado para resolver problemas específicos. Flexibilidad en el desarrollo de software: La comprensión de múltiples paradigmas de programación le brinda a los desarrolladores la flexibilidad de elegir herramientas y lenguajes que mejor se adapten a los requisitos de un proyecto particular. Facilita el aprendizaje continuo: Los paradigmas evolucionan con el tiempo, y comprender varios paradigmas facilita el aprendizaje continuo y la adaptación a nuevas tecnologías y metodologías. PROGRAMACIÓN ORIENTADA A OBJETOS (POO) La programación orientada a objetos (POO) es un paradigma de programación que describe la construcción de un programa basado en “objetos”. El paradigma orientado a objetos se basa en el pensamiento de que todo es un objeto, al igual que todo lo que nos rodea en el mundo real también lo es. En este paradigma un computador, una persona o incluso el aire “todo se comporta como un objeto”. Estos objetos a su vez poseen “atributos”, que básicamente son el diferenciador que estos objetos pueden tener hacia otros, como lo pueden ser; su color, su altura o espesor. Por último mencionar que estos objetos también poseen “comportamientos”, que definen las acciones que un objeto puede realizar, como por ejemplo comer, cantar, enviar, etc. LOS PILARES DE LA PROGRAMACIÓN ORIENTADA A OBJETOS 4 Fundamentos de Lenguaje de Programación Ing. Wilfredo J. Chávez Ilasaca Los pilares de la programación orientada a objetos son principios fundamentales que guían el diseño y la implementación de sistemas utilizando este paradigma. Estos pilares proporcionan un marco conceptual para la organización y estructuración del código. A continuación, una breve descripción simplificada de cada uno de estos pilares. 1. Abstracción: La abstracción consiste en simplificar la complejidad de un sistema mediante la identificación de las partes esenciales y la omisión de los detalles no esenciales. En POO, los objetos actúan como abstracciones que modelan entidades del mundo real y sus interacciones. 2. Encapsulamiento: El encapsulamiento es la capacidad de decidir qué partes de una clase (atributos y métodos) serán expuestas hacia otras entidades y cuáles se mantendrán ocultas. Este pilar busca controlar la visibilidad y accesibilidad de los detalles internos de una clase. 3. Polimorfismo: El polimorfismo permite que un objeto tome muchas formas. En el contexto de la POO, se refiere a la capacidad de objetos de diferentes clases de responder a un mismo mensaje de manera única. Esto facilita la flexibilidad y la adaptabilidad del código. Este pilar apunta a cambiar el comportamiento de un objeto por sobrecarga o por sobrescritura de métodos. 4. Herencia: Es la capacidad de transferir características propias como atributos y métodos de un objeto a otro. Este pilar apunta a la reutilización de código existente. CONCEPTOS BASE DE LA PROGRAMACIÓN ORIENTADA A OBJETOS La programación orientada a objetos incluye varios elementos y conceptos fundamentales que es necesario comprender para utilizar este paradigma de manera efectiva. A continuación, una breve descripción de cada uno de estos conceptos, independientemente del lenguaje de programación de turno: 1. Clase: Una clase es una plantilla para la creación de objetos según un modelo definido. Una clase está compuesta de atributos y métodos. 2. Objeto: El objeto como tal es la instancia de una clase, es decir, es la pieza de software que nace a través de la plantilla. 3. Atributos: Los atributos son las características individuales que diferencian un objeto de otro, estos determinan su apariencia, estado u otras cualidades. 4. Métodos: Los métodos son una especificación de acciones que puede realizar el objeto. 5. Constructor: Un constructor como tal es el fabricador del objeto. El constructor recibe instrucciones de la creación y asigna valores a los atributos del objeto. Un constructor es básicamente un método que se ejecuta automáticamente a la hora de instanciar un objeto para su configuración. CONCEPTOS EXTENDIDOS DE POO Adicionalmente, existen otros artefactos de la programación orientada a objetos que agregan más herramientas para trabajar en diferentes situaciones. Destacando que estos artefactos no están 5 Fundamentos de Lenguaje de Programación Ing. Wilfredo J. Chávez Ilasaca disponibles en todos los lenguajes de programación y su implementación se realiza de diferente manera o incluso en algunas ocasiones se simula. Clase abstracta: Es una clase pensada en la herencia y el polimorfismo. En las clases abstractas debemos definir al menos un método abstracto, de manera que las clases derivadas, hereden e implementen los métodos abstractos. Las clases abstractas no se pueden instanciar, solo heredar y siempre que definimos un método abstracto, la clase debe ser abstracta. Métodos abstractos: Un método abstracto nos da la posibilidad de introducir la declaración de un método, pero no su definición. Clase estática: Es una clase pensada principalmente para tener funcionalidades que no necesitan el uso de objetos, es decir, sus funcionalidades se pueden llamar directamente sin instanciar el objeto (un claro ejemplo es Math en Javascript). Las clases estáticas no se pueden heredad ni instanciar. Métodos estáticos: Un método estático nos da la posibilidad de ser invocado sin la necesidad de instanciar su clase. Interfaces: Las interfaces cumplen la función de definir contratos dentro del código. Las interfaces moldean definiciones que una clase debe cumplir e implementar. Estas reglas aplican tanto en métodos como en propiedades dependiendo del lenguaje de programación. III. PROCEDIMIENTO PRACTICO EJERCICIO N° 01: 1. Instale Visual Studio Abra la siguiente dirección: https://visualstudio.microsoft.com/es/downloads/ Descargue la versión Comunidad 6 Fundamentos de Lenguaje de Programación Ing. Wilfredo J. Chávez Ilasaca Una vez finalizado la descarga, ejecutar de modo administrador, siguiendo las instrucciones de instalación. Una de las opciones es seleccionar el conjunto de herramientas dentro de Visual Studio para desarrollar cierto tipo de aplicaciones con cierto lenguaje. Marque los paquetes necesarios. Y finalmente cerrar la instalación. 2. Abrir Visual Studio. Clic en el icono de visual studio. En la pantalla inicial: Clic en Crear un proyecto: 7 Fundamentos de Lenguaje de Programación Ing. Wilfredo J. Chávez Ilasaca Seleccione el lenguaje: Seleccione Visual Basic y luego Aplicaciones de Window Form, clic en siguiente 8 Fundamentos de Lenguaje de Programación Ing. Wilfredo J. Chávez Ilasaca Ponga el nombre al proyecto y luego clic en siguiente Seleccione el Framework y clic en Crear. Nos muestra la interfaz de trabajo de Visual Studio. 3. Observe e identifique las partes del entorno de trabajo. EJERCICIO N° 02: 1. Abrir Visual Studio. 2. En la unidad D:\ crear la carpeta PRACTICAS_FLP_2024 y dentro la carpeta SESION_01, y ahí crear el archivo C# ejercicio01 en modo consola. 3. Escriba el siguiente código. using System; using System.Windows.Forms; 9 Fundamentos de Lenguaje de Programación Ing. Wilfredo J. Chávez Ilasaca namespace Hola_Mundo { Class Program { static void Main(String[] args ) { Console.Write(“Hola Mundo”); Console. ReadKey(); } } } 4. Ejecute: EJERCICIO N° 03: Realizar el formulario con un mensaje de bienvenida en C# window form 1. Abrir Visual Studio. 2. En la carpeta PRACTICAS_FLP_2024 y dentro la carpeta SESION_01 ahí crear el archivo C# ejercicio02 en modo window form. 3. Realice el siguiente diseño: 4. Modificar las propiedades: Button 1 Name: btnMensaje Text: Mensaje Form 1 Text: Mensaje de Bienvenida 5. Escriba el siguiente código. 10 Fundamentos de Lenguaje de Programación Ing. Wilfredo J. Chávez Ilasaca namespace eje_01 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnMensaje_Click(object sender, EventArgs e) { MessageBox.Show("Bienvenidos a Fundamentos de Lenguajes de Programación"); } } } 6. Ejecución: Haga clic en el botón Mensaje, sale la ventana emergente con el mensaje. IV. EJERCICIOS PROPUESTOS 1. Responda las siguientes preguntas: a. ¿Cuáles son los principales usos de visual studio? b. ¿Cuáles son las características de visual studio? 2. Realice un diagrama mental/conceptual/semántico sobre la Programación Orientada a Objetos. 11