UNIDAD 1 Introducción a los Algoritmos y Estructuras de Datos. 1.1 Definición de Algoritmo
|
|
- Beatriz Tebar Zúñiga
- hace 7 años
- Vistas:
Transcripción
1 UNIDAD 1 Introducción a los Algoritmos y Estructuras de Datos 1.1 Definición de Algoritmo Algoritmo se define como un conjunto de instrucciones que la computadora debe seguir para resolver un problema. La palabra algoritmo se deriva de la traducción al latín del nombre Muhammad Musa Alkhawarizmi, un matemático y astrónomo árabe que en el siglo IX escribió un tratado sobre manipulación de números y ecuaciones Características de los Algoritmos Son independientes del lenguaje de programacióna utilizar. Sencillo, los pasos deben ser claros y bien definidos. Precisos, indican claramente el orden de realización paso a paso. Definidos, cada vez que se ejecutan con las mismas entradas se obtiene el mismo resultado. Finitos, tienen un número de pasos finito. 1.2 Modelo de Cascada para el desarrollo de Sistemas La resolución de un problema con una computadora conduce a la escritura de un programa y a su ejecución en la misma. Aunque el proceso de diseñar programas es un proceso creativo, los pasos a seguir se establecen en varios modelos para el desarrollo de sistemas uno de ellos es el modelo de cascada. Este se define como el proceso que se sigue para diseñar, construir, entregar y hacer evolucionar el software, desde la concepción de una idea hasta la entrega y el retiro del sistema 1. Análisis del Problema Diseño del algoritmo Codificación Compilación y Ejecución Depuración Documentación Entrega y Mantenimiento Paso 1: Análisis del problema. Esta fase requiere una clara definición, donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada.. Para poder definir bien un problema es conveniente responder a las preguntas: Qué cantidad y tipo de datos de entrada se requieren?, Qué cantidad y tipo de salidas se desean? Qué método(s) produce(n) la salida deseada? Paso 2. Diseño del Algoritmo. En esta etapa se define cómo hace el programa la tarea solicitada, es decir, se define el algoritmo. Paso 3. Codificación. Se traduce el algoritmo en un lenguaje de programación apropiado. Paso 4. Compilación y Ejecución. El proceso de compilación consiste en pasar el programa de código fuente a un código ejecutable. La ejecución es correr el programa generado en el proceso de compilación. Paso 5. Depuración. Se ejecuta el programa con datos de prueba para detectar y corregir errores en tiempo de ejecución. Paso 6. Documentación. Interna: Comentarios dentro del programa. Externa: Manuales del programador, del usuario, de instalación, etc. Paso 7. Entrega y Mantenimiento 1 Ing. Alma Leticia Palacios Guerrero pág. 1 de 8
2 1.3 Estrategias para la solución de problemas Cuando se trata de resolver un problema, pueden presentarse varias estrategias para solucionarlo 2. Las técnicas o estrategias más comunes son: Estrategias de solución directa Algoritmos de Solución Forzada: Un algoritmo de este tipo resuelve el problema de la forma mas simple, obvia o directa. Como resultado es posible que el algoritmo haga mas trabajo que una solucióm más sofisticada. Por otra parte, las soluciones forzadas son más fáciles de implementar y por eso algunas veces resultan más eficientes. Algoritmos Codiciosos: Se caracterizan las decisiones que toman se basan en que la busqueda del menor costo en esa parte del problema, pero no toman en cuenta el resto de la solución y en ocasiones no generan soluciones óptimas. Estrategias de Vuelta Atrás Un algoritmo de vuelta atrás, sistemáticamente considera todos los posibles resultados para cada decisión. En este sentido, los algoritmos vuelta atrás son como las soluciones forzadas. Sin embargo, los algoritmos vuelta atrás se distinguen por la forma en que exploran todas las posibles soluciones; en ocasiones estos algoritmos encuentrar que una búsqueda exhaustiva es innecesaria y por lo tanto pueden tener una mejor ejecución. Estrategias arriba-abajo Algoritmos divide y vencerás. Para resolver un problema, este se subdivide en uno o más subproblemas cada uno de los cuales es similar al problema dado. Cada uno de los subproblemas se soluciona en forma independiente y al final las soluciones de todos los subproblemas se combinan para obtener la solución general del problema completo. Estrategias abajo-arriba Programación Dinámica: Para resolver un problema se resuelven una serie de subproblemas. La serie de subproblemas es planeada cuidadosamente de tal forma que cada solución subsecuente se obtiene mediante la combinación de las soluciones de uno o más subproblemas que ya han sido resueltos. Todos las soluciones intermedias se mantienen en una tabla para evitar la duplicidad de esfuerzos. Estrategias Probabilísticas: En los algoritmos probabilísticos existe un elemento de aleatoridad en la forma en que el algoritmo soluciona el problema, se dice que estos métodos son el último recurso debido a que se usan cuando no hay otra técnica conocida que se pueda aplicar. Los métodos probabilísticos se usan cuando el espacio de soluciones es tan grande que una búsqueda exhaustiva no seria factible. Ing. Alma Leticia Palacios Guerrero pág. 2 de 8
3 1.4 Definición de Estructura de Datos. En el desarrollo de programas, existe una fase previa a la escritura del programa, esta es el diseño del algoritmo que conducirá a la solución del problema, en esta fase también deberá considerarse la estructura de datos que se va a utilizar. El término estructura de datos se refiere a la forma en que la información esta organizada dentro de un programa. La correcta organización de datos puede conducir a algoritmos más simples y más eficientes. Estructura de datos: Conjunto de variables agrupadas y organizadas de cierta forma para representar un comportamiento Clasificación de las estructuras de datos Las estructuras de datos según su tamaño en memoria, se clasifican en: Estructuras de datos estáticas: Son aquellas cuyo tamaño en memoria es fijo, por ejemplo, los arreglos. Estructuras de datos dinámicas: Son las estructuras que permiten variar su tamaño en memoria de acuerdo a las necesidades del ambiente, por ejemplo, listas enlazadas Abstracción Desde el desarrollo de la informática los programadores han luchado con el problema de la complejidad inherente al software, una de las herramientas utilizadas para resolverlo es la abstracción. Esta se puede definir como la consideración aislada de las cualidades esenciales de un objeto. En otro términos la abstracción es la capacidad para encapsular y aislar la información del diseño y ejecución Tipo Abstracto de Datos (TAD) Un tipo abstracto de datos es un modelo (estructura) con un número de operaciones que afectan a ese modelo. Un TAD es un tipo de datos definido por el programador que se puede manipular de un modo similar a los tipos de datos definidos por el sistema Desarrollo de la Abstracción Al inicio de la informática los programadores introducían la información y datos a través de interruptores, los mnemónicos eran abstracciones diseñadas para ayudar a recordar secuencias de bits, luego, esto mnemónicos se agruparon en macroinstrucciones pasando así al siguiente nivel de abstracción: los lenguajes de alto nivel. Los inicios de la abstracción se dieron al surgir lenguajes como FORTRAN, COBOL y ALGOL60, los cuales suministraban tipos de datos simples; sin embargo, estos datos no siempre se ajustaban al tipo requerido para resolver el problema y no podian sufrir cambios. Posteriormente surgen lenguajes como Pascal, Simula-67 y ALGOL68 en los que existian más tipos de datos y que permitian al programador crear construcciones (arreglos, registros). Con el tiempo aparecieron otros lenguajes de programación con mayor nivel de abstracción que permitieron al programador la creación de estructuras de datos. Hacia 1974, John Guttag propone el concepto de tipo abstracto de datos, el cual constituye el máximo nivel de abstracción. Ing. Alma Leticia Palacios Guerrero pág. 3 de 8
4 Niveles de Abstracción Tipos Abstractos de Datos Nivel 3:Tipos de Datos creados por el programador para resolver un problema específico Estructuras de Datos Tipos de Datos virtuales (en software) Nivel 1 Tipos de datos proporcionados por un lenguaje de alto nivel. Tipos de Datos Primitivos Nivel 0: Los datos tal como son representados en la computadora (bits) Diferencia entre Estructura de Datos y Tipo Abstracto de Datos. En los lenguajes como Pascal y C, es posible crear una estructura y funciones para realizar operaciones sobre dicha estructura, pero no es posible asociar la estructura y las funciones como una unidad, o sea no es posible asociarlos como un TAD. Dependiendo del lenguaje en que el TAD se esté implementando recibe un nombre diferente, por ejemplo, en Java y C++ a un TAD se le conoce como clase mientras que en Pascal es una unidad y en ADA es un paquete Ventajas de los TAD Mejora la representación de la realidad. Mejora la robustez del sistema ya que permite comprobar tipos para evitar errores de tipo en tiempo de ejecución. El conocimiento de los objetos permite optimización de tiempo de compilación. Separa la implementación de la especificación, permitiendo así modificar y mejorar la implementación sin afectar al interfaz público del tipo abstracto de datos. 1.5 Aplicaciones de los algoritmos y estructuras de datos En una primera impresión, podria considerarse que los algoritmos y estructuras de datos no tienen una aplicación práctica. Sin embargo, su conocimiento y correcta aplicación permiten desarrollar programas con mejor aprovechamiento de los recursos del sistema, más rápidos, eficientes, robustos y con una mayor tolerancia a errores Aplicaciones de las Estructuras de datos Los árboles son una estructura de datos fundamental en computación. Por ejemplo, casi todos los sistemas operativos almacenan los archivos en estructuras que son árboles. Una de las aplicaciones más comunes de los grafos es su implementación para encontrar la distancia más corta entre dos puntos; en la vida diaria los encontramos aplicados en rutas áereas, semáforos, redes de computadoras, rompecabezas, inteligencia artificial, etc. Las listas se aplican en la representación de polinomios, resolución de colisiones (hash). Ing. Alma Leticia Palacios Guerrero pág. 4 de 8
5 Las pilas, este tipo de estructura se emplea en forma interna en la computadora para almacenar el estado de los registros cuando se ejecuta un brinco en la ejecución de un programa, también se usan en los compiladores para implementar el analizador sintáctico. Las Colas es la estructura de datos que se usa en algunos sistemas operativos, por ejemplo, UNIX para la administración de procesos y trabajos de impresión Aplicaciones de los Algoritmos. Los algoritmos tienen innumerables aplicaciones, entre estas podemos mencionar algoritmos para la ruta más corta entre dos estaciones del metro, algoritmos para procesamiento de cadenas en analizadores léxicos, algoritmos criptográficos, algoritmos para compresión de datos, algoritmo genéticos, etc. 1.6 Importancia de la investigación de algoritmos De acuerdo a John Bentley, de 1945 a 1985 la velocidad del hardware de supercómputo se incrementó en un factor de 6x10 5 mientras que las mejoras de los algoritmos para problemas, por ejemplo los cálculos en tres dimensiones han sido reducido en un factor de N 4 /60. Para N=64 fue cerca de 3x10 5. De esta forma vemos que las mejoras algorítmicas han tenido tanto impacto en los cálculos científicos como los avances logrados en hardware. En el período la computadora aumenta su velocidad en un orden de 1.5 cada década, en cambio, los avances logrados en el campo de los algoritmos, permiten la solución de problemas de tamaño 200 y hasta 820 veces mayor, respectivamente el equivalente a 15 y 20 años de avance en el hardware. Desde el punto de vista de la duración de su impacto, los nuevos microprocesadores se vuelven obsoletos en 2 a 4 años, mientras que los avances en los algoritmos permanecen por décadas. 1.7 Comparación entre velocidad de ejecución y eficiencia del algoritmo Suponga que para un cierto problema se han desarrollado los algoritmos A y B, cuyo tiempo de ejecución esta dado por las siguientes funciones: T A (n)=100*n T B =2*n 2 Cuál es más eficiente? Si n<100 B, es más eficiente Si n>=50 A es mucho más eficiente. n=10 n=50 n=100 n=1000 T A (n)=100*n T B (n)=2*n² Factor B/A Tabla 1.1 Ing. Alma Leticia Palacios Guerrero pág. 5 de 8
6 Las siguientes tablas demuestran por qué es mejor tener un algoritmo eficiente que una máquina veloz. Suponga que la primera columna son funciones del tiempo de ejecución de 4 algoritmos diferentes, ejecutados todos en la misma máquina. La segunda y tercer columna muestran la cantidad de elementos que cada algoritmo alcanzaría a procesar en 1000 y unidades de tiempo. Tiempo de Ejecución T(n) n para 1000 n para Factor unidades de tiempo unidades de tiempo 100n n n 3 / n Tabla 1.2 En la siguiente tabla suponga que un algoritmo toma exactamente T(n) microsegundos para completar los algoritmos de la primera columna. Tiempo de Ejecución T(n) n=16 n=256 log 2 n 4µs 8µs n 16µs 256µs n µs 65.5ms 2 n 65.5ms años Tabla 1.3 La tabla 1.4 muestra el tiempo que tardaría el algoritmo con tiempo de ejecución T(n)=2 n en una máquina con una velocidad de para diferentes valores de n. N T(n)= 0.001*2 n seg. minutos horas dias años Tabla 1.4 Ahora ejecutando el mismo algoritmo en una máquina más rápida. N T(n)= *2 n Seg minutos horas dias años Tabla 1.5 Ing. Alma Leticia Palacios Guerrero pág. 6 de 8
7 Finalmente si se cambia de algoritmo y se ejecuta en una máquina con una velocidad de N T(n)= 0.001*n 3 Seg. minutos horas dias Tabla 1.6 n Cray-1 Fortran 1 Tandy Corporation 2 3n 3 nanosegundos n nanosegundos 10 3µseg 0.2 seg 100 3mseg 2.0 seg seg 20 seg seg 50.0 seg min 3.2 min 1,000, años 5.4 horas Tabla Cray Research Inc. 2. Tandy Corporation. Ing. Alma Leticia Palacios Guerrero pág. 7 de 8
8 Referencias Tabla 1.7 Tomada del libro Programming Pearls por Jon Bentley ed Ing. Alma Leticia Palacios Guerrero pág. 8 de 8
Tema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Más detallesMétodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
Más detallesAlgoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal
Algoritmos y solución de problemas Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Introducción Departamento de Electrónica, Sistemas e Informática En las ciencias de la computación
Más detallesTema II: Metodología para la construcción de programas. Profesora: Nelly García Mora
Tema II: Metodología para la construcción de programas Profesora: Nelly García Mora 1. Metodologías de Programación Metodología de programación: es un conjunto o sistema de métodos, principios y reglas,
Más detallesTema II: Metodología para la construcción de programas
Tema II: Metodología para la construcción de programas Semestre: A-2012 Profesora: Nelly García Mora Agenda 1. Definición 2. Análisis E P S 3. Construcción de Algoritmos 4. Diagramas de Flujo 5. Codificación
Más detallesUnidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas
Unidad I Introducción a la programación de Sistemas M.C. Juan Carlos Olivares Rojas Agenda 1.1 Qué es y que estudia la programación de sistemas? 1.2 Herramientas desarrolladas con la teoría de programación
Más detallesIntroducción a la programación
Introducción a la programación Conceptos Básicos El objetivo fundamental de éste curso es enseñar a resolver problemas mediante una computadora. El programador de computadoras es antes que nada una persona
Más detallesTema 2 Conceptos básicos de programación. Fundamentos de Informática
Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis
Más detallesLÓGICA DE PROGRAMACIÓN
LÓGICA DE PROGRAMACIÓN Lógica de la Programación Lenguajes de Programación Ing CIP. Mike Joseph Palacios Juárez Clasificación del Software Sistemas Operativos 1. Multitarea 2. Multiusuario 3. Multiproceso
Más detallesAdministración Informática. Unidad I. Tipos de sistemas y su clasificación A) Sistemas de información.
UNIVERSIDAD NACIONALDE INGENIERÁ UNI NORTE SEDE REGIONAL EN ETELI Ing. Mario Pastrana Moreno. Unidad I. Tipos de sistemas y su clasificación 10-09-2010 Administración Informática A) Sistemas de información.
Más detallesINDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación
INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.
Más detallesQué es un programa informático?
Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s
Más detallesComplejidad de los Algoritmos
Que es un Algoritmo? Complejidad de los Algoritmos Webster: cualquier método especial para resolver cierta clase de problemas. Horowitz: método preciso utilizable en una computadora para la solución de
Más detallesComputadora y Sistema Operativo
Computadora y Sistema Operativo Según la RAE (Real Academia de la lengua española), una computadora es una máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos
Más detallesDiseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA
Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema
Más detalles2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.
Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe
Más detallesSistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria
1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo
Más detallesTEMA 3: El proceso de compilación, del código fuente al código máquina
TEMA 3: El proceso de compilación, del código fuente al código máquina 3.1 Fase de compilación y linkado (link, montado o enlace) Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado
Más detallesNombre de la asignatura: Diseño Estructurado de Algoritmos. Carrera: Ingeniería en Sistemas Computacionales. Clave de la asignatura: SCB-9316
. D A T O S D E L A A S I G N A T U R A Nombre de la asignatura: Diseño Estructurado de Algoritmos Carrera: Ingeniería en Sistemas Computacionales Clave de la asignatura: SCB-9 Horas teoría Horas práctica
Más detallesINICIACIÓN A LA PROGRAMACIÓN 1ª parte
TEMA 4 INICIACIÓN A LA PROGRAMACIÓN 1ª parte Qué es la programación? La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. En la actualidad,
Más detalles1. Computadores y programación
1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la
Más detallesBreve introducción a la Investigación de Operaciones
Breve introducción a la Investigación de Operaciones Un poco de Historia Se inicia desde la revolución industrial, usualmente se dice que fue a partir de la segunda Guerra Mundial. La investigación de
Más detallesPROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY
PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY ALGORITMO DEFINICIÓN: CONSISTE EN LA DESCRIPCIÓN CLARA Y DETALLADA DEL PROCEDIMIENTO A SEGUIR PARA ALCANZAR LA SOLUCIÓN A UN PROBLEMA EN DONDE SE ESTABLECE
Más detallesTema V Generación de Código
Tema V Generación de Código Una vez que se ha realizado la partición HW/SW y conocemos las operaciones que se van a implementar por hardware y software, debemos abordar el proceso de estas implementaciones.
Más detallesTécnicas de Programación
Técnicas de Programación 2.1.- Introducción: unos conceptos previos y primeros conceptos de la API Introducción La resolución de un problema con medios informáticos implica generalmente la siguiente secuencia
Más detallesNombre de la asignatura: Algoritmos y Lenguajes de programación.
Nombre de la asignatura: Algoritmos y Lenguajes de programación. Créditos: 2-4- 6 Aportación al perfil Dominar la lógica necesaria para aprender lenguajes de programación de alto nivel para poder resolver
Más detallesSoftware de Gestión y Programación
Equipo Nro: 5 Integrantes: Rocio, Torrealba Julebel, Dávila Aida, Conde Josing, Sanchez Presentación Software de Gestión: - Concepto y Clasificación Integración del Software: - Definición, Aplicación en
Más detallesC a l ses P P y y NP C a l se P C a l se N P N P [No N n o -De D te t rmin i i n s i ti t c i Polynomial-tim i e]
Análisis y Diseño de Algoritmos Introducción Análisis y Diseño de Algoritmos Concepto de algoritmo Resolución de problemas Clasificación de problemas Algorítmica Análisis de la eficiencia de los algoritmos
Más detallesEjemplo, generación de #s aleatorios
Ejemplo, generación de #s aleatorios Supón que tienes un generador de números aleatorios enteros [0,2] con distribución uniforme, y tu necesitas generar números con distribución uniforme [0,4]. Alguien
Más detallesGuía práctica de estudio 03: Algoritmos
Guía práctica de estudio 03: Algoritmos Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 03: Algoritmos Objetivo:
Más detallesINTERFACES INTELIGENTES. ING. MA. MARGARITA LABASTIDA ROLDÁN E mail:
INTERFACES INTELIGENTES ING. MA. MARGARITA LABASTIDA ROLDÁN E mail: magielr@gmail.com GENERALIDADES DE LAS INTERFACES INTERFAZ DE USUARIO: Es el dispositivo por medio del cual un usuario realiza la comunicación
Más detallesLa resolución de un problema
CAP. 2. ALGORITMOS Y PROGRAMAS 2.1. Solución de problemas por computadora La resolución de problemas por computadora, es importante para que las personas o usuarios aprendan a programar de manera general,
Más detallesExisten diferentes recursos interactivos que han sido utilizados para la enseñanza
Capítulo 3. Diseño Existen diferentes recursos interactivos que han sido utilizados para la enseñanza del idioma inglés y la materia de interacción y colaboración. En la actualidad se trata de ampliar
Más detallesUniversidad Autónoma Metropolitana Unidad Azcapotzalco. División de Ciencias Básicas e Ingeniería. Licenciatura en Ingeniería en Computación
Universidad Autónoma Metropolitana Unidad Azcapotzalco División de Ciencias Básicas e Ingeniería Licenciatura en Ingeniería en Computación Propuesta de Proyecto Terminal Clasificación de servicios web
Más detallesNombre de la asignatura : Administración de Archivos. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB-9323
. D A T O S D E L A A S I G N A T U R A Nombre de la asignatura : Administración de Archivos Carrera : Ingeniería en Sistemas Computacionales Clave de la asignatura : SCB-9 Horas teoría-horas práctica-créditos
Más detallesIntroducción a la programación
Introducción a la programación Resolución de Problemas El objetivo principal para que las personas aprendan a programar en algún lenguaje de programación en particular es utilizar el computador como una
Más detallesNombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje
Nombre de la asignatura: Programación Básica Créditos: 2 4-6 Objetivo de aprendizaje Plantear metodológicamente la solución de problemas susceptibles de ser computarizados a través del manejo de técnicas
Más detallesSISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Más detallesToda copia en PAPEL es un "Documento No Controlado" a excepción del original.
S U P E RIO R DE MISANTLA Apartado: 7.1 Copia No. Código:PD-SCD-1016 Versión No.: 02 Hoja : 2 de 12 4.- COMPETENCIAS A DESARROLLAR 4.1 Competencias Específicas: Diseña mediante el uso de reglas semánticas
Más detallesLenguaje de programación. COMPILADORES Unidad I: Introducción al proceso de compilación
COMPILADORES Unidad I: Introducción al proceso de compilación Flor Prof. Flor Narciso GIDyC-Departamento de Computación LABSIULA-Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de
Más detallesM. C. Felipe Santiago Espinosa
M. C. Felipe Santiago Espinosa Junio de 2008 Un sistema empotrado es un procesador, con sus elementos externos que desarrolla una función especifica de manera autónoma. Un sistema empotrado es un sistema
Más detallesESTRUCTURAS ALGORITMICAS
ESTRUCTURAS ALGORITMICAS El proceso de resolución de problemas en un ordenador conduce a la escritura de un programa y su ejecución. Las fases en el desarrollo de un programa pueden resumirse de la siguiente
Más detallesGestion y Modelación de Datos Introducción
Gestion y Modelación de Datos Introducción Julio de 2011 Contenido Gestión y Modelación de Datos Descripción del Curso Bases de Datos Definición - Funcionalidades Modelos de Datos DDLs, DMLs Descripción
Más detallesLenguaje de Programación
Introducción a C/C++() UG Introducción a C/C++() Universidad de Guanajuato Sesión 18 Introducción a C/C++() Qué es un? Un entorno de desarrollo integrado o (acrónimo en inglés de integrated development
Más detallesACTIVIDAD: Control de Lectura # 1: Benchmarking para Competir con Ventaja Por: Roberto J. Boxwell. MATERIA: Ingeniería de Software.
UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA ESCUELA DE COMPUTACION CICLO II/2008 ACTIVIDAD: Control de Lectura # 1: Benchmarking para Competir con Ventaja Por: Roberto J. Boxwell MATERIA: Ingeniería de
Más detallesDiseño y Desarrollo Web. Espinola Raul 2008 basado en una Presentación de G. Gaona.
Diseño y Desarrollo Web Espinola Raul 2008 basado en una Presentación de G. Gaona. Contenido Conceptos Básicos Páginas Web Diseño de Interfaces Ejemplos Errores Introduccion Qué es la Web? World Wide Web
Más detallesPROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS PROGRAMA DE LABORATORIO CÓDIGO: 777 CRÉDITOS: 4 NOMBRE CURSO: ESCUELA: PRE-REQUISITO: Organización de Lenguajes y Compiladores
Más detalles4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC:
4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC: A continuación se muestran los objetivos así como los mapas funcionales según la línea de acentuación y la línea
Más detallesMetodología para la solución de problemas programables
Metodología para la solución de problemas programables Nosotros efectuamos día a día una serie de pasos, acciones y procedimientos para solucionar problema y esto es de forma natural y casi inconscientemente
Más detallesAgradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Más detalles: Algorítmica y Estructura de Datos I
FACULTAD POLITÉCNICA DIRECCIÓN ACADÉMICA PROGRAMA DE ESTUDIO I. IDENTIFICACIÓN Carrera : Ingeniería de Sistemas CARGA HORARIA (Horas reloj) Asignatura : Algorítmica y Estructura de Datos I Carga Horaria
Más detallesLa última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.
Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la
Más detallesProgramación en java. Estructuras algorítmicas
Programación en java Estructuras algorítmicas Estructuras algoritmicas 1. Conceptos basicos 1. Dato 2. Tipos de datos 3. Operadores 2. dsd Conceptos Basicos DATO: se considera una representación simbólica
Más detallesTema III: Introducción al lenguaje de programación
Tema III: Introducción al lenguaje de programación Semestre: U-2014 Profesora: Nelly García Mora Agenda 1. Definición 2. Programación estructurada 3. Programación Modular 4. Tipos de lenguaje de Programación
Más detallesConstrucción de tablas de análisis sintáctico LL(1)
Construcción de tablas de análisis sintáctico LL(1) Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática Diego Centeno Gerardo Cortés Juan Diego Alfaro Resumen. A la medida en
Más detallesLenguajes de programación Última modificación 2008/10
Lenguajes de programación Última modificación 2008/10 La Torre de Babel (1563) - Pieter Brueghel el Viejo 2008 Güimi (http://guimi.net) Esta obra está bajo una licencia "Reconocimiento-Compartir bajo la
Más detallesUnidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas
Unidad V Análisis Semántico M.C. Juan Carlos Olivares Rojas Agenda 5.1 Analizador semántico 5.2 Verificación de tipos en expresiones. 5.3 Conversión de tipos. 5.4 Acciones agregadas en un analizador sintáctico
Más detallesTEMA 7: INGENIERIA DEL SOFTWARE.
TEMA 7: INGENIERIA DEL SOFTWARE. 7.1. Definición de software 7.2. Características del software 7.3. Componentes del software 7.4. Ciclo de vida 7.4.1. Análisis de requisitos 7.4.2. Diseño 7.4.3. Implementación
Más detallesUNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD DE CIENCIAS PROGRAMA DE MATEMÁTICAS PLAN DE ESTUDIOS
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD DE CIENCIAS PROGRAMA DE MATEMÁTICAS PLAN DE ESTUDIOS ASIGNATURA : ELECTIVA I - PROGRAMACION CÓDIGO : 8104661 SEMESTRE : IV CRÉDITOS : 4 FECHA DE
Más detallesCAPITULO 1 INTRODUCCION AL PROYECTO
CAPITULO 1 INTRODUCCION AL PROYECTO 1 INTRODUCCION AL PROYECTO 1.1 Marco Teórico Los procesadores digitales de señales ganaron popularidad en los años sesentas con la introducción de la tecnología de estado
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo Qué es una computadora? Una computadora es una máquina digital y sincrónica con capacidad de cálculo numérico y lógico controlada
Más detallesTEMA 1: SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES EN INGENIERÍA QUÍMICA. CLASIFICACIÓN. GENERALIDADES.
TEMA 1: SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES EN INGENIERÍA QUÍMICA. CLASIFICACIÓN. GENERALIDADES. 1. INTRODUCCIÓN. PLANTEAMIENTO DE PROBLEMAS EN INGENIERÍA QUÍMICA 2. PROBLEMAS EXPRESADOS MEDIANTE
Más detallesDIPLOMADO. Evaluación de la Calidad de la práctica docente para la implementación del Nuevo Modelo Educativo en Escuelas de Ingeniería del I.P.N.
DIPLOMADO Evaluación de la Calidad de la práctica docente para la implementación del Nuevo Modelo Educativo en Escuelas de Ingeniería del I.P.N. Trabajo Final Propuesta Metodológica del área de Ciencias
Más detallesDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos 1 Sesión No. 11 Nombre: Estructuras algorítmicas. Tercera parte. Objetivo de la sesión: Al concluir la sesión el estudiante aplicará las estructuras algorítmicas repetitivas
Más detallesDefinición Qué es un Robot? Actividad1. Robot
Definición Qué es un Robot? Robot Un robot es una máquina capaz de hacer cosas increibles. Robots o bots son diseñados para realizar tareas de forma autónoma e independiente de ayuda humana. En su corta
Más detallesSERVICIO NACIONAL DE APRENDIZAJE SENA
SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE SISTEMA INTEGRADO DE GESTIÓN Proceso Gestión de la Formación Profesional Integral Procedimiento Ejecución de la Formación Profesional Integral
Más detallesUnidad I: Organización del Computador. Ing. Marglorie Colina
Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar
Más detallesUnidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Más detallesAlgoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira
Informática IV Algoritmos Diagramas de Flujo L. S. C. Heriberto Sánchez Costeira Algoritmos 1 Definición Es una serie finita de pasos o instrucciones que deben seguirse para resolver un problema. Es un
Más detallesF1131 Fundamentos de sistemas operativos 1/12
PROGRAMA DE ESTUDIO Fundamentos de sistemas operativos Programa Educativo: Licenciado en Informática Administrativa Área de Formación : Sustantiva Profesional Horas teóricas: 3 Horas prácticas: 2 Total
Más detallesRequerimientos de Software
Requerimientos de Software Ingeniería de Requerimientos Se define como el proceso de establecer los servicios que el consumidor requiere de un sistema y las restricciones sobre las cuales de funcionar
Más detallesUNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS
UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN MATERIA : ESTRUCTURAS DE DATOS NIVEL : TERCER SEMESTRE FECHA DE ELABORACIÓN: Julio 19, 1999. DURACIÓN:
Más detallesDOCUMENTO DE APOYO PARA PROYECTOS
DOCUMENTO DE APOYO PARA PROYECTOS Los ejemplos que a continuación se encuentran en este documento de apoyo al estudiante, tiene como objetivo dar una serie de ejemplos mínimos de algunas partes de los
Más detallesSERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE
Código: F004-P006- GFPI Nº 23 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE Programa de Formación: Técnico en programación de software Código:228120 Versión: 102 Nombre del Proyecto: SISTEMA DE INFORMACIÓN
Más detalles3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES. ha desarrollado durante los últimos 30 años gracias a los avances tecnológicos de
3 SISTEMAS DE PROCESAMIENTO DIGITAL DE SEÑALES 3.1 Introducción al procesamiento digital de señales Una alternativa para el procesado analógico de señales es el procesado digital. Esta área se ha desarrollado
Más detallesIntroducción a la Operación de Computadoras Personales
Introducción a la Operación de Computadoras Personales Conceptos básicos de computadoras: Software Dr. Diego García Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía
Más detallesde Operaciones Área Académica: Sistemas Computacionales Tema: Tipos de Modelos en Investigación Profesor: I.S.C. Guadalupe Hernández Coca
Área Académica: Sistemas Computacionales Tema: Tipos de Modelos en Investigación de Operaciones Profesor: I.S.C. Guadalupe Hernández Coca Periodo: Julio Diciembre 2011 Keywords: investigation of operations,
Más detalles3. TÉCNICAS DE DISEÑO
3. TÉCNICAS DE DISEÑO 3.1 Top Down También conocida como de arriba-abajo y consiste en establecer una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solución al problema. Consiste
Más detallesFormato para prácticas de laboratorio
PLAN DE CLAVE CARRERA NOMBRE DE LA ASIGNATURA ESTUDIO ASIGNATURA LSC 2009-2 11290 Introducción a la Programación PRÁCTICA No. 2 LABORATORIO DE NOMBRE DE LA PRÁCTICA Licenciado en Sistemas Computacionales
Más detallesSistemas de información Administrativa II
Sistemas de información Administrativa II UNIDAD 1 MSI. José Luis Llamas Cárdenas Ciclo de Vida Proceso de todo sistema de información Sistemas de Información El sistema informativo esta comprendido por
Más detallesUNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO
FACULTAD DE CS. QUIMICAS, FISICAS Y MATEMATICAS I. DATOS GENERALES DEPARTAMENTO ACADEMICO DE INFORMATICA SILABO 1.1 Asignatura : INTRODUCCION A LA INFORMATICA 1.2 Categoría : OE 1.3 Código : IF172AME 1.4
Más detallesOPTIMIZACIÓN DE CÓDIGO
OPTIMIZACIÓN DE CÓDIGO INTRODUCCION La finalidad de la optimización de código es producir un código objeto lo más eficiente posible. En algunos casos también se realiza una optimización del código intermedio.
Más detallesPROGRAMACION CONCURRENTE Y DISTRIBUIDA
PROGRAMACION CONCURRENTE Y DISTRIBUIDA V.2 Redes de Petri: Análisis y validación. J.M. Drake 1 Capacidad de modelado y capacidad de análisis El éxito de un método de modelado es consecuencia de su capacidad
Más detallesActividad de Evaluación Brandon Emmanuelle Cuevas Rangel GPO: 303 Carrera: Informática 3er Semestre Joel Rocha Barocio Cienega de Flores N.L.
Actividad de Evaluación 2.4.1 Brandon Emmanuelle Cuevas Rangel GPO: 303 Carrera: Informática 3er Semestre Joel Rocha Barocio Cienega de Flores N.L. Las técnicas de programación constituyen parte fundamental
Más detallesIngeniería de Requerimientos. requiere de un Sistema de Software.
Ingeniería de uestableciendo lo que el cliente requiere de un Sistema de Software. Ian Sommerville 1995 Ingeniería de Software, 5a. edición Capitulo 4 Diapositiva 1 Objetivos u Introducción a la Noción
Más detallesPROGRAMACIÓN UNIDADES
PROGRAMACIÓN Semestre: Segundo Horas: 90 horas Hrs/sem: 4.5 Créditos: 9 Clave: AI-02 DESCRIPCIÓN DE LA ASIGNATURA Al finalizar el curso el alumno tendrá el conocimiento y la capacidad de implementar programas
Más detallesUsando el Sistema Operativo
Sistemas Operativos Pontificia Universidad Javeriana Enero de 2010 Los sistemas operativos Los sistemas operativos Perspectivas del Computador Concepto general El sistema operativo es parte del software
Más detallesPrograma de Asignatura Programación Visual I
Programa de Asignatura Programación Visual I Managua, Abril, 2013 1. DATOS GENERALES Nombre de la asignatura: Programación Visual I Código: Requisito / Correquisito: Carrera (s): Modalidad: Turno: Semestre:
Más detallesComplejidad computacional (Análisis de Algoritmos)
Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución
Más detallesFundamentos de programación JAVA
Pág. N. 1 Fundamentos de programación JAVA Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-238-7 N. de páginas: 296 Edición: 2. a 2014 Medida:
Más detallesINICIACIÓN A LA PROGRAMACIÓN I
INICIACIÓN A LA PROGRAMACIÓN I ÍNDICE 1. Qué es programar?... 2 2. Programas... 2 3. Los lenguajes de programación... 3 3.1 Clasificación de los lenguajes de programación... 3 3.1.1 Clasificación según
Más detallesTÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Desarrollo de Habilidades De Pensamiento
Más detallesGUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.
1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones
Más detallesUNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA VICERRECTORADO ACADÉMICO COORDINACION DE PRE-GRADO PROYECTO DE CARRERA DE INGENIERIA INDUSTRIAL
VICERRECTORADO ACADÉMICO COORDINACION DE PRE-GRADO PROYECTO DE CARRERA DE INGENIERIA INDUSTRIAL PROGRAMA: PROGRAMACION I CÓDIGO ASIGNATURA: 1215-208 PRE-REQUISITO: 1215-102 SEMESTRE: II (SEGUNDO) UNIDADES
Más detallesObjetos de aprendizaje: Computadora
MOMENTO I. BLOQUE 1. Opera las funciones básicas del sistema operativo y garantiza la seguridad de la información Objetos de aprendizaje: Computadora Lectura 1: La Computadora La computadora es una máquina
Más detallesDES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Semestre: Área en plan de estudios:
UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: 08MSU0017H Clave: 08USU4053W FACULTAD DE INGENIERÍA PROGRAMA DEL CURSO: INGENIERÍA DE SOFTWARE Y COMPUTACIÓN I DES: Programa(s) Educativo(s): Tipo de materia: Clave
Más detallesAlgoritmos y Lenguajes de Programación
Introducción y horario Algoritmos y Lenguajes de Programación 543242-2 mariomedina@udec.cl Código: 543242-2 Carrera: Ing. Civil Electrónica Clases 7 de Marzo a 28 de Junio Horario clases Martes, 9:10 a
Más detallesEl Software. Francisco Ruiz González. Escuela Superior de Informática Ciudad Real Universidad de Castilla-La Mancha.
Investigación n en Informática: El Software Francisco Ruiz González Escuela Superior de Informática Ciudad Real Universidad de Castilla-La Mancha noviembre-2004 Investigación n en Informática: El Software
Más detallesUniversidad Católica de Santiago del Estero Facultad de Matemática Aplicada Carrera de Ingeniería en Electrónica
PLANIFICACIÓN DE CÁTEDRA AÑO: 2006 1. IDENTIFICACION. 1.1.Asignatura: INFORMÁTICA 1.2.Carrera: Ingeniería en Electrónica. 1.3.Régimen: Primer cuatrimestre. 1.4.Promoción: Con examen final. 1.5. Correlativas:
Más detallesSistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav
Sistemas Operativos Dr. Luis Gerardo de la Fraga E-mail: fraga@cs.cinvestav.mx http://cs.cinvestav.mx/~fraga Departamento de Computación Cinvestav 12 de junio de 2015 Dr. Luis Gerardo de la Fraga Cinvestav,
Más detalles