Resolución de Problemas y Algoritmos 2023 (RPA23)

Objetivos de la materia

Desarrollar en el alumno la capacidad de resolver problemas de complejidad simple a partir del planteo del algoritmo correspondiente. Esto incluye la adquisición de habilidad en la detección de una situación de problema y en el planteo de los posibles caminos de solución mediante las técnicas generales de resolución de problemas; y su solución en un lenguaje de diseño de algoritmos orientado a un paradigma procedural.

Además se pretende que el alumno adquiera conceptos y terminología básicos del paradigma procedural y que desarrolle los conocimientos necesarios que serán básicos en asignaturas posteriores

Contenidos Mínimos

Problemas, modelos y abstracciones. Representación de problemas: gráficos, diagramas, modelos matemáticos, descripción verbal. Búsqueda de soluciones de problemas. Inferencia, analogía, similitud entre problemas, generalización y particularización. Algoritmos: definición, construcción de algoritmos, especificación de algoritmos, programación imperativa.

Unidades Principales

Problemas

Resolución de Problemas y Representaciones

OMI

Comenzaremos la materia resolviendo problemas simples. En primera instancia introducimos vocabulario asociado a la resolución de problemas: enunciado, incógnitas, heurísticas para resolver problemas, etc. Distinguiremos distintos tipos de problemas, y conoceremos las etapas del método de Polya para resolver problemas: Comprender el problema, Trazar un plan, Ejecutar el plan y Visión Retrospectiva. Utilizaremos una plantilla para resolver problemas que nos permitirá mostrar la resolución paso a paso de los problemas. Finalmente veremos distintas representaciones para resolver problemas. Leer más →

1

Estrategias

Estrategias para Resolver Problemas

Estadísticas

En esta unidad veremos diferentes estrategias para resolver problemas… Leer más →

2

Algoritmos

Algoritmos y Estructura de Control Secuencial

OMI

Un algoritmo es una secuencia de primitivas precisas (no ambiguas) para resolver una clase de problemas. Los algoritmos se especifican en primera instancia utilizando pseudocódigo para luego ser implementados en un lenguaje de programación. Nuestros primeros algoritmos harán uso de los constructores primarios de la estructura de control secuencial: definición de comentarios, definición de variables con sus tipos de datos, asignaciones, expresiones, bloques de instrucciones. Todos estos conceptos primero se abordarán a nivel teórico y conceptual para luego abordar su implementación en Java.
Leer más →

3

Alternativas

Estructura de Control Alternativa

Normativa

En esta unidad se desarrolla la estructura de control alternativa. Se explica como construir una expresion booleana (o condición) de la estructura alternativa, utilizando operadores lógicos o booleanos, de comparación, etc. Se explican estructuras de control alternativa simples y dobles. Una estructura alternativa simple permite ejecutar un bloque de sentencias en caso de que la expresión booleana sea verdadera; en cambio una alternativa doble permite ejecutar distintos bloques de sentencias dependiendo si la condición es verdadera o falsa. Tambien se detalla como construir estructuras alternativas selectivas o múltiples. Finalmente estudia como combinarlas, secuenciarlas y elegir la correcta estructura a nivel de diseño. Leer más →

4

Repetitivas

Estructura de Control Repetitiva

QA

La esctructura de control repetitiva es quizás la estructura de control más interesante de la materia. Esta estructura se estudia en esta unidad, la cual permite repetir un conjunto de primitivas o instrucciones. La cantidad de veces de la repetición puede ser una cantidad determinada o indeterminada. Algunas estructuras repetitivas permiten repetir cero o más veces un conjunto de primitivas (Estructura repetitiva MIENTRAS), otras permiten repetir una o más veces un conjunto de instrucciones (Estructura Repetitiva REPETIR HASTA). Otra estructura repetitiva (REPETIR PARA) permite repetir una cantidad predefinida de repeticiones. Se explica cuando es necesario secuenciar estas estructuras y cuando combinarlas. Leer más →

5

Modularización

Descomposición de Problemas en Módulos

Metodos

La modularización permite construir distintos algoritmos donde cada algoritmo alcanza un objetivo específico. Y la interacción entre diferentes algoritmos permite alcanzar un objetivo mayor. Modularizar implica aplicar una heurística de diseño que incluye descomposición y reconstrucción. En esta unidad se estudia como alcanzar dicha descomposición a partir de parámetros actuales y formales y valores de retorno. Se analizan tres importantes caracteristicas de la correspondencia entre parámetros formales y actuales (cantidad de parámetros, orden de los parámetros y compatibilidad de tipos de parámetros). Leer más →

6