LABORATORIO TALLER
COMPUTACIÓN
Segundo Año
Introducción a la Computación
Conceptos Básicos
La computación, en su esencia, es la disciplina que se encarga del estudio y desarrollo de sistemas
informáticos. Estos sistemas comprenden tanto hardware como software, trabajando de manera
conjunta para procesar y manipular información de diversas formas. Hoy en día se posiciona como la
fuerza impulsora detrás de innumerables avances tecnológicos que han transformado radicalmente
nuestra forma de vivir y trabajar.
Diferencia entre computación y programación
La computación y la programación son conceptos interrelacionados, pero se diferencian en su
alcance y enfoque. La computación abarca el estudio y la aplicación de sistemas de cómputo,
incluyendo tanto el hardware como el software, y se extiende a disciplinas como la arquitectura de
computadoras, redes, sistemas operativos y algoritmos. Por otro lado, la programación se centra
específicamente en el desarrollo de software, involucrando la creación de conjuntos de instrucciones
mediante la escritura de código para que una computadora realice tareas específicas. Mientras que la
computación se ocupa de la teoría y el funcionamiento de los sistemas informáticos, la programación
se concentra en la implementación práctica de soluciones a través del diseño y la creación de
software. En resumen, la computación abarca un espectro más amplio, mientras que la programación
se focaliza en la materialización concreta de aplicaciones y sistemas a través del código.
Evolución Histórica
La evolución histórica de la computación es una fascinante travesía que ha influido directamente en
el desarrollo y la naturaleza de la programación a lo largo del tiempo. Comencemos con algunos hitos
clave:
● Primera Generación (Década de 1940): Durante esta época, las primeras computadoras
electrónicas, como la ENIAC, surgieron. Eran máquinas enormes que operaban con válvulas y
cables. La programación se realizaba mediante interruptores y cables físicos, lo que requería
un conocimiento técnico y un esfuerzo significativo.
● Segunda Generación (Década de 1950): La invención del transistor marcó esta etapa, haciendo
las computadoras más pequeñas, eficientes y asequibles. Surgieron lenguajes de programación
de nivel más alto, que facilitaron la programación al introducir conceptos más cercanos al
lenguaje humano.
● Tercera Generación (Década de 1960): Se consolidaron los lenguajes de programación de alto
nivel. Aparecieron los microprocesadores permitiendo la creación de computadoras personales,
lo que llevó la programación a un nivel más accesible para un público más amplio.
● Cuarta Generación (Década de 1970-1980): Se introdujo la programación orientada a objetos,
un enfoque que permitía la creación de software más modular y reutilizable.
● Quinta Generación (Década de 1990 en adelante): Se exploraron nuevas formas de
programación, incluyendo la inteligencia artificial y el desarrollo de lenguajes más avanzados.
Internet y la web se convirtieron en plataformas fundamentales, dando lugar a la programación
web y al auge de aplicaciones en línea.
● Actualidad (Siglo XXI): La programación ha experimentado una diversificación significativa con
la proliferación de lenguajes especializados para diferentes propósitos. La nube, el aprendizaje
automático, la realidad virtual y otros avances tecnológicos han ampliado el campo de la
programación.
La evolución de la computación ha influido en la programación al proporcionar herramientas más
poderosas y accesibles. Desde las primitivas máquinas de la década de 1940 hasta las tecnologías
modernas, la programación ha pasado de ser un esfuerzo altamente técnico a ser una habilidad
accesible para una audiencia más amplia. La relación entre la evolución histórica de la computación y
la programación destaca cómo cada avance tecnológico ha llevado a cambios significativos en la
forma en que se conciben y desarrollan los programas informáticos.
Modelo De Von Neuman
El matemático Húngaro John Von Neuman definió la arquitectura de un sistema de cómputo
moderno. En este modelo se almacenan los datos y los programas en la misma memoria a
diferencia de los modelos anteriores. El modelo consta de cinco partes básicas:
● Unidad de control: Es la encargada de controlar todas las operaciones que realiza
el sistema;
● Unidad de memoria: Donde se almacenan los programas y datos que se utilizan
durante los cómputos.
● Unidad lógica y aritmética: Realiza las operaciones lógicas y aritméticas
● Dispositivos de entrada: Se encargan de la introducción de datos y programas a la
memoria y los dispositivos de salida que despliegan los resultados de los
cómputos.
Redes
Introducción
Durante el siglo XX, la tecnología de la información ha sido la protagonista, abarcando todo lo
relacionado con la recopilación, procesamiento y distribución de la información. En este período, han
surgido avances como la radio, la televisión, la expansión global de las redes telefónicas, la aparición
y expansión de las computadoras, y el lanzamiento de satélites de comunicaciones.
A medida que nos acercamos al final del siglo, estas áreas han convergido, y las líneas entre la
captura, el transporte, el almacenamiento y el procesamiento de la información se vuelven cada vez
más difusas. La demanda de estos servicios ha crecido de manera exponencial, y a medida que
mejoramos en la capacidad para recoger, procesar y distribuir información, la necesidad de
procesamientos más avanzados también crece rápidamente.
El antiguo modelo de un solo ordenador que satisface todas las necesidades de cálculo ha sido
reemplazado por un enfoque en el que numerosos ordenadores autónomos pero conectados entre sí
realizan diversas tareas. A este tipo de sistemas los llamamos redes de ordenadores. Para
entenderlo mejor, la interconexión de dos o más ordenadores significa que pueden intercambiar
información. Esta conexión no implica necesariamente el uso de cables de cobre, ya que se puede
lograr mediante tecnologías como fibra óptica, microondas o conexiones vía satélite.
Cuando mencionamos "autónomos", nos referimos a sistemas donde no hay una clara relación
maestro/esclavo. En otras palabras, si un ordenador puede controlar, iniciar o detener a otro, no se
consideran autónomos. Por otro lado, llamamos sistema distribuido a una red de ordenadores en la
que la existencia de múltiples equipos autónomos es invisible para el usuario, es decir, no se nota la
división del sistema en distintos equipos.
Computadoras & Redes
Una red de computadoras se define como un conjunto de dispositivos electrónicos, como
computadoras, impresoras y servidores, que están interconectados con el propósito de compartir
información y recursos entre ellos. Estas conexiones permiten la comunicación efectiva entre los
dispositivos, lo que posibilita el intercambio de datos y la colaboración en diversas tareas.
Existen varios tipos de redes de computadoras, cada una adaptada a diferentes escalas y
necesidades. Algunos de los tipos más comunes son:
● LAN (Red de Área Local): Esta red abarca un área geográfica pequeña, como un edificio, un
campus universitario o una empresa. Las LAN son ideales para compartir recursos dentro de un
espacio cercano y suelen utilizar tecnologías como Ethernet.
● WAN (Red de Área Amplia): En contraste, una WAN se extiende sobre una vasta área
geográfica, conectando dispositivos a través de distancias considerables. Internet es un
ejemplo de una WAN global. Las WAN utilizan tecnologías como líneas de comunicación
dedicadas y tecnologías de conmutación de paquetes.
● MAN (Red de Área Metropolitana): Esta red ocupa un rango intermedio entre LAN y WAN,
cubriendo un área geográfica más extensa, como una ciudad. Las MAN son comunes en
entornos urbanos donde se requiere una conexión rápida y eficiente entre diferentes
ubicaciones.
La utilización de redes de computadoras permite compartir recursos físicos, como impresoras y
dispositivos de almacenamiento, así como recursos lógicos, como bases de datos y archivos.
Además, facilitan la comunicación instantánea y colaborativa entre usuarios, lo que mejora la
eficiencia y la productividad en entornos profesionales y educativos.
Componentes de una Red
● Nodos: Los nodos son los elementos fundamentales de una red y pueden ser diversos
dispositivos como computadoras personales, servidores, impresoras, escáneres o cualquier
dispositivo capaz de conectarse a la red. Cada nodo en la red tiene una identificación única,
conocida como dirección IP, que facilita la identificación y la comunicación entre ellos. Los
nodos pueden desempeñar roles distintos, como el de cliente, que solicita servicios, y el de
servidor, que proporciona servicios.
● Enlaces: Los enlaces son las conexiones físicas o inalámbricas que establecen la
comunicación entre los nodos de la red. Estos enlaces pueden ser cables de cobre, fibra
óptica o conexiones inalámbricas, como Wi-Fi. La calidad y velocidad de los enlaces son
factores críticos para determinar la eficiencia y la velocidad de la comunicación en la red.
Además, existen diferentes topologías de red que describen cómo se conectan y organizan
los nodos a través de los enlaces, como la topología de estrella, bus, anillo, entre otras.
● Protocolos de Comunicación: Los protocolos de comunicación son reglas y convenciones que
rigen la forma en que los nodos se comunican entre sí en una red. Estos protocolos
establecen normas para la transmisión de datos, la detección de errores, la dirección de
mensajes y otros aspectos críticos de la comunicación. Algunos ejemplos de protocolos
comunes son el Protocolo de Internet (IP) para la transmisión de datos en Internet y el
Protocolo de Control de Transmisión (TCP) para garantizar la entrega fiable de datos.
Ventajas de las Redes
● Compartir Recursos: Una de las principales ventajas de las redes es la posibilidad de
compartir recursos. Los nodos pueden acceder y utilizar recursos como impresoras,
escáneres, archivos y aplicaciones compartidas, lo que mejora la eficiencia y reduce costos.
● Comunicación Eficiente: Las redes facilitan la comunicación instantánea entre nodos. Los
usuarios pueden intercambiar información de manera rápida y eficiente, ya sea a través de
correos electrónicos, mensajes instantáneos o videoconferencias.
● Acceso Remoto: Las redes permiten el acceso remoto a recursos y servicios. Los usuarios
pueden acceder a archivos o aplicaciones desde ubicaciones diferentes, lo que proporciona
flexibilidad y movilidad.
● Centralización de la Administración: En entornos empresariales, las redes permiten la
centralización de la administración. Los administradores pueden gestionar y mantener
recursos de manera centralizada, lo que simplifica las tareas de mantenimiento y
actualización.
● Escalabilidad: Las redes son escalables, lo que significa que pueden crecer y adaptarse
según las necesidades cambiantes de una organización o entorno. Se pueden agregar nuevos
nodos y enlaces para satisfacer la demanda creciente de servicios y recursos.
Algoritmos
Fundamentos de Algoritmos
Un algoritmo es la descripción detallada de los pasos necesarios para resolver un problema.
Un algoritmo debe cumplir con tres características, a saber: los pasos deben ser simples y
claros; el orden en que se ejecuten los pasos debe ser preciso; el algoritmo debe resolver el
problema en un número de pasos finito. Los algoritmos deben ser especificados con
instrucciones que puedan ser ejecutadas por alguna entidad. La entidad puede ser
cualquiera que sea capaz de seguir instrucciones como una persona, una computadora, un
robot, o algo similar.
Un ejemplo de algoritmo es una receta para preparar café instantáneo. En este caso el
algoritmo está dirigido a una persona, la cual preparará el café. Supondremos que se
dispone de lo necesario para preparar el café, cosas tales como una taza, un recipiente para
calentar agua, estufa, cuchara, etc. El algoritmo puede ser el siguiente:
1) Ponga una taza de agua en el recipiente para calentar sobre la estufa.
2) Caliente el agua hasta justo antes de hervir.
3) Vacíe el agua caliente en una taza.
4) Agregue las cucharadas de café que desee.
5) Agregue las cucharadas de azúcar que desee.
6) revuelva hasta que los ingredientes se mezclen adecuadamente.
Note que el algoritmo anterior puede ser especificado con mayor detalle dependiendo de
a qué individuo esté dirigido. Por ejemplo, el paso 2 quizá requiera especificar de qué
forma se enciende la estufa; abriendo la llave del gas y presionando un botón o utilizando
una cerilla para encender, etc. Hay que considerar todos los aspectos posibles cuando se
trata de instruir a una computadora para resolver un problema.
Las computadoras pueden ejecutar solo un conjunto de instrucciones limitado. Los pasos
de los algoritmos debemos especificarlos utilizando solamente las instrucciones que la
computadora sea capaz de ejecutar o alguna instrucción equivalente. Generalmente
usamos instrucciones equivalentes a las que una computadora puede ejecutar debido a
que los lenguajes de las computadoras se especifican con palabras en inglés o porque las
instrucciones de la computadora son difíciles de entender para los humanos, por lo que se
llevó a cabo el desarrollo de los pseudocódigos.
Algoritmos vs. Pseudocódigo
Tanto los algoritmos como los pseudocódigos son herramientas esenciales en el proceso de diseño y
desarrollo de programas informáticos. Aunque comparten la finalidad de describir un conjunto de
pasos para resolver un problema, difieren en su nivel de formalidad y su audiencia objetivo.
➔ Algoritmos:
❖ Formalidad: Los algoritmos son descripciones precisas y formales de un conjunto de pasos
para resolver un problema. Están diseñados para ser entendidos por personas y máquinas.
❖ Nivel de Detalle: Los algoritmos son generalmente más detallados y específicos. Se espera
que incluya todos los detalles necesarios para la implementación, como las condiciones y
estructuras de control.
❖ Audiencia: Principalmente orientados a programadores y personas familiarizadas con la
implementación técnica de soluciones.
➔ Pseudocódigos:
❖ Formalidad: Los pseudocódigos son menos formales y más cercanos al lenguaje humano.
Proporcionan una representación intermedia entre el lenguaje natural y un lenguaje de
programación.
❖ Nivel de Detalle: Los pseudocódigos son menos detallados en comparación con los
algoritmos. Se centran en los aspectos lógicos y de flujo de control, omitiendo detalles de
implementación específicos.
❖ Audiencia: Dirigidos a un público más amplio, incluidos aquellos que pueden no tener
conocimientos profundos de programación. Son útiles en las etapas iniciales del diseño del
algoritmo.
➔ Ejemplo de Algoritmo:
1) Inicializar contador a cero.
2) Mientras el contador sea menor que 5, hacer:
a) Leer un número desde el usuario.
b) Sumar el número al contador.
3) Mostrar el resultado.
➔ Ejemplo de Pseudocódigo:
-Iniciar contador en cero
-Mientras contador < 5
-Leer número desde el usuario
-Sumar número al contador
-Mostrar resultado
En resumen, los algoritmos proporcionan descripciones más formales y detalladas, ideales para la
implementación directa, mientras que los pseudocódigos ofrecen una representación más accesible y
comprensible, favoreciendo la claridad en las etapas iniciales del diseño. Ambas herramientas son
valiosas en el proceso de programación y resolución de problemas.
Pseudocodigos
Definición & Propósito
El pseudocódigo es un lenguaje intermedio entre el lenguaje natural y un lenguaje de programación
específico. Se utiliza para describir algoritmos y lógica de programación de manera informal,
facilitando la comprensión y planificación de un programa antes de ser implementado en un lenguaje
de programación concreto. A diferencia de un lenguaje de programación real, el pseudocódigo no
sigue una sintaxis rigurosa y no está diseñado para ser ejecutado en una computadora, sino más
bien para ser entendido por humanos, dentro de sus principales objetivos, tenemos:
● Planificación y Diseño: El pseudocódigo es una herramienta valiosa en la etapa de
planificación y diseño de un programa. Permite a los programadores expresar sus ideas de
manera clara y estructurada antes de comprometerse con la sintaxis y la estructura de un
lenguaje de programación específico.
● Entendimiento Común: Facilita la comunicación entre miembros de un equipo de desarrollo o
entre programadores. Al utilizar un lenguaje cercano al lenguaje natural, el pseudocódigo es
más accesible y comprensible para personas con diversos niveles de experiencia.
● Resolución de Problemas: Ayuda en la resolución de problemas y en la definición de
algoritmos antes de pasar a la fase de implementación. Permite evaluar la lógica subyacente
sin preocuparse por la sintaxis particular de un lenguaje de programación.
● Enseñanza y Aprendizaje: El pseudocódigo se utiliza comúnmente en entornos educativos
para enseñar conceptos de programación. Al no tener restricciones sintácticas estrictas,
permite a los estudiantes centrarse en la lógica y el flujo del algoritmo sin distraerse por
detalles específicos de programación.
● Documentación: Puede utilizarse como una forma de documentación preliminar para describir
la lógica y el flujo del programa antes de comenzar la implementación en un lenguaje de
programación específico. Facilitando la revisión y comprensión del código.
Sintaxis y Estructura “Gobstones”
● Variables
program {
variable cantidadDeGomitas
cantidadDeGomitas = 5
Poner(cantidadDeGomitas, Rojo)
}
● operadores
program {
variable cantidadDeGomitas
cantidadDeGomitas = 3 + 2
Poner(cantidadDeGomitas, Azul)
}
● Condicionales
program {
variable cantidadDeGomitas
cantidadDeGomitas = 7
Si(cantidadDeGomitas > 5) {
Poner("¡Más de 5 gomitas!", Rojo)
} Sino {
Poner("5 o menos gomitas.", Azul)
}
}
● bucles
program {
variable vuelta
vuelta = 0
Repetir(5) {
Poner(vuelta, Verde)
vuelta = vuelta + 1
}
}
● Listas
program {
variable colores = [Rojo, Azul, Verde]
Poner(colores[1], Negro)
}
● Funciones
program {
funcion ponerGomitas(cantidad) {
Poner(cantidad, Rojo)
}
ponerGomitas(3)
}
Teoría de Imagen
Pixel
Un píxel es como el ladrillo más pequeño en la construcción de una imagen en una pantalla o
fotografía digital. Imagina que toda la pantalla está hecha de pequeños cuadraditos llamados píxeles,
y cada uno de ellos tiene un trabajo importante: mostrar un color específico. Juntos, todos estos
píxeles forman la imagen que vemos. Cuando ves una foto en tu teléfono, cada carita, paisaje o
detalle está compuesto por estos diminutos píxeles. Cuantos más píxeles tengamos, más nítida y
detallada será la imagen. Así que, en resumen, un píxel es como el bloque básico que construye las
imágenes digitales.
Resolución
La resolución de una imagen es como la cantidad de pequeños bloques de construcción que tenemos
para formar. Imagina que una imagen es como un rompecabezas, y la resolución sería la cantidad de
piezas en la que está dividido. Cuantos más pedacitos (o píxeles) tengamos, más detalles podemos
agregar a nuestra imagen. Si tienes una foto con una resolución alta, como un rompecabezas con
muchas piezas, podrás ver claramente cada parte, incluso los detalles más pequeños. Pero si la
resolución es baja, la imagen puede parecer borrosa o pixelada porque hay menos piezas para
mostrar los detalles. Así que, la resolución nos dice cuántos píxeles hay en altura y anchura, y eso
afecta directamente la nitidez y claridad de las imágenes digitales.
Formatos De Imagen
Los formatos de imagen son diferentes tipos de cajas en las que guardamos nuestras fotos digitales.
Cada caja tiene sus propias reglas sobre cómo almacenar la información de la imagen. Imagina que
tienes una colección de fotos y puedes guardarlas en cajas de diferentes colores y tamaños. Algunas
cajas, como la caja JPEG, son geniales para guardar muchas fotos porque pueden comprimir la
información para que ocupe menos espacio. Otras cajas, como la caja PNG, son mejores para
guardar imágenes con fondos transparentes, como cuando quieres que la imagen se mezcle con el
fondo. Así que, los formatos de imagen son como diferentes tipos de cajas, y elegimos la mejor caja
según lo que necesitemos: más espacio, mejor calidad o transparencia. Cada formato tiene sus
ventajas y desventajas, y elegimos el adecuado para que nuestras fotos se vean y se guarden de la
mejor manera posible.
Tamaño de Archivo (Bytes):
El tamaño de archivo de una imagen es como el espacio que necesita ocupar en tu dispositivo, y está
influenciado por diferentes factores. Imagina que tienes una caja para guardar una foto, y el tamaño
de archivo sería como el espacio que esa caja ocupa en tu armario digital. Este espacio depende de
la cantidad de información que contiene la imagen. Si tienes una imagen con muchos píxeles (alta
resolución) y muchos colores (profundidad de color alta), la caja será más grande porque hay más
detalles que almacenar. Ahora, algunos formatos de imagen pueden comprimir esta información para
que la caja sea más pequeña, pero a veces eso significa perder un poco de calidad visual. Así que, el
tamaño de archivo nos dice cuánto espacio ocupa nuestra imagen digital, y es importante encontrar
un equilibrio entre la calidad visual y el espacio que queremos ocupar en nuestro dispositivo. ¡Menos
espacio es genial, pero también queremos que nuestras fotos se vean bien!
Conclusión Imagen & Sonido
En este fascinante viaje a través de la teoría de imagen y sonido, hemos desglosado conceptos
fundamentales que dan vida a nuestras experiencias visuales y auditivas en el mundo digital.
Comenzamos con el "píxel", el ladrillo elemental que construye las imágenes digitales, entendiendo
su papel esencial en la formación de cada detalle visual. La "resolución" emergió como un concepto
clave, revelando cómo la cantidad de píxeles determina la nitidez y claridad de nuestras imágenes,
como piezas de un rompecabezas digital.
Exploramos los "formatos de imagen", esas cajas virtuales con reglas específicas que albergan
nuestras creaciones digitales. Cada formato, desde el eficiente JPEG hasta el versátil PNG, nos
ofrece opciones para equilibrar espacio y calidad, adaptándose a diversas necesidades y
preferencias. Adentrándonos en el "tamaño de archivo (bytes)", comprendimos cómo la cantidad de
información en una imagen afecta el espacio que ocupa en nuestros dispositivos, destacando la
importancia de encontrar el equilibrio perfecto entre calidad visual y eficiencia de almacenamiento.
En esta interconexión de conceptos, desde el píxel individual hasta el tamaño total del archivo,
hemos trazado un mapa integral de cómo nuestras imágenes digitales cobran forma y ocupan su
lugar en nuestros dispositivos. Cada elemento, desde la resolución hasta los formatos de imagen,
contribuye a la riqueza visual y auditiva que disfrutamos en el vasto universo digital. Así, al entender
estos conceptos, nos capacitamos para tomar decisiones informadas sobre cómo capturamos,
compartimos y almacenamos nuestras experiencias visuales y sonoras en esta era digital en
constante evolución.