TEMA I. INTRODUCCIÓN
Objetivos:
Al finalizar el tema, el estudiante estará en capacidad de:
• Conocer la estructura y el funcionamiento básico del computador
• Identificar los criterios importantes de la Programación
• Definir: Acción, Proceso, Esquema, Algoritmo y Programa
• Identificar los métodos generales: Capacidad de abstracción, Construcción descendente, Probar y Decidir.
Duración: 5 horas/teoría
3 horas/practica.
Contenido:
1. El Sistema Computadora
2. El Analista y el Programador
3. Definiciones fundamentales: Algoritmos, Programas, Nemotecnia, Portabilidad, Amigable/Usable
4. Criterios de Programación
5. Lenguajes de Programación
6. Tipos de Datos Básicos
El estudio de la computación abarca el estudio del funcionamiento y de la utilización del sistema computadora, cual esta integrado por:
• El Hardware (funcionamiento): Lo constituye la parte física del computador, todo aquello que se puede ver y tocar.
• Los componentes electrónicos.
• La composición de esos componentes (arquitectura de las computadoras).
• El Software es el conjunto de instrucciones que permiten que el computador cumpla con las funciones deseadas. Cuando nos referimos al software, debemos tener presente que este se puede agrupar en tres tipos:
Sistema Operativo: Es el que se encarga de gestionar los recursos del Sistema Computador. El sistema operativo, controla los cuatro grandes módulos del sistema computador, es decir: Administra la memora, Administra el procesador, Administra los Archivos y Administra las entradas y salidas. Por otra parte los sistemas operativos pueden ser de libre licencia o código abierto o de licencia privada o restringida. En cuanto a los sistemas operativos de código abierto u open source, se tienen: Red Hat (Centos), Ubuntu y Debian, basados en Linux y Android, de Google, para teléfonos inteligentes y tabletas.
Software de Aplicación: Las aplicaciones que utilizamos para resolver problemas, como por ejemplo: El paquete de Office de Microsoft, OBSStudio, suites ofimáticas Libre Office y Open Office.
Lenguajes de Programación: Los lenguajes de programación se pueden agrupar en tres grandes tipos:
Lenguaje de máquina: Los lenguajes de maquina son lenguajes que generan programas ligados a la arquitectura del computador, son ligados a la arquitectura de la computadora a la cual fue diseñado, esto quiere decir que no se pueden llevar de una arquitectura a otra con distintas características (no es portable). El principal problema es que una vez realizado el programa, este sólo puede ser ejecutado en un tipo de computador, puesto que distintos computadoras hablan en distintos lenguajes de máquina. Por otra parte, son lenguajes nada amigables: Requiere de un esfuerzo considerable por parte del programador.
Lenguaje Ensamblador: También llamado lenguaje simbólico, el programador escribe las mismas instrucciones que en lenguaje de máquina, pero usando nombres nemotécnicos para los códigos de operaciones. El ensamblador es un programa encargado de traducir al lenguaje de máquina las instrucciones escritas en lenguaje simbólico.
Lenguaje Evolucionado: Los lenguajes evolucionados son lenguajes en su mayoría portables. Entre estos podemos mencionar:
Lenguajes Estructurados: Pascal, C, Fortran, Basic, entre otros
Lenguajes Orientados a Objeto: C++, Java, Python
Lenguajes Orientados a Visual: Visual C++, Visual Basic,
Lenguajes 100 %Concurrentes, con recolector de basura, expresivo, lenguaje simple, rápido, seguro, divertido y open source: Go
Importante
Un Compilador es un Programa que analiza un lenguaje y produce un código objeto parecido al que produce el ensamblador.
Ventajas: En la mayoría de los casos no se encuentra ligado a ningún tipo de computador.
De interés:
La concepción de sistema para una utilización cómoda y racional (Sistema Operativo).
La utilización de esos sistemas para la resolución de problemas (lenguajes de programación y software de aplicación).
En lineas muy generales, se puede decir que el Sistema Computadora, tiene dos funciones principales:
• Almacenar información (los datos)
• Hacer cálculos (construcción de nueva información).
Luego la computadora tiene dos componentes principales:
• La memoria: Componente pasivo cuya cualidad esencial es almacenar.
• El procesador: Componente activo cuya cualidad esencial es procesar (ser veloz, tiempo de cálculo).
Por otra parte, el Programador tiene dos recursos complementarios para establecer la resolución de un problema:
• Organizar los datos dentro de la memoria.
• Definir el proceso de tratamiento de esos datos (la actividad del procesador).
Luego, el programador debe definir:
• La estructuración de los datos (técnicas)
• La estructuración de los programas (métodos).
La estructuración de los datos debe ser una consecuencia de la estructuración definida de un programa (es decir que la especificación funcional de la organización de los datos implica la utilización de técnicas de representación física).
Criterios de programación: Entre los criterios más importantes de programación se pueden mencionar:
• El costo: es importante considerar el costo (espacio de almacenamiento, tiempo de computación, costo de diseño y construcción).
• La confiabilidad: correspondencia entre lo que hace el programa y lo que tiene que hacer.
• La adaptabilidad: facilidad de adaptar el programa con nuevas especificaciones.
• La legibilidad: un programa debe ser legible para cualquier programador (entender, verificar, modificar).
• La portabilidad: facilidad de trasladar un programa a diferentes arquitecturas.
Definiciones fundamentales:
Acción: Es un suceso que dura un tiempo finito y produce un resultado bien definido y previsto (una acción esta perfectamente definida por sus estados: inicial y final).
Proceso: Es un conjunto de fenómenos activos y organizados en el tiempo. Si se descompone un suceso en una serie de acciones más pequeñas cuyo efecto acumulativo es el mismo que el producido por el suceso completo, entonces se considera el suceso como un proceso secuencial.
Esquema: Es una descripción o una representación mental reducida a sus rasgos esenciales.
Algoritmo: Conjunto de pasos Lógicos, Finitos y Estructurados que resuelven un problema dado.
Programa: Algoritmo codificado o traducido en un lenguaje de Programación.
El Algoritmos esta desarrollado para ser entendido por el ser humano y el Programa por la computadora.
Métodos
Los métodos generales son:
• Capacidad de Abstracción: Mecanismo intelectual principal en la actividad de programación.
• Construcción descendente:
• Permite ver claramente los diversos niveles de abstracción de un analista.
• Permite dividir la construcción de un programa en etapas muy pequeñas.
• Dado un problema P especificado en términos de una información I, para su resolución se requerirá efectuar las siguientes etapas:
1. Descomponer P en n subproblemas SP1,SP2,...,SPn.
2. Especificar cada subproblema en términos de subinformaciones: SI1,SI2,...,Sin.
3. Componer los subproblemas SPi con objeto de lograr una solución de P.
4. Probar que la solución sea correcta.
5. Decidir si la construcción está terminada al observar los subproblemas. Sino volver a realizar ese proceso para cada subproblema aún no solucionado.
Tipos de Datos Básicos
Los tipos de datos básicos se pueden agrupar en tres tipos
Datos Numéricos: Conjunto de los números reales {R} y sus subconjuntos, {N}, {Q}, {Z}
Datos Lógicos: Aquellos que solo pueden tomar dos valores: {v,f} o {si, no} o {1,0}
Datos de tipo carácter: Todos los caracteres ASCII (American Standard Code for Information Interchange), con la característica de colocarlo entre comillas, por ejemplo: "1", "*", "nombre"
PRACTICA
Los Ejercicios que a continuación se muestran, corresponden a la Practica Nro. 1 de la Guía de Practica.
PRACTICA #1
CONTENIDO:
• Sistema Computadora
• Software
• Clasificación de los lenguajes de programación
• Hardware
TIEMPO: 2 horas/practicas.
3 horas/laboratorios
SEMANA: 1-2
EJERCICIOS:
1.1 Defina que es un Sistema Computador.
1.2 Defina que se entiende por :
• Algoritmo
• Programa
1.3 Explique cual es la diferencia entre algoritmo y programa.
1.4 Explique en que consiste la clasificación de los lenguajes de programación, semejanzas y diferencias entre cada una de ellas.
1.5 ¿Qué se entiende por portabilidad?
1.6 ¿Qué se entiende por mnemotécnico?
1.7 ¿Qué se entiende por variables y por constantes?
1.8 ¿Cuáles son los tipos de datos simples? Explique cada uno de ellos.
EVALUACIÓN TEMA I. INTRODUCCIÓN
A continuación, se presenta la evaluación del Tema I. Antes de responder este seguro del dominio del Tema I, pues una ves que comience no podrá repetir la prueba.
Éxito.