miércoles, 29 de marzo de 2017

Compilación y Depuración de Programas

COMPILACIÓN
La compilación es el proceso de traducción de programas fuente a programas objeto. El programa objeto obtenido de la compilación ha sido traducido normalmente al código común del lenguaje de máquina.
Existen diversas fases de compilación o también llamadas etapas de la compilación que se ilustrarán en la siguiente imagen:
Fases de la compilación
El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un compilador tiene los siguientes pasos:
    1. Escritura del programa fuente con un editor (programa que permite a una computadora actuar de modo similar a una máquina de escribir electrónica) y guardarlo en un dispositivo de almacenamiento (por ejemplo, un disco).
    2. Introducir el programa fuente en memoria.
    3. Compilar el programa con el compilador.
    4. Verficar y corregir errores de compilación (listado de errores).
    5. Obtención del programa objeto.
    6. El enlazador (linker) obtiene el programa ejecutable.
    7. Se ejecuta el programa y, si no existen errores, se tendrá la salida del programa.
    DEPURACIÓN
    Cuando se ha desarrollado el pseudocódigo de un algoritmo o programa y lo introducimos en el ordenador en forma de código, se intenta la primera ejecución. Con esta primera ejecución se empieza a obtener información respecto al estado del programa en cuanto a errores. Es habitual que el programa no funcione a la primera.
    Comenzamos un proceso de eliminación de errores que supone ir construyendo un programa sólido a partir de un embrión de programa débil. Vamos a verlo como un proceso de destrucción de una pirámide de errores y construcción de una pirámide de programa sólido.
    piramide de errores programacion
    El umbral que hace al programa válido para su uso es el de ejecución sin errores y con resultados correctos para situaciones y datos de entrada esperados. Por tanto este será un objetivo irrenunciable para el programador. Nos situamos en un nivel en el que no existen errores de obligada ocurrencia pero sí cierta probabilidad de aparición de errores ante circunstancias específicas. Hablando pues en términos de probabilidad no nos referimos a número de errores, sino al grado de vulnerabilidad o, si se prefiere, grado de fortaleza de un programa. Si la posibilidad de errores es alta decimos que el programa es débil o vulnerable y si es baja que es poco vulnerable o fuerte. Las equivalencias serían estas:
    Probabilidad de error
    Grado de vulnerabilidad
    Grado de fortaleza
    Muy alta
    Muy vulnerable
    Inconsistente, frágil
    Alta
    Vulnerable
    Débil
    Baja
    Poco vulnerable
    Fuerte, sólido
    Nula
    Invulnerable
    Muy fuerte, totalmente sólido


    Cuanta más depuración más fuerte es el programa, pero también mayor esfuerzo y tiempo requiere. El programador puede adoptar pues una actitud de lucha tenaz y búsqueda de cualquier posible error para su eliminación, a lo que llamamos enfoque de intransigencia, o bien dar por bueno que se produzcan ciertos errores para supuestos poco usuales que serían gestionados, a lo que llamamos enfoque de permisividad. ´
    En resumen: la postura más lógica es la de tener cierta permisividad hacia los errores, buscando el equilibrio entre esfuerzo y grado de perfección del programa.

lunes, 27 de marzo de 2017

Editores y Compiladores

EDITORES
Un editor de texto es un programa informático que permite crear y modificar archivos digitales compuestos únicamente por textos sin formato, conocidos comúnmente como archivos de texto o “texto plano”. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor. Es comúnmente de 7- u 8-bits en ASCII o UTF-8, rara vez EBCDIC.

Funciones típicas del editor de texto:

Marcar región, Búsqueda y reemplazo, Copiar, cortar y pegar, Formatear, Deshacer y rehacer, Importar, Filtros, Acceso remoto.

Algunas funciones especiales son:
  • Editores diseñados para un lenguaje de programación determinado, con coloreado de sintaxis, macros, completación de palabras, etcétera.
  • Editores con regiones plegables. A veces no todo el texto es relevante para el usuario. Con este tipo de editores ciertas regiones con texto irrelevante pueden ser plegadas, escondidas, mostrando al usuario solo lo importante del texto.
  • Un entorno de desarrollo integrado es un programa que incluye un editor y otras herramientas de trabajo, como compiladores, extractores de diferencias entre dos textos, repositorios, etcétera, incluidos en un solo programa.

Ejemplos

  • Bloc de notas, editor integrado en Microsoft Windows, también conocido como Notepad (en inglés).
  • Emacs, editor muy común en Unix.
  • Gedit, editor libre que se distribuye junto con GNOME para sistemas tipo Unix. También disponible para Windows.
  • jEdit, editor popular multiplataforma.
  • Kate, editor para Unix.
  • Notepad++, editor de código fuente para Windows.
  • Vi, editor muy común en Unix.


COMPILADORES
Un compilador es un programa informático que traduce un programa que ha sido escrito en un lenguaje de programación a un lenguaje diferente, usualmente lenguaje de máquina, aunque también puede ser traducido a un código intermedio (bytecode) o a texto. Este proceso de traducción se conoce como compilación.

La construcción de un compilador involucra la división del proceso en una serie de fases que variará con su complejidad. Generalmente estas fases se agrupan en dos tareas: el análisis del programa fuente y la síntesis del programa objeto.
Análisis: Se trata de la comprobación de la corrección del programa fuente, e incluye las fases correspondientes al Análisis léxico.
Síntesis: Su objetivo es la generación de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de generación de código.

TIPOS DE COMPILADORES:
  • Compiladores cruzados: generan código para un sistema distinto del que están funcionando.
  • Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
  • Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente.
  • Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.
  • Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.

Consiste en generar el código objeto equivalente al programa fuente. Solo se genera código objeto cuando el programa fuente está libre de errores de análisis, lo cual no quiere decir que el programa se ejecute correctamente, ya que un programa puede tener errores de concepto o expresiones mal calculadas. Por lo general el código objeto es código de máquina relocalizable o código ensamblador. 

jueves, 23 de marzo de 2017

Historia de los Lenguajes de Programación

Los primeros lenguajes de programación preceden a la computadora moderna. En un inicio los lenguajes eran códigos. La máquina del telar de Jacquard, creada en 1801, utilizaba los orificios en tarjetas perforadas para representar los movimientos de un brazo de la máquina de tejer, con el objetivo de generar patrones decorativos automáticamente.
Durante un período de nueve meses entre 1842 y 1843, Ada Lovelace tradujo las memorias del matemático italiano Luigi Menabrea acerca de la nueva máquina propuesta por Charles Babbage, la Máquina Analítica. Herman Hollerith se percató de que podía codificar la información en tarjetas perforadas cuando observó a los conductores de trenes codificar la apariencia de los tickets del tren con la posición de los agujeros perforados en estos. En 1890 Hollerith codificó los datos del censo en tarjetas perforadas.
En la década de 1940 fueron creadas las primeras computadoras modernas, con alimentación eléctrica. La velocidad y capacidad de memoria limitadas forzaron a los programadores a escribir programas, en lenguaje ensamblador muy afinados. Finalmente se dieron cuenta de que la programación en lenguaje ensamblador requería de un gran esfuerzo intelectual y era muy propensa a errores. Entre algunos lenguajes importantes que fueron desarrollados en este período se encuentran:
·         1943 - Plankalkül (Konrad Zuse), diseñado, pero sin implementar durante medio siglo
·         1943 - el sistema de codificación ENIAC.
·         1949 - 1954 -- una serie de conjuntos de instrucciones nemotécnicas, como la de ENIAC, comenzando en 1949 con C-10 para BINAC
En los cincuenta, los tres primeros lenguajes de programación modernos, cuyos descendientes aún continúan siendo utilizados, son:
·         1957 – Fortran: (“The IBM Mathematical Formula Translating System”): Un lenguaje de programación de alto nivel de propósito general. Para cálculo numérico y científico (como alternativa al lenguaje ensamblador). Es el lenguaje de programación más antiguo que se utiliza hoy en día.
·         1958 – Lisp: (“List Processor”) Utilizado para la notación matemática y temas de ciencias de la computación.
·         1959 – Cobol: (“Common Business-Oriented Language) Usado principalmente para la informática empresarial. Es el primer lenguaje de programación que se demandan por el Departamento de Defensa de EE.UU.

Otro lenguaje importante de esta época es en 1964 – BASIC: (“Beginner’s All-purpose Symbolic Instruction Code”) Diseñado para la simplicidad. Su popularidad explotó a mediados de los años 70 con los computadores personales.


El período comprendido entre finales de 1960 y finales de 1970 trajo un gran florecimiento de lenguajes de programación. La mayoría de los paradigmas de lenguajes de programación más importantes y actualmente en uso se inventaron en este período:
·         Simula, inventado en la década de 1960 por Nygaard y Dahl como un superconjunto de Algol 60, fue el primer lenguaje diseñado para apoyar la programación orientada a objetos.
·         C, en principio un lenguaje de programación de sistemas, fue desarrollado por Dennis Ritchie y Ken Thompson en los Laboratorios Bell entre 1969 y 1973.

Algunos lenguajes de programación sobresalientes de esta época fueron:
·         1970 – Pascal: (En honor al matemático/físico francés Blaise Pascal) Utilizado para la enseñanza de la programación estructurada y estructuración de datos.
·         1972 – Lenguaje C: (Basado en un lenguaje anterior llamado “B”) Creado para sistemas Unix. Muchos de lenguajes de programación más populares del mundo son derivados de él, entre ellos tenemos C#, Java, JavaScript, Perl, PHP y Python.

La década de 1980 fueron años de consolidación relativa en los lenguajes imperativos. En vez de inventar nuevos paradigmas, se comenzó a trabajar a partir de las ideas inventadas en la década anterior. C++ combinaba la programación orientada a objetos y la programación de sistemas. Algunos lenguajes de programación sobresalientes de esta época fueron:
·         1980 – Ada: (En honor a Ada Lovelace): Es derivado del Pascal. Contratado por el Departamento de Defensa de los EE.UU. en 1977 para el desarrollo de sistemas de software grandes.
·         1983 – C++: (“C con clases”; ++ es el operador de incremento en “C”) Es una extensión de lenguaje C, con mejoras tales como clases, funciones virtuales y plantillas.
·         1983 – Objective-C: (Extensión de “C” orientada a objetos) Ampliación de C, se adiciona la funcionalidad de paso de mensajes basado en el lenguaje Smalltalk.
·         1987 – Perl: Creado para el procesamiento de informes en sistemas Unix. Hoy en día es conocido por su gran potencia y versatilidad.

El rápido crecimiento de Internet en la década de 1990 fue el siguiente gran acontecimiento histórico para los lenguajes de programación. Con la apertura de una plataforma totalmente nueva para los sistemas informáticos, Internet creó una oportunidad adoptar nuevos lenguajes. En particular, el lenguaje de programación Java se hizo popular debido a su pronta integración con el navegador web Netscape Navegador, y varios lenguajes de scripting alcanzaron un amplio uso en el desarrollo de aplicaciones personalizadas para servidores web.
Esta era vino con lenguajes como:
·         1991 – Python: Creado para apoyar una variedad de estilos de programación y hacerlo divertido de usar.
·         1993 – Ruby: Un lenguaje influenciado por Perl, Ada, Lisp, Smalltalk, etc. Diseñado para la programación productiva y agradable.
·         1995 – Java: Hecho para un proyecto de televisión interactiva. Funciona multiplataforma. Es el segundo lenguaje más popular (detrás de lenguaje C).
·         1995 – PHP: (“Personal Home Page”) Usado para la creación de páginas web dinámicas.
·         1995 – JavaScript: Creado para ampliar la funcionalidad de las páginas web, permite utilizar formularios de presentación/validación, interactividad, animaciones, seguimiento de la actividad del usuario, etc...

Actualmente los lenguajes han evolucionado de maneras más fáciles de desarrollar y entender, tales como:
·         Java: Reconocido por su legibilidad y simplicidad, Java es uno de los lenguajes de programación más adoptados: más 9 millones de desarrolladores lo usan.
·         C++: Conocido por el nombre “C Plus Plus”, este lenguaje de programación orientado a objetos surge como una continuación y ampliación del C. Hay una gran cantidad de programas escritos en C++, como por ejemplo los paquetes de Adobe.
·         C#: También llamado “C Sharp”, este lenguaje de programación orientado a objetos fue desarrollado en el año 2000 por Microsoft para ser empleado en una amplia gama de aplicaciones empresariales ejecutadas en el framework .NET. C Sharp es una evolución del C y C++ que se destaca por su sencillez y modernidad.
·         Visual Basic. NET: Una gran cantidad de personas a lo largo del mundo que trabajan con Visual Basic.net. Muchas personas que no cuentan con conocimientos profundos como desarrolladores, encuentran en Visual Basic, además de una sintaxis sencilla, la posibilidad de automatizar sus propios procesos y crear sus propias aplicaciones web. Es visto como uno de los lenguajes más amigables para los que recién comienzan, sobre todo a comparación de C#.
·         JavaScript: Antes que nada, no confundir con Java. Son lenguajes distintos. JavaScript es un lenguaje de programación que puede ser utilizado para crear programas que luego son acoplados a una página web o dentro de programas más grandes. Sirve para crear efectos y realizar acciones interactivas. Podemos ver funcionando este lenguaje en servicios como el chat, calculadoras, buscadores de información y un sin fin de utilidades más.


jueves, 16 de febrero de 2017

Redes Sociales: Requisitos, Contratos y Problemática

Las redes sociales son sitios de internet que permiten a las personas conectarse con sus amigos e incluso realizar nuevas amistades, de manera virtual, y compartir contenidos, interactuar, crear comunidades sobre intereses similares: trabajo, lecturas, juegos, amistad, relaciones amorosas, relaciones comerciales, etc. El origen de las redes sociales se remonta al menos a 1995, cuando el estadounidense Randy Conrads creó el sitio Web classmates.com. Con esta red social pretendía que la gente pudiera recuperar o mantener el contacto con antiguos compañeros del colegio, instituto, universidad. En 2002 comenzaron a aparecer los primeros sitios Web que promocionaban redes de círculos de amigos en línea o relaciones en las comunidades virtuales. La popularidad de estos sitios creció rápidamente y se fueron perfeccionando hasta conformar el espacio de las redes sociales en internet. Las redes sociales continúan creciendo y ganando adeptos en forma acelerada. Su auge se ha producido hace no más de cinco años, en parte gracias al avance de las conexiones a internet y al aumento en la cantidad de personas con acceso a una computadora. Hi5MySpaceFacebookTwitter y Orkut fueron las redes sociales más populares en la primera década de los 2000. Ahora las redes sociales más populares son: Facebook, Twitter, Snapchat, Instagram, Spotify, Musical.ly, entre otras. Lo que no siempre sabemos es lo que necesita nuestro teléfono para el bueno uso de la misma y sus reglas. ¿Cuáles son?



Facebook
·       Requisitos:
o   Ser mayor de 13 años.
o   Tener un sistema operativo Android 2.1, iOS, iPhone o Windows Phone.
o   Tener una memoria libre de 58.09 MB mínimo.
o   Se debe tener espacio extra para Facebook Messenger (100 MB en total).

·         Contrato (Síntesis):
o   No proporcionarás información personal falsa en Facebook, ni crearás una cuenta para otras personas sin su autorización.
o   No crearás más de una cuenta personal.
o   Si inhabilitamos tu cuenta, no crearás otra sin nuestro permiso.
o   No utilizarás tu biografía personal para tu propio beneficio comercial, sino que para ello te servirás de una página de Facebook.
o   No utilizarás Facebook si eres menor de 13 años.
o   No utilizarás Facebook si fuiste declarado culpable de un delito sexual.
o   Mantendrás la información de contacto exacta y actualizada.
o   No proporcionamos tu contenido o información a anunciantes sin tu consentimiento.
o   Entiendes que es posible que no siempre identifiquemos las comunicaciones y los servicios de pago como tales.
o   Nada de lo dispuesto en esta Declaración nos impedirá cumplir la ley.
o   Esta Declaración no otorga derechos de beneficiario a ningún tercero.
o   Nos reservamos todos los derechos que no te hayamos concedido de forma expresa.
o   Cuando accedas a Facebook o lo uses deberás cumplir todas las leyes aplicables.


Instagram
·        Requisitos:
o   Tener iOS 7 o posterior, Android 2.2 o posterior, Windows Phone 8 o posterior, Windows 10 incluido Windows 10 Mobile.
o   La calificación por edad de esta aplicación es a partir de los 13 años.
o   Tener espacio mínimo de 23.50 MB en el teléfono.

·         Contrato (Síntesis):
o   No puedes publicar fotos u otro tipo de contenido que muestre imágenes violentas, de desnudos íntegros o parciales, discriminatorias, ilegales, transgresoras, ofensivas, pornográficas o con contenido sexual a través del Servicio.
o   Eres responsable de las actividades que se realicen a través de tu cuenta.
o   Aceptas no solicitar, recopilar o utilizar las credenciales de inicio de sesión de otros usuarios de Instagram.
o   Tienes la responsabilidad de mantener la contraseña en secreto y protegida.
o   No debes difamar, acosar, intimidar, abusar, hostigar, amenazar, intimidar o hacerte pasar por personas o entidades.
o   No puedes utilizar el Servicio para ningún propósito no autorizado o ilegal.
o   Eres el único responsable de tu conducta y de los datos, texto, archivos, información, nombres de usuario, imágenes, gráficos, fotos, perfiles, clips de audio y video, sonidos, obras musicales, trabajos de autoría, aplicaciones, enlaces y otro contenido o materiales (denominados en su conjunto "Contenido") que envíes, publiques o muestres en el Servicio o a través de este.
o   No debes cambiar, modificar, adaptar o alterar el Servicio, ni cambiar, modificar o alterar otro sitio web para que de ello se deduzca erróneamente que está asociado al Servicio o a Instagram.


                                   Snapchat
·         Requisitos:
o   Snapchat solo está disponible para Android (4.1 y versiones superiores) y para iOS (8.0 o posterior), iPhone, iPad y iPod touch.
o   La aplicación es compatible sólo con mayores de 13 años.
o   Memoria libre de 174 MB mínimo.

·         Contrato (Síntesis):
o   Puedes formalizar un contrato vinculante con Snap Inc.
o   No eres una persona que tenga prohibido recibir los Servicios según las leyes de los Estados Unidos o cualquier otra jurisdicción aplicable, lo que significa que no apareces en la lista de Ciudadanos Especialmente Designados ("Specially Designated Nationals") del Departamento del Tesoro Público de EE. UU. ni estás sujeto a ninguna otra prohibición similar.
o   Cumplirás con estas Condiciones y todas las leyes, reglas y normas aplicables a nivel local, estatal, nacional e internacional.
o   Cualquier software que te proporcionemos puede descargar e instalar automáticamente actualizaciones y nuevas funcionalidades. Puedes ajustar estas descargas automáticas por medio de la configuración de tu dispositivo.
o   No puedes copiar, modificar, distribuir, vender ni arrendar ninguna parte de nuestros Servicios, ni tampoco puedes realizar ingeniería inversa o intentar extraer el código fuente del software, a menos que las leyes prohíban estas restricciones o que cuentes con nuestra autorización por escrito para hacerlo.
o   Eres responsable de las actividades que se lleven a cabo en tu cuenta de Snapchat. Por eso es importante que mantengas su seguridad. Una manera de hacerlo es seleccionando una contraseña segura que no utilices en ninguna otra cuenta.




Problemática con las Redes Sociales

Las redes sociales son un arma de doble filo: por un lado, además de informarte al instante de cualquier noticia, pueden ponerte en contacto con personas de otros continentes, pero por otro, pueden provocarte problemas que a la larga son difíciles de solucionar.
1.  Ser antisocial: Las redes sociales sustituyen el contacto cara a cara porque ya es más fácil mandar un DM o ‘skypear’ por Facebook. Pero en realidad, si pasas demasiado tiempo conectada en ellas, olvidarás lo que es convivir y te perderás de lo que hay allá afuera.
2. No tener privacidad: El estar tanto tiempo en las redes sociales incita a que, al igual que tus amigas más populares, quieras interactuar y publicar lo increíble que son tus días. Lo malo es que esta obsesión por tener presencia en las redes convierte una visita al súper en un #FoodPorn en Instagram, y un paseo por Reforma es el motivo perfecto para tuitear lo que se te venga a la mente.
3. Accidentes: Usar el celular mientras esperas el siga para checar las últimas actualizaciones y fotos de tus amigas es lo peor que puedes hacer. Varias investigaciones recientes han demostrado que el 48% de los conductores jóvenes usan el celular mientras manejan sólo para “ver qué hay de nuevo”. Esos 5 segundos pueden convertirse en un error fatal e incluso en la muerte.
4. Adicción: Un estudio realizado por la Universidad de Harvard en 2012, reveló que el exponerse demasiado a las redes sociales activa las mismas zonas del cerebro que el consumo de cocaína y otras drogas. Además, disminuyes productividad, pues son ideales para el ocio.
5. Depresión: Stalkear demasiado a tus amigas y pasar mucho tiempo en Facebook, por ejemplo, puede deprimirte al ver fotos de fiestas a las que no pudiste ir o no fuiste invitada, o viajes de quienes se la pasan bomba mientras tú estás en tu casa aburrida o trabajando.

jueves, 2 de febrero de 2017

Dispositivos de Hardware de Entrada, de Proceso, de Salida y de Entrada y de Salida a la vez



La computadora es una máquina electrónica que recibe y procesa datos para convertirlos en información conveniente y útil que posteriormente se envían a las unidades de salida. Un ordenador está formado, físicamente, por numerosos circuitos integrados y otros muchos componentes de apoyo, extensión y accesorios, que en conjunto pueden ejecutar tareas diversas con suma rapidez y bajo el control de un programa (software). Dos partes esenciales la constituyen, el software, siendo ésta la parte intangible (programas, datos, información, etc.) y el hardware, (hard = duro) que es su composición física (circuitos electrónicos, cables, gabinete, teclado, etcétera). El hardware es de mucha importancia, siendo este la parte donde introducimos, visualizamos o se procesa la información, siendo subdividida de ciertas maneras importantes de conocer.

Dispositivos de Entrada
Son aquellos que sirven para introducir datos a la computadora para su proceso. Los datos se leen de los dispositivos de entrada y se almacenan en la memoria central o interna. Los dispositivos de entrada convierten la información en señales eléctricas que se almacenan en la memoria central.

·         Teclado: Un teclado se compone de una serie de teclas agrupadas en funciones es un periférico de entrada o dispositivo, en parte inspirado en el teclado de las máquinas de escribir, que utiliza una disposición de botones o teclas, para que actúen como palancas mecánicas o interruptores electrónicos que envían información a la computadora.


·         Mouse: Dispositivo que mueve un puntero electrónico sobre una pantalla que facilita la interacción usuario-máquina.



·         Micrófono: Es un transductor electroacústico (dispositivo que transforma la electricidad en sonido, o viceversa). Su función es la de traducir las vibraciones debidas a la presión acústicaejercida sobre su cápsula por las ondas sonoras en energía eléctrica, lo que permite por ejemplo grabar sonidos de cualquier lugar o elemento.

·         WebCam: Es una pequeña cámara digitalconectada a una computadora, la cual puede capturar imágenes y transmitirlas a través de Internet, ya sea a una página web o a otra u otras computadoras de forma privada.



·         Lápiz óptico:  Es un periférico de entrada para computadoras, tomando en la forma de una varita fotosensible, que puede ser usado para apuntar a objetos mostrados en un monitor. Este periférico es habitualmente usado para sustituir al mouse. Está conectado a un cable eléctrico y requiere de un software especial para su funcionamiento. Haciendo que el lápiz toque el monitor el usuario puede elegir los comandos de los programas (el equivalente a un clic del mouse), bien presionando un botón en un lado del lápiz óptico o presionando éste contra la superficie de la pantalla. 

·         Escaner: Se utiliza para introducir imágenes de papel, libros, negativos o diapositivas. Estos dispositivos ópticos pueden reconocer caractéres o imágenes, y para referirse a este se emplea en ocasiones la expresión lector óptico (de caracteres).




·          Escáner de código de barras: Escáner que por medio de un láser lee un código de barras y emite el número que muestra el código de barras, no la imagen. Hay escáner de mano y fijos, como los que se utilizan en las cajas de los supermercados.



·         Joystick:  Es un dispositivo de control de dos o tres ejes que se usa desde una computadora o videoconsola para ejecutar los movimientos.


Dispositivos de Proceso
Son los que realizan el trabajo “pesado” del computador, o sea el que procesa los datos y poseen los datos inalámbricos por el usuario.

·         Microprocesador: Unidad central de proceso (conocida por sus siglas en inglés, CPU), circuito microscópico que interpreta y ejecuta instrucciones. La CPU se ocupa del control y el proceso de datos en las computadoras. Generalmente, la CPU es un microprocesador fabricado en un chip, un único trozo de silicio que contiene millones de componentes electrónicos. El microprocesador de la CPU está formado por una unidad aritmético-lógica que realiza cálculos y comparaciones, y toma decisiones lógicas.
·         Tarjeta Madre: La Tarjeta Madre, también conocida como Tarjeta Principal, Mainboard, Motherboard, etc. es el principal y esencial componente de toda computadora, ya que allí donde se conectan los demás componentes y dispositivos del computador. La Tarjeta Madre contiene los componentes fundamentales de un sistema de computación. Esta placa contiene el microprocesador o chip, la memoria principal, la circuitería y el controlador y conector de bus.
 
·         Memoria RAM: Lugar donde se guardan los datos que están utilizando en el momento y es temporal. Físicamente, los chips de memoria son de forma rectangular y suelen ir soldados en grupos a una placa con "pines" o contactos. La RAM a diferencia de otros tipos de memoria de almacenamiento, como los disquetes o los discos duros, es que la RAM es mucho más rápida, y se borra cuando se apaga el computador. Cuanta más memoria RAM se tenga instalada mejor.
 
·         Tarjeta de Video: es una tarjeta de expansión para una computadora u ordenador, encargada de procesar los datos provenientes de la CPU y transformarlos en información comprensible y representable en un dispositivo de salida, como un monitor o televisor



Dispositivos de Salida
Los dispositivos de salida son aquellos que reciben información de la computadora, su función es eminentemente receptora y por ende están imposibilitados para enviar información.

·         Monitor: Dispositivo de salida más común de las computadoras con el que los usuarios ven la información en pantalla. Recibe también los nombres de CRT, pantalla o terminal. En computación se distingue entre el “monitor”, que incluye todo el aparato que produce las imágenes, y la “pantalla”, que es sólo el área donde vemos las imágenes. Así, el dispositivo de salida es todo el monitor, no solamente la pantalla.
  
       Impresora: Es el periférico que el ordenador utiliza para presentar información impresa en papel. Las primeras impresoras nacieron muchos años antes que el PC e incluso antes que los monitores, siendo durante años el método más usual para presentar los resultados de los cálculos en aquellos primitivos ordenadores, todo un avance respecto a las tarjetas y cintas perforadas que se usaban hasta entonces. 
 Parlantes: Cada vez las usa más la computadora para el manejo de sonidos, para la cual se utiliza como salida algún tipo de bocinas. Algunas bocinas son de mesas, similares a la de cualquier aparato de sonidos y otras son portátiles (audífonos). Existen modelos muy variados, de acuerdo a su diseño y la capacidad en watts que poseen.
Videoproyector: Un proyector de vídeo o vídeo proyector es un aparato que recibe una señal de vídeo y proyecta la imagen correspondiente en una pantalla de proyección usando un sistema de lentes, permitiendo así visualizar imágenes fijas o en movimiento.


Dispositivos de Entrada y Salida a la vez

·         Memoria USB: Es un dispositivo de almacenamiento que utiliza memoria flash para guardar la información que puede requerir y no necesita baterías (pilas).
·         CD y DVD: El disco compacto (conocido popularmente como CD, por las siglas en inglés de Compact Disc) es un soporte digital óptico utilizado para almacenar cualquier tipo de información (audio, vídeo, documentos y otros datos).

·         Impresora Multifuncional: Es un periférico o dispositivo que puede conectarse a la computadora y que posee las siguientes funciones dentro de un mismo y único bloque físico: Impresora. Escáner. Fotocopiadora, ampliando o reduciendo el original.


·         Pantalla Táctil: Es una pantalla que mediante un toque directo sobre su superficie permite la entrada de datos y órdenes al dispositivo, y a su vez muestra los resultados introducidos previamente; actuando como periférico de entrada y salida de datos.