Algoritmos y Programación I

## Contenidos

### **Unidad 1: Introducción a la resolución de problemas**

Hardware. Software. Rol del profesional de la programación. El software como construcción intelectual. Contexto del software. Usuarios. Computadora. Tareas que desarrollan: Almacenamiento, recuperación, operaciones e intercambio. Máquina de Von Neumann. Memorias. Procesador. Dispositivos de comunicación. Resolución de problemas. Soluciones: Analogía, Contraposición, Experimentación. Validación. Comunicación de las soluciones.

### **Unidad 2: Introducción a la Programación con Objetos**

Datos e Información. El lenguaje de la solución. Secuencia de pasos. Algoritmos. Lenguaje de programación: Qué es, Sintaxis, Semántica, Sentencias. Código fuente. Conceptos de Compilador e Intérprete. Definición de Objetos. Tipos de objetos. Primeros pasos. Variables. Componentes: Nombre, Valor, Tipo. Declaración. Asignación. Semántica de la asignación. Métodos: Sintaxis y Semántica.

### **Unidad 3: Algoritmos**

Concepto. Algoritmos vs Recetas. Ejemplos. Características. Definición. Reglas. Variables. Tipo de dato. Ejemplos. Uso de objetos. Métodos de consulta. Sintaxis. Semántica. Parámetros. Sintaxis. Semántica.

### **Unidad 4: Clases**

Concepto. Objetos y clases. Declaración. Inicialización. Construcción. Estructura. Sintaxis.

### **Unidad 5: Lógica**

Concepto. Verdad, Creencia, Justificación. Valores de verdad. Lógica proposicional. Operaciones básicas (AND, OR, XOR, NOT). Proposiciones categóricas. Álgebra de Boole. Leyes de De Morgan. La lógica en un lenguaje de programación. Ejemplos.

### **Unidad 6: Estructuras de Control**

Introducción. Secuencia. Repetición. Condiciones. Ejemplos. Continuidad y ruptura de secuencia. Adyacencia en las sentencias. Proximidad temporal. Condición, estructura Condicional. Iteración indefinida, definida.

### **Unidad 7: Tipos de Variables**

Atributos. Parámetros. Variables locales. Explicación. Ejemplos.

### **Unidad 8: POO**

Modelado de problemas. Objetos. Clasificación. Tipos predefinidos. Tipos personalizados. Relación de uso entre clases. Miembros: Métodos (Consultas y Comandos), Atributos, Constructores.

### **Unidad 9: POO II**

Ocultamiento de la Información. Encapsulamiento.

### **Unidad 10: Programación Orientada al Contrato**

Modularidad. Programación sobre interfaces. Concepto. Comentarios. Métodos y Atributos. Interface e Implementación. Diseño por Contrato. Composición. “this”. Modelo Eiffel. Modelo Java. Rupturas de contrato.

### **Unidad 11: Pruebas**

Calidad. Pruebas: Concepto. Roles para la confección y ejecución de pruebas. Error. Defecto. Falla. Detalle de pruebas. Tipos de pruebas. Conveniencias. JUnit: Historia, usos. Ejemplo.

### **Unidad 12: Desarrollo Guiado por Pruebas (TDD)**

Concepto. Espíritu. Contraposición al paradigma actual. Ejemplo.

### **Unidad 13: Arreglos**

Datos atómicos. Datos estructurados: Calculables, Asociativos. Masividad del término. Arreglos. Definición. Acceso y recorrido.

### **Unidad 14: Arreglos multidimensionales**

Arreglos. Generalización. Regulares. Irregulares. Inicialización. Recorrido.

### **Unidad 15: Memoria**

Tareas. Modelo de Von Neumann. Componentes. Datos. Información. Datos y Programas. Tipos de Memoria. Volátil. No Volátil. Central. Secundaria. Segmentos de Memoria: CS, DS, SS, ES. Memoria dinámica. Asignación. El operador new. Liberación. Garbage Collection. Esquema de Memoria.

## Prácticas

### Guías de Ejercicios

1. Usando Objetos
2. Lógica
3. Estructuras De Control
4. Repaso
5. Construyendo Objetos
6. Pruebas Unitarias
7. Arreglos
8. Arreglos Multidimensionales
9. Referencias
10. Ordenamiento
11. Búsqueda

## Parciales

* Simulacro 1er Parcial 2015
* 1er Parcial 2015 (Desarrollado)

* Simulacro (1) 2do Parcial 2015
* Simulacro (2) 2do Parcial 2015
* 2do Parcial 2015 (Desarrollado)
* Recuperatorio 2do Parcial 2015 (Desarrollado)

## Enlaces Externos

* Plan de la asignatura (2013)
* Sitio para alumnos de la materia