You are on page 1of 19

Tema 1.

Introduccin a la computadora y al desarrollo de software

Presentacin del tema


Bienvenido(a) en este primer tema terico estudiaremos qu son las computadoras y
cmo pueden ayudarnos para resolver problemas.
Lo primero que debes tener claro es que las computadoras no poseen inteligencia
alguna, ya que por s solas no son capaces de resolver ningn problema, su
importancia est en la capacidad de datos que pueden almacenar y manipular; de tal
manera que, para lograr nuestro fin resolver problemas mediante la computadora
es necesario desarrollar programas escritos en un lenguaje de programacin para que
puedan ser ejecutados por una computadora.

Propsito del tema


Identificars los conceptos bsicos relacionados con la computadora y los lenguajes
de programacin.
Distinguirs los elementos de una computadora que intervienen en la ejecucin de
un programa a travs del modelo de Von Neumann.
Distinguirs los paradigmas de programacin y los lenguajes asociados a stos.
Reconocers las fases que se siguen para solucionar un problema mediante la
computadora.

Competencia especfica
Describir los elementos de la computadora y el ciclo de vida del software mediante el
anlisis de un programa simple, con el fin de identificar los pasos que se realizan para
construirlo y determinar qu elementos de la computadora intervienen en su
ejecucin.

1.1. Qu es una computadora?


Para fines de este curso entenderemos que una computadora es una mquina
electrnica que recibe datos de entrada y los procesa de acuerdo al conjunto de
instrucciones, llamado programa, para obtener nuevos datos que son el resultado del
proceso, tal como se ilustra en la siguiente figura:

Lo anterior nos lleva a clasificar los componentes de una computadora en dos


clases: hardware ysoftware.
Los recursos de hardware
Son todos aquellos elementos de la computadora que se pueden
palpar, como por ejemplo: el monitor, el teclado, el disco duro, la
memoria, entre otros.

Los recursos de software


Son aquellos elementos intangibles sin los cuales la computadora no
funcionara, esto es, el soporte lgico: programas y datos, entre los
cuales se encuentran los sistemas operativos, editores de texto,
compiladores, bases de datos, videojuegos, entre otros.

Como puedes darte cuenta, ambos elementos son necesarios para que una
computadora funcione, ya que si los aislamos no pueden funcionar; por ejemplo, si
tuviramos una computadora con todos los componentes de hardware ms
avanzados que existen (procesador, tarjeta madre, monitor, teclado, etc.), pero sin
Sistema Operativo instalado, de poco servira pues al prenderla, nicamente veramos
una pantalla negra y, por consiguiente, no podramos interactuar con ella. Para
comprender mejor lo que acabamos de decir, avanza al siguiente tema en el que
conocers la forma en que se estructura y funciona una computadora.

1.2. Estructura y funcionamiento de una computadora


Te has planteado alguna vez preguntas como estas:

Cmo funciona y se estructura internamente la computadora?,


cmo se obtienen los resultados? y cmo se guardan los programas y datos
en la memoria?
Cuando tenemos un primer acercamiento con equipos de cmputo, a pesar de
manejarlos a diario, estas preguntas no son tan fciles de contestar. Es por eso que
en esta seccin explicaremos y responderemos a estos cuestionamientos mediante
el Modelo de Von Neumann, el cual constituye la base de la arquitectura de las
computadoras actuales.

1.2.1. Modelo de Von Neumann

El Modelo de Von Neumann propone que tanto el programa como los datos sean
almacenados en la memoria, de esta forma la computadora no tiene que reconstruirse,
pues para programarla nicamente debe introducirse el programa por el dispositivo
indicado y posteriormente alimentarla con los datos de entrada para que calcule la
salida correspondiente.
Los elementos que componen esta arquitectura son: la unidad central de
procesamiento integrada por la unidad aritmtica-lgica y la unidad de control,
la memoria y los dispositivos de entrada/salida. A continuacin se describe
brevemente la funcin de cada uno de los elementos que integran el Modelo de Von
Neumann.

Elementos del modelo de Von Neumann


Unidad Central de Procesamiento

La Unidad Central de Procesamiento (CPU, Central Process Unit) controla y


coordina la ejecucin de las instrucciones, para ello utiliza la Unidad AritmticoLgica encargada del procesamiento de los datos y la Unidad de Control para el
procesamiento de las instrucciones.
Unidad Aritmetica-Logica
Unidad Aritmtico-Lgica (ALU, Arithmetic Logic Unit), realiza todas las operaciones
aritmticas (suma y resta) y lgicas (operaciones del lgebra de Boole). Adems de
los circuitos que le permiten realizar dichas operaciones, la ALU incluye un elemento
auxiliar donde se almacenan temporalmente los datos que manipula, conocido
como Acumulador o Registro Temporal (TR, Temporal Register).
Unidad de Control

Unidad de Control (CU, Control Unit), se encarga de leer las instrucciones


almacenadas en memoria, decodificarlas y despus enviar las seales a
los componentes que estn involucrados en su ejecucin, para lo cual tiene dos
elementos auxiliares el Contador del Programa (PC, Program Counter) y el Registro
de Instruccin (IR, Instruction Register). En el IR se guarda temporalmente la

instruccin que debe ser ejecutada, mientras que en el PC se almacena la direccin


de memoria que contiene la siguiente instruccin que se ejecutar.
Memoria Principal

La memoria principal es la parte de la computadora donde se almacenan los datos y


las instrucciones durante la ejecucin de un programa. Fsicamente est compuesta
por circuitos integrados. Las computadoras actuales cuentan con un rea de memoria
de slo lectura a la que se le conoce como memoria de tipo ROM (Read Only
Memory) y otra en la cual es posible escribir y leer datos denominada de
tipo RAM (Random Access Memory). sta tiene el inconveniente de ser voltil pues al
apagarse la computadora los datos almacenados se pierden.
Para resolver este inconveniente, se cuenta con otro tipo de memoria,
denominada memoria secundaria, en ella se puede almacenar una gran cantidad de
informacin permanentemente, mientras el usuario no la borre. La desventaja de este
tipo de dispositivos es que no son tan rpidos como la memoria RAM. Los discos
duros, los discos pticos (CD o DVD), la memoria flash (USB) y las cintas magnticas,
entre otras, son ejemplos de dispositivos de almacenamiento secundario.
Dispositivos de entrada y salida

Los dispositivos de entrada y salida (Input/Output) son responsables de la


comunicacin con el usuario del sistema. Los dispositivos de entrada permiten
introducir en la computadora datos e instrucciones, mismas que son transformadas en
seales binarias de naturaleza elctrica para almacenarlas en la memoria. Por otro
lado, los dispositivos de salida permiten enviar los resultados a los usuarios de las
computadoras, transformando las seales elctricas binarias en informacin que stos
puedan comprender. El teclado est considerado como el dispositivo de entrada
estndar pero existen otros del mismo tipo, por ejemplo: el ratn, el escner, la
lectora ptica, el micrfono o la tabla digital. A su vez, el monitor es el dispositivo de
salida estndar; otros ejemplos de dispositivos de salida son: impresora, bocinas,
plotter, etc.
Es as que todas las unidades de la computadora se comunican a travs del sistema
de buses que son cables mediante los cuales se envan seales y dependiendo de la
informacin que transmiten se clasifican en:
El bus de direcciones transmite la direccin de memoria de la que se quiere leer o en
la que se quiere escribir.
El bus de control selecciona la operacin a realizar en una celda de memoria
(lectura o escritura).
El bus de datos transmite el contenido desde o hacia una celda de memoria
seleccionada en el bus de direcciones segn la operacin elegida en el bus de control
sea lectura o escritura.

Ahora ya sabemos cmo est estructurada internamente la computadora, qu


elementos la integran y cul es la funcin de cada uno de ellos; el siguiente paso es
descubrir cmo colaboran para llevar a cabo la ejecucin de un programa, enseguida
lo explicamos:
Los datos de entrada que requiere un programa se introducen a la computadora, a
travs de los dispositivos de entrada; posteriormente se almacenan en la memoria
RAM, para que la CPU pueda procesarlos, conforme a las instrucciones del programa,
hasta obtener el resultado deseado, mismo que enva al usuario por medio de los
dispositivos de salida. Todas estas acciones son coordinadas por la unidad de control
que enva las seales y datos a cada uno de los dispositivos de la computadora
involucrados en la ejecucin de las instrucciones del programa a travs del sistema
de buses. En la siguiente seccin se describe con mayor detalle este proceso.

1.2.2. Ejecucin de programas en la computadora


Para entender mejor lo que sucede en el interior de la CPU al ejecutar cualquier
programa, a continuacin se describen de manera general los pasos que se realizan
una vez que el programa y los datos fueron almacenados en la memoria principal:
UNO
La unidad de control consulta en la memoria la instruccin indicada en el contador del
programa y la almacena en el registro de instrucciones, actualizando el contador del
programa con la direccin de memoria de la siguiente instruccin.
DOS
La unidad de control se encarga de decodificar la instruccin almacenada, detectando
qu dispositivos estn implicados en su ejecucin, stos pueden ser: la ALU, cuando
se tiene que hacer una operacin; los dispositivos de entrada y/o salida, cuando se
tiene que enviar o recibir un dato; o la memoria, si se quiere guardar o consultar un
dato; posteriormente enva las seales de control a los mismos indicndoles la accin
y si es el caso, los datos y/o la direccin de memoria correspondiente.
TRES
Cuando los dispositivos realicen su tarea enviarn una seal a la unidad de control,
para que sta repita el mismo procedimiento con la siguiente instruccin, as se repite
el proceso hasta ejecutar todo el programa.

Al perodo en el que se ejecuta una instruccin se le conoce como ciclo de


instruccin o ciclo fetch.
Con el fin de ilustrar este procedimiento, analizaremos la ejecucin del siguiente
programa escrito en un lenguaje de programacin ficticio.

Programa 1: Calcula el rea de un rectngulo


Ejemplo 1.1: El siguiente conjunto de instrucciones sirve para calcular el rea de un
rectngulo.
Imprimir Ingresa la base:
Leer b
Imprimir Ingresa la altura:
Leer h
area b*h
Imprimir rea
Antes de definir paso a paso la ejecucin de este programa, describiremos la funcin
de cada una de las instrucciones que lo integran.

Instruccin

Descripcin
Imprime en el dispositivo de salida estndar los <Datos>
Imprimir <Dato> indicados en la instruccin, que pueden ser un mensaje de texto o
el valor de una variable.
Lee por medio del teclado un dato, lo almacena en la
Leer <X>
variable <X> indicado y lo almacena en la memoria RAM.
La flecha representa una asignacin, esta accin actualiza la
<X> <Dato>
direccin de memoria asignada a <X> con el valor <Dato>.

Cabe sealar que en los lenguajes de programacin, las direcciones de memoria se


representan por medio de variables, para hacerlos ms legibles. De tal manera que
<X> representa una variable y <Dato> puede ser un mensaje o cualquier valor.
Ahora s, de acuerdo con la informacin anterior, describamos paso a paso las
acciones que realiza la unidad de control junto con las otras unidades de la
computadora involucradas en la ejecucin de cada una de las instrucciones del
programa.
I.

Imprimir Ingresa la base:

La unidad de control enva seales al monitor para que imprima el mensaje Ingresa
base:.
II.

Leer b

La unidad de control coordina las acciones necesarias para que, por medio del
teclado, el usuario introduzca un nmero y lo almacene en la memoria
principal,en el espacio correspondiente a la variable b.
III.

Imprimir Ingresa la altura:

La unidad de control, nuevamente, enva una seal al monitor para que


imprima el mensaje Ingresa altura:.
IV.

Leer h
La unidad de control coordina las acciones necesarias para que el usuario
introduzca un nmero, por medio del teclado, y lo almacene en el espacio de
memoria correspondiente a la variable h.

V.

area b*h
La unidad de control enva la seal indicada a la ALU para que realice la
multiplicacin posteriormente enva la seal a la memoria junto con el
resultado de la multiplicacin, para que se almacene en el espacio de
memoria correspondiente a area.

VI.

Imprimir rea
La unidad de control trae de la memoria el dato almacenado en el espacio
asignado a la variable area y coordina las acciones para que
el monitor imprima este valor.

1.2.3. Almacenamiento de programas y datos


La computadora slo entiende seales binarias: ceros y unos, encendido y apagado;
ya que todos los dispositivos que la integran trabajan con dos nicos estados: hay
corriente elctrica y no hay corriente elctrica, respectivamente. Por tal motivo, los
datos y programas almacenados en la memoria estn codificados como cadenas de
1s y 0s para que la unidad de control pueda interpretarlos. A esta codificacin se le
llama lenguaje de mquina.
Es importante mencionar que la memoria est dividida en varias celdas, en cada una
de las cuales se pueden almacenar nicamente 0s 1s, a estos valores se les
denomina valores binarios o BITs (BInary digiT).
Las celdas se agrupan para formar registros (tambin llamados palabras), a cada uno
le corresponde una direccin de memoria, as cuando se desea escribir o leer de la
memoria un dato o una instruccin se debe especificar la direccin donde se
encuentra.
Como podrs imaginar, para un ser humano resultara sumamente complicado escribir
los programas en lenguaje de mquina, es por eso que los programas se escriben en
lenguajes de programacin entendibles para los seres humanos y despus se
traducen mediante un software especial que puede ser un compilador o un
traductor a cadenas de 0s y 1s. De tal manera que a cada instruccin le
corresponde un cdigo binario especfico y para cada dato tambin existe una
codificacin nica.

Por ejemplo, la palabra Hola se representa como 0100 1000 0110 1111 0110 1100
0110 0000, ya que a cada letra le corresponde una codificacin:

El nmero 80 se puede representar como 0101 0000 y la instruccin MOV R2, R7


se codifica de la siguiente manera 0010 0000 1000 0100.
Si quieres conocer ms sobre el sistema binario, consulta
https://es.wikipedia.org/wiki/Sistema_binario

Conforme fueron evolucionando las computadoras se inventaron


diversas maneras de representar la informacin en cdigo binario. Hoy en da existen
codificaciones estndar para los smbolos y los nmeros, al igual que para las
instrucciones; sin embargo, para nuestros objetivos es suficiente tener claro que
cualquier dato o instruccin puede ser representado mediante cadenas de 0s y 1s.
Por otro lado, escribir programas en lenguaje binario es sumamente complicado para
los seres humanos, por lo que en las ltimas dcadas se han desarrollado diversos
lenguajes de programacin que son ms cercanos al lenguaje natural (humano), de
los cuales hablaremos en la siguiente seccin.

1.3. Lenguajes de Programacin


Los lenguajes de programacin sirven para escribir programas de computadora
orientados a resolver algn problema o necesidad. Cada lenguaje de programacin se
define a partir de un conjunto de smbolos bsicos llamado alfabeto, un conjunto de
reglas, llamado sintaxis, que define la forma de manipularlos o combinarlos para
representar instrucciones y las reglas que especifican los efectos de dichas
instrucciones cuando son ejecutadas por la computadora, conocidas como semntica.
De esta manera tenemos que:

Por otro lado, dependiendo de su legibilidad para el ser humano, los


lenguajes de programacin se clasifican en lenguajes de bajo nivel y lenguajes de
alto nivel. Los primeros se caracterizan porque sus instrucciones se parecen ms a
las acciones elementales que ejecuta una computadora, como son: sumar, restar,
guardar en memoria, etc. En cambio, las instrucciones de los lenguajes de alto nivel
son ms parecidas a un lenguaje humano, por lo regular ingls. Por otro lado, los

programas escritos en bajo nivel describen a detalle lo que sucede a nivel de


hardware, mientras que los programas escritos en un lenguaje de alto nivel lo ocultan,
teniendo como ventaja que son ms fciles de entender para las personas.

1.3.1. Evolucin de los lenguajes de programacin


Con las primeras computadoras surgi el primer lenguaje de
programacin que como es de imaginarse fue el lenguaje de mquina, el cual es
considerado el lenguaje de primera generacin. Las instrucciones en lenguaje de
mquina dependan de las caractersticas fsicas de cada equipo, por lo que dada la
dificultad de desarrollar programas en unos y ceros, los investigadores de la poca
desarrollaron el lenguaje ensamblador, cuyo conjunto de instrucciones consta de
palabras nemotcnicas que corresponden a las operaciones bsicas que una
computadora puede ejecutar.
Para ilustrar esto revisemos la siguiente instruccin:
Mueve el contenido del registro 8 al contenido del registro 10.
En lenguaje de mquina esta instruccin se podra
representar como:
0010 0000 1000 0100
Lo cual es ilegible para el ser humano, en cambio en lenguaje ensamblador esta
instruccin se puede
representar de la siguiente forma:
MOV R8, R10
Aunque sigue estando en clave, es ms amigable que las cadenas de ceros y unos.
Para traducir de lenguaje ensamblador a lenguaje de mquina, se desarrollaron
programas llamados ensambladores (en ingls, assemblers). Este lenguaje fue
considerado de segunda generacin. Posteriormente, en la dcada de los 50s
aparecieron los primeros lenguajes de alto nivel, cuyas instrucciones son ms
parecidas al idioma ingls, y por lo tanto, ms fcil de utilizar para los programadores,
adems de que son independientes de la arquitectura de las computadoras. Algunos
ejemplos son: FORTRAN y COBOL (que son los primeros lenguajes que aparecieron
y en sus inicios se utilizaron para aplicaciones cientficas), C, Pascal, Ada, Lisp y
Prolog (utilizados principalmente en inteligencia artificial), Java, C++, C#, entre otros.

Al igual que el lenguaje ensamblador, los programas escritos en un


lenguaje de alto nivel deben ser codificados a lenguaje de mquina, as que junto con

ellos se desarrollaron programas traductores, que de acuerdo con la forma en que


trabajan se dividen en dos tipos: compiladores e intrpretes.
Los compiladores traducen todo el programa escrito en un lenguaje de alto nivel,
llamado programa o cdigo fuente, generando un nuevo programa objeto que est
escrito en lenguaje de mquina y a partir de ste se genera un programa ejecutable,
el cual puede ejecutarse cada vez que se desee sin tener que compilar el programa
fuente de nueva cuenta. Adems, como parte del proceso de traduccin, el
compilador detecta los errores que hay en el cdigo fuente, informndole al
programador para que los corrija, pues un programa slo se compila si no tiene
errores.
En cambio, un intrprete revisa una a una cada lnea de cdigo, la analiza y
enseguida la ejecuta, sin revisar todo el cdigo y sin generar un programa objeto, as
que cada vez que se quiere ejecutar el programa se vuelve a traducir el programa
fuente lnea por lnea.
De acuerdo con lo anterior, los compiladores requieren una fase extra antes de poder
generar un programa ejecutable, y aunque esto pareciera menos eficiente en cuanto a
tiempo se refiere, un programa se ejecuta ms rpido si se usa un compilador en vez
de un intrprete, adems cuando el programa ya ha sido compilado puede ejecutarse
nuevamente sin tener que compilarse de nuevo, mientras que si se usa intrprete,
debe ser traducido cada vez que se quiera ejecutar.
Conforme han ido evolucionando las computadoras tambin lo han hecho las
estrategias para solucionar problemas, generando nuevos programas con diferentes
filosofas, llamadas paradigmas de programacin, de esto hablaremos a continuacin.

1.3.2 Paradigmas de los lenguajes de programacin


Un paradigma de programacin representa un enfoque particular o filosofa para
disear soluciones. Los paradigmas difieren unos de otros, en los conceptos y la
forma de abstraer
los elementos involucrados en un problema, as como en los pasos que integran su
solucin del problema, en otras palabras, el cmputo. Para este curso de
programacin 1 utilizaremos el siguiente:
Paradigma orientado a objetos. En este caso la solucin de un problema se
plantea en trminos de objetos y relaciones entre ellos. Est basado en varias
tcnicas, incluyendo herencia, polimorfismo, modularidad y encapsulamiento. En este
caso se definen clases que son las plantillas para crear objetos, por ejemplo, si se
quiere un programa orientado a objetos que calcule el rea de un rectngulo, se debe
definir una clase rectngulo que contenga un mtodo encargado de calcular el rea.
El lenguaje Java y C#, que actualmente son los ms utilizados, son ejemplos de este
paradigma.

1.4 Ciclo de vida del software


Independientemente del paradigma que se siga y del lenguaje que se utilice para
programar, existe un conjunto de fases que deben seguirse para realizar un programa
de computadora, al cual se le conoce como ciclo de vida del software:
Las fases que componen el ciclo de vida de software son:

Planteamiento del problema


Anlisis del problema
Diseo del algoritmo
Implementacin o codificacin
Pruebas y validacin
Documentacin del programa
Mantenimiento

Planteamiento del problema


Es la primera fase del ciclo, consiste nicamente en elegir el problema que se quiere
resolver para poder comenzar su anlisis
Anlisis del problema
En esta fase se determina qu hace el programa? Por lo cual debe definirse de
manera clara y concisa el problema en cuestin, se debe establecer el mbito del
problema, las caractersticas, limitaciones y modelos de lo que se desea resolver.
Este paso debe conducir a una especificacin completa del problema en donde se
describa cules son los datos requeridos para resolverlo (datos de entrada) y cul es
el resultado deseado (salida).
El anlisis de nuestro ejemplo es muy simple y se resume en la siguiente tabla:
Cul es la salida deseada? El rea de un cuadrado, la cual identificaremos como
Qu mtodo(s) se pueden El rea de un rectngulo se puede calcular con la
utilizar para llegar a la siguiente
frmula:
solucin?
rea = Base x altura
Qu datos de entrada se Por el planteamiento del problema y dado el mtodo
requieren?
anterior, los nicos datos que se requieren son: la
medida de la base que se representa por b y la medida
de la altura indicada por h
Qu datos o informacin En este caso no se requiere ms informacin.
adicional es necesaria para
solucionar el problema?
Existe algn problema o Las nicas restricciones son que las medidas de la
condiciones que deban base y altura sean mayores a cero.
cumplirse?

Diseo de la solucin
Es en esta fase se define cmo el programa resuelve el problema? Para ello, se
describe paso a paso la solucin del mismo, lo cual se conoce
como algoritmo. Cuando el problema es grande se recomienda dividirlo en
subproblemas ms pequeos y resolver por separado cada uno de ellos. A esta
metodologa se le conoce como diseo descendente (top-down) o modular. Existen
diferentes formas de representar un algoritmo algunas formales, como una frmula
matemtica, o informales, como es el caso del lenguaje natural.
En la siguiente tema posterior estudiaremos a mayor profundidad los algoritmos y su
representacin, pero para seguir con el desarrollo de nuestro programa ejemplo,
plantearemos la solucin como una secuencia de pasos en espaol.
Algoritmo que calcula el rea de un rectngulo

Obtener la medida de la base (b) y la altura (h)


Calcular: rea = b * h
Imprimir el resultado (rea)

El programa 1.1 es otra forma de representar la solucin de este problema, se conoce


como pseudocdigo.

Implementacin (codificacin)

El algoritmo no puede ser ejecutado por una computadora por ello debe traducirse a
un lenguaje de programacin (como por ejemplo C# que es el lenguaje de alto nivel
que ocuparemos para nuestros laboratorios) para obtener un programa fuente que se
traduzca a lenguaje de mquina para que sea ejecutado por la computadora.
En el siguiente cuadro se muestra la codificacin en lenguaje C# del algoritmo, por
ahora no es necesario que lo comprendas puesto que esto lo podrs hacer conforme
vayas aprendiendo a programar, por lo pronto solamente se muestra con fines
ilustrativos.

Validacin y pruebas

Esta fase debe hacerse una vez que se ha diseado el algoritmo y despus de que se
codifica, sirve para verificar que son correctos. Existen diferentes formas de probar
que la solucin es correcta, algunas de ellas formales y otras informales: las primera
se utilizan para garantizar que el programa o algoritmo siempre calcula el resultado
deseado para cualquier conjunto de datos de entrada; en cambio, en las segundas
slo se prueba que funciona correctamente para algunos datos de entrada, tratando
de encontrar posibles errores, en este caso no se puede garantizar el programa o
algoritmo calcule la salida correcta para cualquier conjunto de datos. En cualquiera de
los dos casos, si se encuentra alguna falla se debe corregir y volver a realizar
pruebas.
El ejemplo es muy sencillo y si ejecutamos manualmente el programa o algoritmo
mostrado en la fase anterior, con un caso especfico de rectngulo veremos que
ambos son correctos.

Documentacin

Cualquier proyecto de software por la complejidad que tiene requiere tanto las ideas
principales como el desarrollo de principio a fin sea documentado, con el fin de que
cualquiera puedan entender la lgica del programa y de ser necesario pueda
modificarlos sin tantas complicaciones. Es comn que si se desea modificar un
programa y no se tiene informacin acerca de cmo fue construido sea ms fcil
volverlo a hacer que intentar entenderlo. Uno de los mejores ejemplos de la
importancia de la documentacin es el software libre, en el cual colaboran diversos
desarrolladores para su elaboracin, los cuales se encuentran en diferentes puntos
geogrficos de globo terrqueo, as que la forma de entender que est haciendo cada
uno y bajo que mtodo es la documentacin. Adems de que se debe tomar en
cuenta que se llama software libre porque est disponible el cdigo fuente para que
cualquier persona pueda modificarlo a su conveniencia.
Como parte de la documentacin tambin deben incluirse manuales de usuario y las
normas de mantenimiento para que se haga un buen uso del software.
Mantenimiento
Esta fase tiene sentido una vez que fue terminada una primera versin del programa y
ya est siendo utilizado. Ya que en sta se actualiza y modifica para corregir errores
no detectados o para cambiar y/o agregar una nueva funcin. Por ejemplo, se puede
extender el programa 1.1, que calcula el rea de un rectngulo para que tambin
calcule su permetro.
El siguiente conjunto de instrucciones calcula el rea y permetro de un rectngulo.

En el programa se resaltan las instrucciones que se aadieron al programa para


calcular el permetro.

Actividad Integradora
Ha llegado el momento de verificar qu tanto has aprendido con este tema.
Realiza la siguiente actividad, la cual tiene una doble finalidad: la primera, que
reconozcas qu tanto has aprendido para que por ti mismo valores si la manera en
que te has conducido hasta ahora por la asignatura ha sido o no la correcta; y la
segunda, que te diviertas ganndole a la ignorancia, porque no todo deben ser letras y
nmeros, lleg la hora de jugar!

Autoevaluacin
Contesta si es cierto o falso y menciona por qu.

1. Los datos que requiere un programa para realizar un clculo deben estar en la
memoria, de lo contrario no pueden ser procesados.
2. El sistema operativo, los compiladores y los editores de texto son ejemplos de
software.
3. El teclado, el mouse y el scanner son ejemplos de dispositivos de salida.
4. Para ejecutar la siguiente instruccin X = 2 * Y
Principalmente intervienen la unidad de control, la ALU y la memoria.
5. Los datos y los programas se almacenan en la memoria ROM.
6. Los datos almacenados en memoria estn representados como cadenas de unos y
ceros.
7. La computadora puede ejecutar directamente los programas escritos en lenguajes
de alto nivel, como C, Java o PHP.
8. La diferencia entre un compilador y un intrprete es que: el primero traduce y
ejecuta una a una las instrucciones del programa fuente, en cambio un intrprete
traduce todo el programa fuente a lenguaje de mquina generando un programa
objeto que despus se convierte en un programa ejecutable.
Muy bien! No olvides consultar cualquier duda que te surja

Autoevaluacin del tema


Para finalizar las actividades del tema 1, realiza el cuestionario de autoevaluacin que
hemos preparado para ti, como complemento de la actividad que acabas de realizar.

Cuestionario

Pregunta 1
La diferencia entre un intrprete y un compilador es:

a. El intrprete traduce todo el programa y luego lo ejecuta. En


cambio, el compilador traduce todo el programa y despus lo
ejecuta. En ambos casos siempre que se quiere ejecutar el
programa se tiene que volver a traducir (compilar o interpretar).
b. El intrprete traduce una a una cada instruccin mientras las va
ejecutando. En cambio, el compilador traduce todo el programa,
generando un programa objeto que despus se convierte en un
programa ejecutable.
c. El compilador traduce una a una cada instruccin mientras las va
ejecutando. En cambio, el intrprete traduce todo el programa,
generando un programa objeto que despus se convierte en un
programa ejecutable.
d. El compilador traduce todo el programa y luego lo ejecuta. En
cambio, el intrprete traduce todo el programa y despus lo ejecuta.
En ambos casos siempre que se quiere ejecutar el programa se
tiene que volver a traducir (compilar o interpretar).

Pregunta 2
Las etapas del ciclo de vida de software son: I. Codificacin; II. Pruebas y
validacin; III. Anlisis del problema; IV. Diseo de la solucin; V.
Mantenimiento. El orden en que se realizan es:
a. III, V, II, I, IV
b. III, I, IV, II, V
c. III, II, I, IV, V
d. III, IV, I, II, V

Pregunta 3
Son ejemplos de dispositivos de salida

a. Bocinas e impresora
b. Escaner y Bocinas
c. Impresora y memoria flash (tambin llamada usb)
d. Monitor y teclado

Pregunta 4
Es un ejemplo de una instruccin en lenguaje ensamblador.

a. printf("hola mundo");
b. MOV R2, R7
c. Leer x
d. 0010 0000 1000 0100

Pregunta 5
De acuerdo con el modelo de Von Neumann, los datos de un programa se
almacenan en:

a. La memoria ROM
b. En la memoria secundaria
c. En el disco duro
d. En la memoria RAM

Cierre del tema


Aqu concluimos el primer tema de nuestro curso en la que, de manera general,
podemos decir que aprendimos las partes que integran una computadora y la manera
en que cada una de ellas interacta para obtener como resultado la interaccin con el
usuario.
Tambin aprendimos que existen varias formas de comunicarnos o hacernos entender
por estas mquinas a travs de lo que denominamos Lenguajes de programacin y
que existen varios paradigmas que determinan las caractersticas de esos lenguajes.
Por ltimo, conocimos las fases que se siguen cuando se realiza un programa de
computadora, independientemente del lenguaje que se utilice.
Si todo esto que acabamos de decir te parece ya familiar, es decir, si sabes a que nos
estamos refiriendo al mencionar lo anterior, entonces ya ests lista(o) para continuar
con el tema dos.
Adelante!

Fuentes de consulta
Joyanes, L., & Zohanero, I. (2005). Programacin en C. Metodologa,
algoritmos y estructuras de datos. Espaa: Mc Graw Hill.

AUTORREFLEXIONES
Estas son las preguntas de la Autorreflexin del tema 1:

1.
2.
3.
4.

Qu aprend en este tema?


Cmo fue mi aprendizaje?
Para qu me sirve lo que aprend en este primer tema?
Dnde puedo aplicar lo aprendido en este tema?