Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistema de Computación
Sistema de Computación 1
Partes de un sistema de computación 1
Hardware 1
Software 1
Peopleware 2
Programa de computación 2
Sistemas operativos 3
Tecnología de computadoras - Breve reseña 3
Programas de Usuario 5
Entrada 5
Procesamiento 5
Salida 6
Lenguaje de programación 7
Aprendiendo a programar 8
Distintos tipos de sentencias 8
Órdenes 8
Condicionales 9
Repeticiones 11
Bloques 11
Resumen 12
Pensamiento computacional 12
Análisis y comprensión del problema 12
Elaboración de la solución 13
Verificación de la solución 13
Conclusión 15
Ejercicios 16
Referencias 17
Unidad 2 - Sistemas de Computación
Sistema de Computación
En esta unidad se introducen los conceptos generales de la computación. Es un conjunto de
contenidos netamente teóricos, pero su conocimiento sirve de base conceptual para las
siguientes unidades.
Hardware
Sencillamente es lo que podemos tocar, lo que existe físicamente. Un
monitor, un teclado, mouse, pendrive, teléfonos, tablet, etc.
Software
Son los programas que existen dentro de las computadoras. Son ejemplos
de software:
● Sistemas operativos: Windows, Linux, Unix, etc.
● Aplicaciones: Navegadores, como el Edge, Firefox, etc.
● Juegos
● Cualquier otro programa.
1
Unidad 2 - Sistemas de Computación
Peopleware
Finalmente las personas. ¿Qué sería de un sistema de computación sin las
personas? Los sistemas computacionales son realizados por personas, y
para las personas. En este sentido, se comprende por peopleware a:
● Desarrolladores. Tanto individuales como todo lo relativo a los
equipos, su gestión, comunicación, organización
● Usuarios. Usuarios finales del sistema
Cuando un sistema está caído sus usuarios tienen consecuencias, se fastidian, se enojan.
También se producen pérdidas económicas, y hasta pueden producirse pérdidas de vidas
humanas, por fallos de software principalmente. Desarrollar software tiene sus implicancias
y debe comprenderse su alcance y posibles efectos, y tomarse con la mayor
responsabilidad posible.
Recordemos siempre que eventualmente todos somos usuarios de algún sistema
En las carreras de TUARI y TUDAI nos centramos principalmente en el software, pero sin
dejar de conocer el hardware y atentos a las expectativas de los usuarios.
Programa de computación
Un programa de computación es una secuencia de instrucciones escrita en algún lenguaje,
de manera que la computadora pueda entenderla. El lenguaje que naturalmente entiende la
computadora es muy complejo (se escribe en bytes), se llama lenguaje máquina, y
desarrollar programas en lenguaje máquina es prácticamente imposible, por lo tanto existen
lenguajes que se parecen un poco más a la forma de hablar de las personas, y hay
programas que traducen estos últimos a lenguaje máquina. Se llaman compiladores. De
esta forma para hacer programas no necesitamos escribir en lenguaje máquina, sino en
lenguajes que el compilador pueda traducir correctamente al lenguaje máquina. A
continuación veremos un tipo de programa particular, diseñado para interactuar solo con la
computadora: el sistema operativo. Más adelante veremos otros tipos de programas.
2
Unidad 2 - Sistemas de Computación
Sistemas operativos
Un sistema operativo es un programa particular, sin el cual la computadora no puede
funcionar. Este programa gestiona los recursos de la computadora y se los provee
organizadamente a los otros programas. Por ejemplo, si un programa necesita crear un
archivo en el disco, le pide al sistema operativo que lo haga. Si necesita mostrar algo en
pantalla, le indica al sistema operativo, y es este el que le indica a la placa gráfica que lo
muestre.
Si lo pensáramos como los componentes de una casa, son los cimientos, por eso se gráfica
como el nivel más básico de programa que debe existir, y sobre él se montan otros
programas.
3
Unidad 2 - Sistemas de Computación
4
Unidad 2 - Sistemas de Computación
Programas de Usuario
Ya vimos un tipo particular de programa, el sistema operativo. Ahora vamos a ver otro tipo
de programas, las aplicaciones. Pensadas para interactuar con el usuario, para que pueda
usar el software, pero a través de un sistema operativo: Los programas de usuario.
Un programa es, según lo que vimos, un conjunto de instrucciones, ahora en un
lenguaje entendible (alto nivel), que le indica a la computadora (en realidad sistema
operativo) una secuencia de acciones.
Cuando el programa se está ejecutando, se llama proceso. Un proceso siempre va a tener
una entrada, un procesamiento o transformación de esa entrada, que se apreciará como
una salida.
Entrada
La entrada puede venir desde:
● el teclado o mouse, siendo ingresada por un usuario,
● un archivo, ya que podría leer contenido
● internet, cualquier tipo de información
● sensores de temperatura, lluvia, etc.
● otro proceso, o incluso el mismo
Procesamiento
Las computadoras toman la entrada de donde sea y la transforman de alguna forma, para
mostrarla, registrarla o enviarla por internet o a otro programa.
Por ejemplo, el cálculo de un sueldo de un empleado. Se debe ingresar la categoría, las
cargas sociales, la antigüedad en el cargo y, por medio de una fórmula, se genera el haber
5
Unidad 2 - Sistemas de Computación
Salida
La salida puede emitirse hacia:
● el monitor o un parlante o una impresora,
● un archivo, ya que podría escribir contenido
● internet, enviando cualquier tipo de información
● actuadores, como motores de un arduino
● otro proceso, o incluso el mismo
6
Unidad 2 - Sistemas de Computación
Lenguaje de programación
Como vimos, en el núcleo del procesamiento, se encuentra un algoritmo. El algoritmo se
encuentra escrito en un determinado lenguaje de programación. Este lenguaje nos permite
indicarle acciones a la computadora. No existe un único lenguaje, sino que existen
muchos lenguajes y por familias, se orientan a distintos tipos de problemas.
Tipo de Lenguaje
Programa
Nota: Convengamos que hay más de 200 lenguajes de programación y la anterior es una
lista MUY reducida, y de los lenguajes más populares en la actualidad.
Puede verse un ejemplo de 200 formas de hacer lo mismo en distintos lenguajes en la
siguiente página web:
7
Unidad 2 - Sistemas de Computación
https://web.archive.org/web/20011201034342/http://www.latech.edu/~acm/HelloWorld.shtml
Aprendiendo a programar
Saber programar, debido a la cantidad de lenguajes que existen y a los desafíos de la
actualidad, no consiste en conocer exhaustivamente un lenguaje de programación, sino más
bien, saber en qué contexto corresponde aplicar un determinado lenguaje. Entonces es
importante iniciarnos en la programación de manera de poder adaptarnos a distintos
lenguajes.
En las siguientes secciones abordaremos un enfoque más generalista, que va desde lo
general a lo particular, de manera de poder iniciarnos en este mundo de la programación de
la mejor forma posible.
En principio no se trabajará con ningún lenguaje en particular. Más adelante
profundizaremos los mismos ítems, sobre un lenguaje actual.
Órdenes
También conocidas como imperativas, son instrucciones que dan una orden
directa y la computadora obedece, o falla emitiendo un error. Pueden ser
muy sencillas como:
Mostrar un mensaje
Leer una entrada de teclado
Limpiar la pantalla
Abrir un archivo
Leer de un archivo
Encender un motor
8
Unidad 2 - Sistemas de Computación
Leer un sensor
Abrir una puerta
Condicionales
En el caso anterior, la instrucción era una orden que la computadora debía
ejecutar. Las instrucciones condicionales, se ejecutan sólo si se cumple una
condición.
Su formato, variando un poco en cada lenguaje, tendrá la siguiente forma
si llueve entonces
emitir mensaje usar paraguas
Nótese que la condición es que llueva, y esa condición sólo admite dos valores: Verdadero
o Falso. Si de alguna forma la computadora recibe una entrada de un sensor que indica que
llueve, el procesamiento de esa señal, emitirá un mensaje indicando al usuario que use
paraguas.
Una extensión del caso anterior, podría sugerir que si no llueve, se puede usar gorra.
Bastará agregar el caso contrario:
si llueve entonces
emitir mensaje usar paraguas
si no
emitir mensaje usar gorra
9
Unidad 2 - Sistemas de Computación
Podemos ver la condición lógica, que actúa como un selector sobre cuál rama de acciones
se va a seguir. Si la condición se cumple, solo se ejecuta o ejecutan las acciones de la
“rama” de verdadero. Si la condición no se cumple, entonces se ejecuta solo la “rama” de
acciones por Falso.
En programación no hay una sola solución para cada problema. Podemos hacer lo mismo,
pero de otra forma, invirtiendo la condición de la siguiente forma:
si no llueve entonces
emitir mensaje usar gorra
si no
emitir mensaje usar paraguas
Ahora si la condición tuviera múltiples valores, existe otro tipo de condicional que nos
permitirá expresarlo. Supongamos que queremos que la computadora salude dependiendo
de un idioma seleccionado por el usuario. Si el idioma es español dirá “Hola”, si el idioma es
inglés dirá “Hello”, pero si el idioma es portugués emitirá “Olá”, y es más, si el idioma es
francés que emita “Salut”. Para hacer esto con los condicionales que ya vimos deberíamos
hacer algo como:
10
Unidad 2 - Sistemas de Computación
Repeticiones
Ya vimos sentencias u órdenes directas, y sentencias que se ejecutan sólo
si se cumple una condición. Ahora veremos sentencias que se repiten si se
cumple una condición.
Supongamos un ejemplo de un vehículo que funciona mientras aún tiene
combustible:
hacer 10 veces
caminar hacia adelante
Avanzaremos con este tipo de construcciones más adelante, por ahora es solo una
presentación para su reconocimiento.
Bloques
El último tipo de primitiva, o construcción, es la sentencia de agrupamiento.
El bloque agrupa una o más sentencias. Este bloque puede tener un
nombre o ser anónimo. La construcción de un bloque fijo, puede ser una
función tal como las conocemos en el sentido matemático, por ejemplo el
cálculo de la superficie de un triángulo. Una vez que encontramos como
programar el cálculo de la superficie, cada vez que lo necesitemos, podremos reutilizarlo, en
lugar de volver a programarlo. La reutilización es otro de los principios de la programación.
Un bloque también podría ser un paquete de funciones matemáticas, que realizan distintos
tipos de cálculos.
11
Unidad 2 - Sistemas de Computación
Resumen
Estos cuatro tipos básicos de sentencias, se encuentran en todos los lenguajes de
programación. En próximas unidades las abordaremos en detalle, sobre un lenguaje de
programación.
Pensamiento computacional
El pensamiento computacional [3] está dotado de una serie de etapas para
llevar a cabo el proceso cuyo fin como sabemos es la resolución del
conflicto objeto de estudio. Estas etapas suelen ser tres grupos
principales:
12
Unidad 2 - Sistemas de Computación
Nota: La mayoría de los intentos por resolver un problema, falla en esta primera etapa de
análisis. Estamos más apurados por resolver, que por pensar lo que tenemos que resolver.
Entonces encontramos una solución a un problema que no era. En términos de
programación esto se traduce como un mal análisis de requerimientos del cliente. El
desarrollador puede llegar a hacer muy bien un programa que al cliente no le sirve.
Elaboración de la solución
Una vez bien entendido lo que tenemos que hacer, pasamos a la
etapa de construcción de la solución. En esta etapa se elige y se
aplica una estrategia o un conjunto de estrategias combinadas.
Las siguientes técnicas, no implican una secuencia y sirven para
resolver el problema siempre que se cuente con las herramientas
necesarias. Son una guía de alternativas para cuando nos encontramos bloqueados o con
incertidumbre.
● Hallar una representación gráfica que permita visualizar los datos del problema y sus
relaciones.
● Identificar la similitud con otros problemas ya resueltos
● Reformular el problema
● Dividir el problema en varios subproblemas más simples
● Razonar hacia atrás
● Partir de un supuesto
Elegir una solución, consiste en darnos cuenta a cual problema ya resuelto, se parece el
problema que estamos resolviendo. Este mecanismo de reducción es propio de los seres
inteligentes, y se mejora y se extiende la lista, a medida que resolvemos problemas.
Nota: Cuantos más problemas resolvamos, más y mejores problemas podemos resolver.
Nota: En la unidad 7 abordaremos en detalle el método de resolución de dividir el problema
en varios subproblemas.
Verificación de la solución
Una vez encontrada la solución, debemos verificar que cumple las
restricciones del problema. Esta etapa de verificación se conoce en sistemas
como testing. Es muy importante para garantizar la calidad del trabajo.
13
Unidad 2 - Sistemas de Computación
14
Unidad 2 - Sistemas de Computación
Conclusión
En esta unidad nos hemos introducido en el mundo de la computación. Hemos visto las
partes de un sistema computacional, como es un proceso en ejecución. También vimos
como se le pide a la computadora que realice cierta tarea a través de los lenguajes de
programación. Finalmente, presentamos un método para resolver problemas de una forma
organizada, comparándolo con el desarrollo de sistemas. En las siguientes unidades
incorporaremos conceptos matemáticos que nos permitirán abordar un lenguaje de
programación con más y mejores herramientas.
15
Unidad 2 - Sistemas de Computación
Ejercicios
1. Que otros tipos de sistemas puede identificar
2. Defina 5 (cinco) elementos de hardware
3. Defina 5 (cinco) elementos de software
4. Busque ejemplos de accidentes en personas por fallas de software
5. Describa los distintos tipos de sistemas operativos que conoce
6. Describa los sistemas operativos que utiliza
7. Respecto del punto anterior, cuales puede indicar como ventajas o desventajas.
8. Un sistema que calcula el IVA (21%) sobre un total, cuál sería la entrada, cuál la
salida, y cómo sería el cálculo o procesamiento ?
9. Si consideramos el cálculo de la fórmula resolvente (o Bascara), cuales podría
identificar como entradas, y cuales serían las salidas ?
10. Cómo implementaría un sistema que sugiera abrigo, de manera que si hace calor,
sugiera ropa ligera, y en caso contrario, sugiera ropa abrigada.
Resolución de problemas:
11. Don Manuel es un maestro pizzero. Elabora todas las combinaciones de pizza
posibles con queso y al menos uno de los siguientes ingredientes: jamón, tomate y
morrones. Si ya preparó una pizza de queso y tomate, y otra de jamón, queso y
tomate. ¿Cuántas combinaciones tiene que preparar todavía?
12. Tres parejas compartieron una excursión durante un viaje. Una de las chicas es
arquitecta, otra abogada y la tercera traumatóloga. Los varones tienen justamente
las mismas profesiones, sin embargo ninguno de ellos comparte su profesión con su
esposa. Durante el almuerzo Nicolás le comenta a su hermana:
a. - En cuanto volvamos te pido un turno, la rodilla volvió a molestarme.
b. - Primero tenés que terminar el plano que me prometiste el verano pasado.
Con esta información, ¿se podrá deducir cuál es la profesión de la esposa del
traumatólogo?
16
Unidad 2 - Sistemas de Computación
Referencias
https://es.wikipedia.org/wiki/Sistema
Peter G. Neumann "Peopleware in Systems." en Peopleware in Systems. Cleveland, OH:
Assoc. for Systems management, 1977, pp 15-18. (ISBN 0-934356-13-0)
http://tudai1-1.alumnos.exa.unicen.edu.ar/programacion-1/sede-tandil
https://piexa.exa.unicen.edu.ar/moodle/mod/page/view.php?id=2532
“Análisis y Comprensión de Problemas” - “DEPARTAMENTO DE CIENCIAS E INGENIERÍA
DE LA COMPUTACIÓN UNIVERSIDAD NACIONAL DEL SUR”, 2003 elaborado Sonia V.
Rueda y Alejandro J. García
17