Algoritmia y programación básica

From Wikiversidad
Jump to navigation Jump to search

Bienvenidos al proyecto de aprendizaje sobre algoritmia y programación básica.

Especificaciones Curriculares[edit]

  • Pre-requisitos: Ninguno.
  • Post-requisito: Arquitectura del Computador, Base de Datos, Cálculo Computacional y Sistemas Operativos.

Objetivo Terminal[edit]

Se espera que, al finalizar, el estudiante esté en capacidad de:

  • Desarrollar algoritmos de mediana complejidad, utilizando herramientas algorítmicas de alto nivel y estructuras de datos estáticas, y posteriormente implementables a través de lenguajes de programación de alto nivel, para la resolución de problemas computacionales científicos y de la vida real. (hasta el Contenido Sinóptico de Tipos de Datos Abstractos)
  • Construir programas que se ajusten a los estándares de calidad requeridos en la actualidad.
  • Utilizar eficientemente las herramientas y técnicas para comparar soluciones algorítmicas en términos de tiempo de ejecución y cantidad de almacenamiento requerido.
  • Comprender los aspectos de la programación orientada a objetos.
  • Definir y modelar clases utilizando la notación UML.

Contenido Sinóptico[edit]

Aspectos introductorios

Computación (Definición) Reseña Histórica de la Computación, Perfil de algunas Profesiones en Computación, Computador (Definición), Organización Básica de un Computador, Sistemas de Cómputo, Evolución Histórica del Computador, Sistemas Operativos, Datos, Algoritmo, Características de un Algoritmo, Programa, Lenguaje de Programación, Compilador, Intérprete, Ensamblador, Proceso, Multiprogramación, Grado de Multiprogramación y Paradigmas de Programación.

Tipos de datos

Tipos de Datos (Concepto). Clasificación de los Tipos de Datos. Tipos de Datos Primitivos. Tipos de Datos Definidos por el Usuario. Tipo Intervalo. Definición de Operador. Operaciones. Tipos de Operadores. Precedencia de Operadores.

Constantes, variables, operadores y expresiones

Identificador, Variable, Constante, Expresión.

Construcción de algoritmos

Estructura de un Algoritmo. Notación Algorítmica. Acciones Algorítmicas Básicas. Acciones de Entrada/Salida.

Tipos estructurados

Definición de Tipos Estructurados. Declaración de Tipos Estructurados. Cadenas. Arreglos. Registros. Operaciones.

Acciones nominadas

Conceptos Básicos. Variables locales y globales. Ámbito de las variables. Funciones y procedimientos. Parámetros. Tipos de parámetros. Paso de parámetros.

Recursividad

Definición recursiva. Clasificación de la recursión. Estructura o patrón de un proceso recursivo. Análisis recurrente para la solución de problemas mediante la recursión. Seguimiento de la recursión. Eficiencia de la recursión. Problemas clásicos de recursión.

Backtraking

Introducción. Esquemas de Backtracking. Solución de problemas utilizando la técnica de Backtracking.

Análisis asintótico

Análisis asintótico de algoritmos. Notaciones asintóticas. Análisis de complejidad en tiempo de algoritmos iterativos. Análisis de complejidad en tiempo de algoritmos recursivos. Análisis de complejidad en espacio de algoritmos.

Estudio de algoritmos de búsqueda y ordenamiento

Introducción y marco conceptual. Búsqueda: Búsqueda Secuencial. Búsqueda Binaria. Ordenamiento: Algoritmos de ordenamiento interno. Algoritmos de ordenamiento externo.

Tipos de datos abstractos (TDA)

Definición y conceptos básicos. Especificación Operacional de un TDA. Diseño de un TDA. Estructuras lineales: Listas, pilas y colas. Implementación de un TDA.

Apuntadores

Tipo de Dato Apuntador. Operaciones con apuntadores. Manejo de memoria dinámica con apuntadores. Aplicación de los apuntadores.

Programación orientada a objetos

Evolución. Objetos y Clases. Abstracción. Encapsulamiento. Herencia. Métodos y Atributos. Aplicaciones. Relaciones entre clases: dependencia, agregación, herencia. Jerarquía de Clases. Polimorfismo.

Estructuras lineales: listas, pilas y colas

Definición. Conceptos básicos. Propiedades. Definición de Lista, Pila y Cola. Implementación Dinámica de las clases Lista, Pila y Cola.una pila es un método de estructuración de datos usando la forma LIFO (último en entrar, primero en salir), que permite almacenar y recuperar datos.

Estructuras multienlazadas: Matrices esparcidas y grafos dirigidos

Definición de Matriz Esparcida (Mat_Esp). Implementación de la clase Mat_Esp. Definición de Grafo. Implementación de la clase Grafo.

Estructuras jerárquicas: árboles

Árboles N-arios. Árboles binarios. Algoritmos de recorrido de árboles. Árboles de sintaxis. Árboles binarios de búsqueda. Árboles binarios balanceados. Árboles B.

Estructuras de acceso directo: Tablas de Hash

Hashing: Definición y conceptos básicos. Funciones de hashing. Colisiones. Tablas de hash.

Ver también[edit]

Enlaces externos[edit]