Resumen Temas Del Parcial

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

Introducción a la Programación

La programación se define como el proceso de crear un conjunto de instrucciones que una computadora
puede seguir para realizar una tarea específica. La función principal de la programación es escribir
programas que permiten la comunicación usuario-máquina. Esto nos ofrece la posibilidad de automatizar
tareas, desarrollar distintos tipos de software dependiendo de la necesidad y la resolución a problemas.

Algoritmos
1.1 ¿Qué son los Algoritmos?
Un algoritmo es un conjunto de instrucciones definidas y ordenadas para
resolver un problema o realizar un cálculo. A partir de un estado e
información inicial, se siguen una serie de pasos ordenados para llegar a la
solución de una situación.
En programación, un algoritmo supone el paso previo a ponerse a escribir
el código. De este modo, un programa informático no sería más que un
conjunto de algoritmos ordenados y codificados en un lenguaje de
programación para poder ser ejecutados en un ordenador.

1.2 Partes de un algoritmo


Las tres partes de un algoritmo son:
- Input (entrada): Información que se da al algoritmo para ofrecer la solución esperada.
- Proceso: Son los pasos para llegar a la solución de la situación.
- Output (salida): Salidas del proceso tras la modificación de los datos de entrada.

Programas
2.1 ¿Qué son los programas?
Un programa es un conjunto de instrucciones ya definidas que le indican a la computadora qué hacer.
Estas instrucciones son algoritmos ya escritos en un lenguaje de programación, para que la computadora
pueda entender lo que se debe hacer.
Los programas se pueden usar para realizar una gran variedad de tareas, como:
● Calcular: los programas pueden usarse para realizar cálculos matemáticos simples o complejos.
● Procesar información: son utilizados para leer, procesar y almacenar información.
● Controlar dispositivos: son empleados para controlar dispositivos como robots, impresoras y
cámaras.
● Comunicarse: sirven para comunicarse con otros dispositivos o con personas a través de redes.

¿Cómo se crean los programas?


La programación implica escribir el código fuente del programa en un lenguaje de programación. El
código fuente luego se compila o se interpreta en un lenguaje que la computadora puede entender.

2.3 Tipos de programas:


● Programas de aplicación: estos están diseñados para realizar una tarea específica, como escribir
un documento, navegar por internet o jugar un juego.
● Programas de sistema: estos programas son esenciales para el funcionamiento de la computadora,
como el sistema operativo, los controladores de dispositivos y las utilidades.

Lenguajes de la programación
Es un sistema de signos con un conjunto de instrucciones que permite la interacción de los humanos con
las computadoras. Dicho lenguaje está compuesto por símbolos, reglas sintácticas y semánticas.

3.1 Tipos de lenguaje de programación:


● Lenguajes de bajo nivel
Están diseñados para un hardware específico y que por lo tanto no pueden exportarse a otros
computadores. Se utilizan cuando se desarrollan sistemas operativos, controladores de hardware o
software de tiempo real.
Este tiene dos sub lenguajes de programación:
● Lenguaje de máquina
○ Este lenguaje es formado por un grupo de instrucciones que
determinan las acciones que serán ejecutadas por la máquina.
Es la forma más básica de comunicación con una
computadora, ya que usa el alfabeto binario 0 y 1.
● Lenguaje de ensambladores
○ Este es más entendible que el de máquina, ya que utiliza mnemotécnicos y símbolos para
representar datos y operaciones. Este lenguaje ayuda a comprender mejor cómo funciona

2
el hardware a nivel bajo y ayuda a quienes quieran construir software, incluso de alto
nivel.

● Lenguajes de alto nivel


Se caracterizan por ser más fáciles de comprender. Se redactan de manera similar a la escritura humana,
ya que su sintaxis está redactada en lenguajes mayormente conocidos, principalmente el inglés. Este
lenguaje permite codificar los algoritmos de manera más sencilla en vez de codificarlos con el lenguaje
binario o lenguaje ensamblador. Aunque usar el idioma de uno tiene sus consecuencias, ya que existen
diferentes versiones o dialectos.
Ejemplos
1. Ejemplos de Lenguaje de Bajo Nivel
a. Lenguaje C
b. Ensamblador (Assembly) x86
c. Ensamblador (Assembly) ARM
d. Forth
e. B
2. Lenguaje de Alto Nivel
a. C++
b. Fortran
c. Java
d. Python
e. Swift (enfocado al desarrollo para aplicaciones iOs y MacOS), Ruby on Rails (para la
creación de Twitter, Basecamp o Hulu), Go (desarrollado por Google)

3
Conceptos de paradigmas de programación
Los paradigmas de programación son las filosofías que guían la forma en la que los desarrolladores desarrollan
software. Al entender estos paradigmas, el programador puede desarrollar de manera más eficiente. La elección
del paradigma adecuado para un proyecto específico es fundamental para el éxito del desarrollo de software en un
mundo tecnológicamente diverso y en constante cambio.
Tipos de paradigmas de programación
Programación imperativa: Los lenguajes de programación imperativa son como
unas instrucciones paso a paso, redactadas para el ordenador. Describen de forma
explícita qué pasos deben llevarse a cabo y en qué secuencia para alcanzar
finalmente la solución deseada. Se reconocen porque describen detalladamente los
pasos que debe seguir el programa para alcanzar un estado deseado.

Programación declarativa: se caracterizan porque se centra en describir el


resultado deseado sin especificar los pasos detallados para llegar allí. En los
lenguajes declarativos, el código fuente permanece muy abstracto en relación al
procedimiento concreto. Para llegar a la solución, se utiliza un algoritmo que
encuentra y utiliza
automáticamente los métodos adecuados.

Estos paradigmas son:

Programación lógica

Programación funcional

Programación estructurada
Surgió debido a las dificultades que conllevaba a la hora de depurar o modificar los primeros códigos, gracias a esto
se llega a tener un código mejor organizado y limpio. Es el más común, con ella todos los programadores aprenden a
crear código; da instrucciones a la computadora de manera secuencial, una detrás de otra y en orden hasta haber
cumplido con todas.

Paradigma de programación procedimental La programación procedimental consiste en reducir los problemas a


trozos más pequeños, funciones y procedimientos, y si es necesario agrupar estos trozos más pequeños con
elementos en común en módulos.

Paradigma de programación modular


Es un método de diseño de programas que tiende a dividir el problema en partes perfectamente diferenciadas o
funciones lógicas que pueden ser analizadas, programadas y puesta a punto independientemente.
Se basa en diseñar un programa dividiéndolo en módulos que resultan de segmentar el problema en funciones lógicas
que son perfectamente diferenciadas.
Programación lógica

Se entiende como el mecanismo donde el usuario debe hacerse cargo de programar el ordenador para que sea capaz
de tomar decisiones propias basándose en los postulados y parámetros de la lógica matemática. En este paradigma
de programación, las instrucciones del programa suelen expresar o representar hechos y reglas relacionadas con
problemas dentro de un sistema de lógica formal.
Este tipo de programación es de código abierto, quiere decir que puede ser modificado dependiendo de los problemas
o necesidades que surjan.

Programación funcional
La programación funcional es un paradigma declarativo. Nos enfocaremos en "qué" estamos haciendo y no en "cómo"
se está haciendo que sería el enfoque imperativo. Esto quiere decir que nosotros expresaremos nuestra lógica sin
describir controles de flujo; no usaremos ciclos o condicionales.
Su objetivo principal es reducir los efectos secundarios que se logran aislándolos del resto del código del
software.
Este tipo de programación es de código cerrado, quiere decir que, aunque esta diseñada para dar un resultado,
el código del programa no puede ser modificado debido que fue diseñado para llegar a una respuesta en común.

Programación Estructurada

Definición
Es un paradigma de la programación, es decir, un estilo de codificar los algoritmos orientado a mejorar la claridad,
calidad y tiempo de desarrollo de un programa de computadora recurriendo únicamente a subrutinas y a tres
estructuras de control básicas que se aplica en los
lenguajes de programación.

Orígenes
A finales de los años 1970 surgió una nueva forma de programar que no solamente permitía desarrollar programas
fiables y eficientes, sino que además estos estaban escritos de manera que se facilitaba su comprensión en fases de
mejora posteriores.

¿Qué aporto la Programación estructurada?


Las funciones permitieron descomponer fragmentos de código en piezas pequeñas, fáciles de entender y de mantener,
delegando la responsabilidad a rutinas que eran capaces de resolver un problema y de cuyo funcionamiento interno
el programador no tenía que preocuparse porque sabía que serían capaces de hacerlo. resolver sus problema.

Su estructura
Estructura secuencial: Consiste en una secuencia de instrucciones del lenguaje o funciones del programador que se
ejecutan en orden.
Estructura condicional: Ejecuta una estructura si se cumple una condición booleana. Por ejemplo, un “si-entonces”.
Estructura iterativa con condición: Repite una estructura mientras se cumpla una condición booleana. Por ejemplo, un
“mientras-hacer”.
PROGRAMACIÓN ORIENTADA A OBJETOS

¿Qué es la Programación Orientada a Objetos?

La Programación Orientada a Objetos (POO) es un método de programación, es decir,


un programa o modelo que nos da instrucciones de cómo utilizarlo. Se basa en el
concepto de clases y objetos. Este estilo de programación se utiliza para organizar
programas de software en estructuras de código simples, que pueden usarse (clases)
para crear objetos individuales.

¿Cuáles son los elementos que definen un objeto?

Los objetos de programación son objetos del mundo real, así como conceptos
abstractos con propiedades y comportamientos específicos. Los objetos tienen una
estructura interna que combinas variables, funciones y estructuras de datos. Usando
el nombre del objeto y la sintaxis del lenguaje de programación, puede mostrar el
valor del objeto y llamar a sus funciones predefinidas. Los elementos de objeto se
dividen en dos categorías: propiedades y métodos. Las propiedades, también
llamadas propiedades, contienen información sobre un objeto. Por ejemplo, si
consideramos un objeto automóvil, algunas de sus propiedades serán: color, marca,
modelo o año de fabricación. Los métodos definen las operaciones que se pueden
realizar con el objeto.

Conceptos fundamentales de la programación orientada a objetos

1. Clases y Objetos: -Las clases son como plantillas o moldes que definen las
propiedades y Comportamientos de los objetos. Los objetos son instancias
específicas de esas clases que Pueden contener tanto datos (atributos) como
código (métodos) que opera en esos datos.
2. Encapsulación: -La encapsulación consiste en ocultar los detalles internos de
un objeto y Exponer solo lo necesario para su uso externo. Esto se logra
definiendo los atributos y métodos De un objeto como públicos, privados o
protegidos.
3. Herencia: - La herencia es un mecanismo que permite que una clase herede
atributos y Métodos de otra clase. Esto fomenta la reutilización del código y la
organización jerárquica de Las clases.
4. Polimorfismo: - El polimorfismo es la capacidad de objetos de diferentes
clases de responder Al mismo mensaje de manera diferente. Esto significa que
un mismo mensaje puede tener Diferentes implementaciones dependiendo
del tipo de objeto que lo recibe, lo que facilita la Flexibilidad y la extensibilidad
del código.
Beneficios de la POO

1. Reutilización de código: clases y objetos pueden reutilizarse en diferentes


partes del programa O programas.
2. Modularidad: La POO permite dividir un programa en módulos más pequeños
y Manejables, lo que facilita el mantenimiento y la escalabilidad del código.
3. Abstracción: Permite Representar entidades del mundo real de manera más
fiel, lo que facilita la comprensión del Código y su relación con el dominio del
problema.

¿Qué ventajas tiene la programación orientada a objetos?

➢ Mayor modificabilidad: Otra de las ventajas de la programación orientada a


objetos es que Permite añadir, modificar o eliminar nuevos objetos o funciones
fácilmente para actualizar los Programas, lo cual implica un ahorro de tiempo
y esfuerzo para los programadores.
➢ Facilidad para detectar errores en el código. En los lenguajes de programación
orientada a Objetos no es necesario revisar línea por línea del código para
detectar un error. Gracias a la Encapsulación los objetos son autónomos, de
manera que es más fácil abstraer un problema y Saber dónde buscar el error
cuando algo no funciona bien.
➢ Modularidad: Una de las características de la programación orientada a
objetos más Interesantes es la modularidad ya que así un equipo puede
trabajar en múltiples objetos a la vez Mientras se minimizan las posibilidades
de que un programador duplique la funcionalidad de Otro. El trabajo modular
también permite dividir los problemas en partes más pequeñas que se Pueden
probar de manera independiente.
➢ Flexibilidad gracias al polimorfismo: El polimorfismo de la programación
orientada a objetos Permite que una sola función pueda cambiar de forma
para adaptarse a cualquier clase donde Se encuentre. De esta forma se ahorra
tiempo de programación y se gana en versatilidad.

¿Qué desventajas tienen la programación orientada a objetos?

Complejidad

Uso excesivo de memoria

Limitaciones de escalabilidad

Problemas de mantenibilidad
Tema 4: Programación Orientada a Eventos (Resumen)
1. ¿Qué es la Programación Orientada a Eventos (POE)?

→ La POE es un tipo de programación donde existirá una interacción entre el


usuario y el software. Consistirá en que el programa esperará al usuario a
que inicie una acción o un evento. Por lo tanto, el programa solo se
“despertará” si se realiza un evento relevante por el usuario.

2. Características
• A diferencia de la Programación de tipo estructurada, la POE otorga al
usuario un control total del programa, determinando que parte del programa
se efectuará.

• Los elementos de la POE son: el programa, el usuario, los eventos a


realizar, el teclado o mouse (medio a ejecutar los eventos).
• No reemplaza a la Programación estructurada, sino que la complementa.
Es decir, que las metodologías tradicionales de la programación siguen
siendo esenciales en su estructura general y los eventos efectuados por la
POE, sirven para diseñar la GUI (Graphical User Interface, en inglés).

• La Interfaz Gráfica de Usuario (GUI) es la forma en la que un usuario


interactúa con un sistema operativo sin introducir comandos de textos
utilizando un conjunto de imágenes y objetos gráficos para representarlo.

Las primeras formas de esta interacción sin introducir directamente los


comandos de textos fueron el empleo del mouse (ratón), mayormente
usado al momento de usar los ordenadores o dispositivos informáticos y ha
llegado a lo que es conocido como las touchscreen (pantallas táctiles).

Algunos ejemplos más comunes de GUI son el escritorio de Windows o


Mac.
• La POE se puede adaptar a cualquier tipo de lenguaje programación y se
ejecutarán mientras esperan a otros eventos, evitando el bloqueo en el
transcurso del programa.

3. Tipos de eventos: Estos son algunos de los tipos de eventos que se


activan de manera constante, ya sea el usuario del sitio web, el navegador
u otras aplicaciones.
En este enlace se encuentran más ejemplos sobre los tipos de eventos:

https://4geeks.com/es/lesson/event-driven-programming-es#tipos-de-eventos

4. Ventajas

Flexibilidad: Adaptación a una amplia gama de desarrollo de software

Interactividad: Es su ventaja más importante ya que, mejora la experiencia del


usuario en la programación y navegar en su propia experiencia.

Fácil mantenimiento: Se evita la necesidad de corregir o ajustar un código en el


programa.

Concurrencia y escalabilidad: Procesamiento de más de un evento a la vez,


por lo tanto, le permite manejar grandes volúmenes de eventos sin depender
de un solo consumidor.

Menor codificación de errores: Probabilidad mínima de introducir errores en el


desarrollo del programa.

5. Desventajas
Flexibilidad: Es tanto su ventaja como desventaja, ya que se detecta de una
manera menos rápida y sencilla los defectos operativos, resultando
imprevisible al programador.

Flujo de control completo: No es óptimo su ejecución en aplicaciones pequeñas


y sencillas, aumentando su complejidad de diseño y entrega del sistema.

No reemplaza a la programación estructurada: La POE no puede reemplazarla


pero si complementar a la Programación estructurada.
Etapas para la resolución de problemas por computadora

La resolución de problemas por computadora es un proceso estructurado y sistemático que implica una serie de etapas
para abordar y resolver un problema utilizando herramientas y técnicas computacionales.

Definición del problema: Es importante comprender y definir claramente el problema que se desea resolver.

Análisis del problema: En esta etapa, se descompone el problema en partes más pequeñas y manejables.

Diseño del algoritmo: Aquí se desarrolla un plan de acción o un algoritmo que describa los pasos necesarios para
resolver el problema. Puede ser expresado en forma de diagrama de flujo, pseudocódigo o cualquier otra
representación lógica.

Codificación: En esta etapa, se traduce el algoritmo a un lenguaje de programación comprensible para la computadora.

Pruebas y depuración: Una vez que se ha codificado el programa, se realizan pruebas exhaustivas con diferentes
conjuntos de datos de entrada para verificar su correcto funcionamiento y detectar posibles errores o fallas.

Mantenimiento: Después de que el programa ha sido probado y se ha verificado su correcto funcionamiento, puede ser
necesario realizar tareas de mantenimiento, como actualizar el código para adaptarlo a nuevos requisitos, optimizarlo
para mejorar su rendimiento o documentarlo adecuadamente.

Definición del problema

“La resolución de un problema' mediante un ordenador consiste en el proceso que, a partir de la descripción de un
problema, expresado habitualmente en lenguaje natural y en términos propios del dominio del problema, permite
desarrollar un programa que resuelva dicho problema”.

Algunos tipos de problemas pueden ser los siguientes:

Problema de decisión: un problema de decisión es un problema computacional que se puede plantear como una
pregunta de sí o no de los valores de entrada. En palabras más sencillas, es que uno hace una pregunta, en este caso
matemática, y el algoritmo resuelve la pregunta con un sí o un no.

Problemas de búsqueda: Los problemas de búsqueda con aquellos en los que se utilizan técnicas para resolver un
problema sabiendo que cada técnica debe desencadenar un resultado y que poco a poco me ayudará a llegar al
resultado final. Algunos ejemplos ilustrativos pueden ser: casos de factorización.

Problemas de optimización: En este tipo de problemas se busca utilizar la menor cantidad de algoritmos con mayor
capacidad de resolución ara que así se optimicen las funciones del procedimiento, esto también se podría decir que
como la anterior de búsquedas, pero con algunos atajos para mayor eficacia.

Análisis y diseño del problema

El análisis consiste en una clara definición del problema, donde se contemple exactamente lo que debe hacer el
programa y el resultado o solución deseada.

Es decir, después de analizar el problema, se han de conocer claramente tres cosas.

Datos de Entrada de que se dispone, proceso o tratamiento que ha de realizarse con estos datos, información de salida
deseada
Diseño del algoritmo

Teniendo en cuenta que un algoritmo es un método para resolver problemas, una vez analizado el mismo se precisa
diseñar un algoritmo que indique claramente los pasos a seguir para resolverlo.

Para realizar un determinado proceso, se le debe suministrar al ordenador una fórmula para la resolución de un
problema (algoritmo), cuyo diseño debe ser independiente de la computadora que resuelve el problema.

En esta etapa se realizará una representación de la secuencia. Estas representaciones son las herramientas de:
diagramas de flujo, pseudocódigos y/o tablas de decisión.

Herramientas para la resolución del problema

DIAGRAMA DE FLUJO

Es la representación gráfica de un algoritmo, el cual muestra los pasos o procesos a seguir para alcanzar la solución de
un problema, basándose en la utilización de diversos símbolos para representar operaciones específicas.

Símbolos Principales

Pseudocódigo

El pseudocódigo es una forma de representar código, como algoritmos, funciones y otros procesos, utilizando una
combinación de lenguaje natural y elementos similares al lenguaje de programación.

Se llama «pseudocódigo» porque no es realmente ejecutable. En cambio, es una forma de que los humanos
comprendan y planifiquen la lógica de la programación — describir los pasos de un programa de forma que sea fácil de
entender para los humanos, sin dejar de ser lo suficientemente detallado como para convertirse rápidamente en un
lenguaje de programación específico.

Con esto podemos decir que el pseudocódigo o (falso lenguaje) es una serie de pasos bien detallados y claros que
conducen a la resolución de un problema.
Características:

● Una de las principales ventajas del pseudocódigo es que permite a los desarrolladores esbozar su código sin
atascarse en la sintaxis y la estructura de un lenguaje concreto.

● Mayor eficacia

● Más fácil de leer

● Mayor flexibilidad

● Mejora la colaboración
Algoritmos

Un algoritmo es un conjunto de pasos que se emplean para completar una tarea


específica. Estos pasos conforman las bases de la programación y permiten el
funcionamiento de computadoras, teléfonos inteligentes y sitios web.

Áreas de uso de Características de los Tipos de algoritmos


Algoritmos Algoritmos

Ciencias de la Sin ambigüedad Algoritmos de búsqueda


Computación

Matemáticas Finitos Algoritmos de


clasificación

Investigación de Independiente del idioma Algoritmos de


Operaciones programación dinámica

Inteligencia artificial Poseen entradas Algoritmos de fuerza


bruta

Ciencia de datos Producen al menos una


salida

Deben ser efectivos

Prueba de escritorio

¿Qué es la prueba de escritorio?

La prueba de escritorio es un proceso manual a través del cual se busca


verificar la programación y la lógica de un algoritmo antes de iniciar un
programa. Examina la funcionalidad, seguridad, facilidad de uso y estabilidad.

¿Cuáles son los diferentes tipos de pruebas de escritorio?

Existen dos tipos de pruebas de escritorio: Las pruebas funcionales y las


pruebas no funcionales.

● Las Pruebas funcionales: Se emplean para certificar que un sitio web


funciona tal y como debe hacerlo.
● Las Pruebas no funcionales: Verifican la preparación de un sistema
en relación a sus parámetros no funcionales.
Codificación

Es un proceso de programación en el que se transforma la información en


indicaciones que puede seguir una máquina, para que posteriormente haga una
acción en base a esta.

¿Qué usos tiene la codificación en la vida cotidiana?

Una gran cantidad de las aplicaciones que utilizamos hoy en día, son creadas en
base a la codificación, ya que por lo general la misma se utiliza para crear
softwares.

Tipos de códigos de codificación

● Codificación ASCII, Codificación Unicode, Codificación UTF-8 y Codificación


Binaria

Compilación/Ejecución

● El proceso de compilación

Implica transformar el código fuente escrito en un lenguaje de programación en


código ejecutable por la máquina.

Al traducir el código fuente, el compilador puede detectar distintos tipos de errores


(como el error de sintaxis) antes de pasar al siguiente paso.

● Ejecución de programa

El sistema operativo carga el programa en la memoria y sigue las instrucciones del


programa. Esto lleva a la realización de tareas específicas y produce resultados
basados en el código que se ha escrito.

Tipos de Errores

1. Errores de Sintaxis: Ocurren en el código fuente y son detectados por el


compilador y se deben a problemas como palabras reservadas mal escritas,
expresiones incorrectas o variables no declaradas.
2. Advertencias: El compilador las emite cuando encuentra situaciones que podrían
causar problemas.

3. Errores de enlace: Ocurren durante la creación del ejecutable y se deben a


funciones no definidas o bibliotecas faltantes.

4. Errores de Tiempo de Ejecución: Son difíciles de detectar y corregir, ya que se


relacionan con la lógica del programa.

5. Errores de Diseño: No son errores de programación en sí, sino problemas en la


estructura o lógica del programa.

Documentación de Software

La documentación de software es un conjunto de documentos o archivos que


describen el funcionamiento, uso y mantenimiento de un software.

- La documentación de software sirve para:


● Facilitar el uso del software, Ayudar en el mantenimiento, Facilitar la
colaboración y Servir como referencia

- Tipos de documentación de software


● Documentación de usuario: Proporciona instrucciones sobre cómo instalar,
configurar y utilizar el software.
● Documentación técnica: Proporciona información detallada sobre el diseño,
la implementación y la arquitectura del software.
● Documentación de mantenimiento: Proporciona instrucciones sobre cómo
mantener y actualizar el software, incluyendo parches, actualizaciones y
correcciones de errores.
● Documentación de diseño: Describe el diseño del software, incluyendo
diagramas y explicaciones sobre la estructura y las interacciones entre los
componentes.
● Documentación de pruebas: Describe los casos de prueba utilizados para
probar el software y los resultados de las pruebas.

También podría gustarte