INSTITUTO DE DESARROLLO ECONÓMICO E
INNOVACIÓN
Año: 2025
PROGRAMA DE LA ASIGNATURA: CÓDIGO: IF006
Algorítmica y Programación II (IF006) AÑO DE UBICACIÓN EN EL PLAN DE ESTUDIOS:
2 año
FECHA ULTIMA REVISIÓN DE LA ASIGNATURA:
2022-11-30
CARRERA/S: Analista Universitario de Sistemas
050/2017, Licenciatura en Sistemas 049/2017,
CARÁCTER: CUATRIMESTRAL (1ro) EQUIPO DOCENTE
TIPO: OBLIGATORIA
NIVEL: GRADO Nombre y
Cargo e-mail
Apellido
MODALIDAD DEL DICTADO: PRESENCIAL
MODALIDAD PROMOCION DIRECTA: SI Daniel
Profesor
CARGA HORARIA SEMANAL: 8 HS Aguil daguil@[Link]
Adjunto
Mallea
CARGA HORARIA TOTAL: 120 HS
Anotnio Asistente
alretamar@[Link]
Retamar de primera
1. FUNDAMENTACION
La asignatura se dicta en el segundo año (primer cuatrimestre) de ambas carreras. Dentro del
plan de estudios pertenece al área de Algoritmos y Lenguajes.
Mediante el cursado de la asignatura se espera que el alumno adquiera competencias que le
permitan Analizar, Diseñar e Implementar pequeños sistemas de software.
Dada la importancia de los temas que se abordan en la misma y teniendo en cuenta el régimen de
correlativas establecido en el plan de estudios, se considera que es una de las asignaturas
troncales de la carrera.
Articulación Vertical y Horizontal:
En la asignatura se profundizan temas abordados en Algorítmica y Programación I y se utilizan
conceptos abordados en Elementos de Lógica y Matemática Discreta. (Materias correlativas) Por
otra parte, el alumno incorporará una serie conceptos nuevos, que luego utilizará, y en muchos
casos profundizará, en otras materias de la carrera, como Bases de Datos I y II, Programación y
diseño Orientado a Objetos, Laboratorio de Programación y Lenguajes, entre otras.
La modalidad de la materia será presencial y se utilizara como herramienta de intercambio la
plataforma [Link].
Además de compartir el material de lectura y guías de trabajos prácticos, se permitirá el acceso a
los recursos audiovisuales creados por los docentes. Lo recursos contendrán las explicaciones de
todos los conceptos y pautas brindadas en la materia.
2. OBJETIVOS
a) OBJETIVOS GENERALES
• Profundizar y adquirir nuevos conocimientos que le permitan Analizar, Diseñar e implementar
pequeños sistemas de software.
• Reforzar los conceptos fundamentales del "QUE" y del "COMO" en el desarrollo del software.
• Potenciar la capacidad de abstracción, en base al planteo de problemas y casos de estudio.
• Profundizar conocimientos y mejorar la capacidad para programar en el paradigma orientado a
objetos.
• Profundizar los conceptos de recursividad, tanto en lo referido a algoritmos como a tipos de
datos.
• Promover la integración y participación a fin de afianzar y valorar el aprendizaje colaborativo.
• Generar capacidades que le permitan reflexionar potenciando el pensamiento crítico.
• Promover acciones que despierten interés en investigar tópicos relacionados con la disciplina.
b) OBJETIVOS ESPECIFICOS
• Seguir adquiriendo nuevos hábitos de programación en el paradigma orientado a objetos,
profundizando los conceptos básicos de la Ingeniería de Software que incluyen: Análisis de
algoritmos, Técnicas de diseño, Encapsulamiento, Abstracción, Validación/Verificación y otros.
• Conocer las estructuras de datos fundamentales y su presentación como Tipo Abstracto de
Dato, las implementaciones estáticas y dinámicas de los mismos y evaluar cuando resulta
conveniente una u otra implementación, enfatizando la relación existente entre las estructuras de
datos y los algoritmos.
• Implementar soluciones recursivas, analizando ventajas y desventajas de su aplicación.
• Desarrollar e implementar un sistema de software de mediana complejidad, a partir de las
especificaciones dadas por la cátedra
3. CONDICIONES DE REGULARIDAD Y APROBACION DE LA ASIGNATURA
Para aprobar el cursado de la asignatura los alumnos deberán aprobar dos parciales con
contenido netamente práctico, haber entregado el 100 % de los ejercicios seleccionados, por el
docente, de las guías de trabajos prácticos y haber aprobado el trabajo integrado que el docente
requiera.
Tanto los trabajos integradores como los ejercicios de las guías deberán ser desarrollados
utilizando la computadora y el lenguaje de programación establecido.
Lo harán en forma individual, en el caso de los ejercicios, y en un grupo de 2 o 3 alumnos en el
caso de los trabajos integradores.
La nota requerida para la aprobación de los parciales y de los trabajos integradores es de 4 o
superior.
Para alcanzar esta nota, el alumno deberá en todos las casos, haber desarrollado correctamente
al menos el 60% de lo requerido en ellos.
Cada parcial tendrá su respectivo recuperatorio.
La nota de cursada se obtiene como el promedio entre la nota de los parciales aprobados.
Para los alumnos que cursen por régimen con examen final, una vez obtenida la cursada y
aprobadas las correlativas estarán en condiciones de rendir el examen final en algunas de las
fechas establecidas en el Calendario Académico, y por el período establecido en el Reglamento
de Estudios de Grado y Posgrado.
Para rendir en calidad de alumno libre, el alumno deberá solicitar, con al menos 15 de
anticipación la entrega de un trabajo Integrador, que deberá desarrollar correctamente utilizando
el lenguaje de programación que se establezca. Aprobado este trabajo, en la fecha establecida
para rendir el final, el alumno deberá aprobar el examen escrito, de carácter teórico práctico que
se plantee, en las condiciones que se establecen en el Reglamento de Estudios de Grado y
Posgrado.
El contenido del examen se basará en los contenidos del programa de la asignatura vigente para
ese ciclo lectivo.
Régimen de aprobación por Promoción:
Los alumnos que tengan las asignaturas correlativas aprobadas antes del 1er. parcial y que así lo
deseen podrán hacer uso del régimen de promoción (sin examen final). Para aprobar la
asignatura bajo este régimen el alumno deberá:
1- Aprobar los dos parciales prácticos con nota equivalente a 7 o superior (80% o mas de
desarrollo correcto de los ejercicios). No se tendrán en cuenta las instancias de recuperación.
2- Aprobar los trabajos integradores con nota 7 o superior.
3- Haber entregado el 100% de los ejercicios de las guías de prácticas, solicitadas por el docente.
Para aquellos alumnos que cumplan con lo estipulado anteriormente, se les tomarán dos
parciales integradores con contenidos de fundamento teórico. Estos parciales no poseen
recuperatorio, y deben ser aprobados con nota equivalente a 7 o superior, lo que equivale al
desarrollo correcto de al menos el 80% de los temas planteados. Los alumnos que no aprueben
alguno de estos parciales dejan automáticamente la promoción y se incorporan al
régimen regular.
4. CONTENIDOS DE LA ASIGNATURA
Contenidos Mínimos :
• Estrategias de diseño de algoritmos.
• Tipos abstractos de datos. Estructuras de datos: listas, pilas, colas, árboles, grafos. Tipos de
datos recursivos.
• Programación con recursividad.
• Representación de datos en memoria. Estrategias de implementación. Manejo de memoria en
ejecución.
• Métodos avanzados de ordenamiento y búsqueda.
• Análisis de complejidad de algoritmos.
• Corrección, verificación y eficiencia de algoritmos.
• Tratamiento de errores , manejo de excepciones y propagación del error
Programa Analítico:
Unidad 1 - Conceptos de Metodologías en el desarrollo de Sistemas de Software
[-] Ingeniería de Software
[-] El ciclo de vida clásico de un sistema de software.
[-] + Análisis y Especificación de Requerimientos.
[-] + Diseño y Especificación del Sistema.
[-] + Codificación y Verificación de los módulos.
[-] + Integración y Prueba Global del Sistema.
[-] + Mantenimiento del Sistema.
[-] + Tiempos y costos requeridos por las etapas del Ciclo de Vida.
[-] Especificación, codificación y prueba de algoritmos.
[-] El método de refinamiento sucesivos.
[-] + Ocultación de la información.
[-] + Niveles de Abstracción.
[-] Noción de paradigma de programación.
[-] Características de los sistemas de software.
Unidad 2 - Tipos, estructuras básicas de datos y represetación interna
[-] Tipos Simples (wrappers)
[-] Tipo Enumerado
[-] Tipo Conjunto
[-] Tipo String
[-] Tipo Arreglo
[-] Concepto de referencia
Unidad 3 - Herencia y polimorfismo
[-] subclases y superclases
[-] sobrescritura de métodos
[-] interfaces
Unidad 4 - Tipos de archivo
[-] Conceptos Generales
[-] Administración de archivos
[-] Operaciones básicas sobre archivos.
[-] Técnicas de organización y Acceso a un archivo.
Unidad 5 - Tipos Abstractos de Datos
[-] Abstracción de Datos
[-] Encapsulamiento de Datos
[-] Concepto de Tipo Abstracto de Dato (TDA)
[-] Diferencia entre tipo de dato y tipo abstracto de dato.
[-] Requerimientos y diseño de un Tipo Abstracto de Dato ( TDA)
[-] Abstracción y Ocultamiento
Unidad 6 - Estructuras de Datos Pila y Cola
[-] El tipo Pila y el tipo Cola.
[-] Definición y ejemplos
[-] Definición formal del TDA "PILA" y "COLA"
[-] Implementación de PILA y COLA
[-] Implementación estática mediante tipos de datos estructurados.
Unidad 7 - Tipos de Datos Recursivo
[-] El tipo lista.
[-] + Definición y ejemplos.
[-] + Definición Formal del TDA "LISTA".
[-] + Implementación del tipo lista estática y dinámica.
[-] Implementación de Pilas y Colas utilizando lista enlazadas
[-] Implementación de Listas ordenadas
[-] Listas Doblemente enlazadas y circulares.
[-] Multilistas.
Unidad 8 - Búsqueda por transformación
[-] Hashing.
[-] + Funciones de Hashing.
[-] + Direccionamiento abierto y cerrado.
[-] + Tratamiento de la colisión.
Unidad 9 - Árboles
[-] Terminología Fundamental y definiciones.
[-] El TDA Árbol.
[-] Implementación de un Árbol Binario.
[-] + Implementación estática
[-] + Implementación dinámica
[-] Recorridos en un Árbol Binario.
[-] Árboles Binarios de Búsqueda.
[-] + Búsqueda.
[-] + Inserciones.
[-] + Supresiones
[-] + Árboles AVL
Unidad 10 - Algoritmos de Ordenación
[-] Métodos de ordenación eficientes.
[-] + Ordenamiento por mezcla.
[-] + Ordenamiento rápido.
Unidad 11 - Grafos
[-] Definiciones fundamentales
[-] Representación y uso
[-] Recorridos de un grafo
5. RECURSOS NECESARIOS
Proyector
Pc
Laboratorio Informatica
6. PROGRAMACIÓN SEMANAL
Semana Unidad / Módulo Descripción Bibliografía
1 Unidad 1 y 2 Conceptos generales y tipos de datos (rep int) ver item 7
2 Unidad 3 Herencia y polimorfismo ver item 7
3 Unidad 4,5 y 6 Archivos - TDA - Pila (est.) ver item 7
4 Unidad 6 TDA - Cola (est.) ver item 7
5 Unidad 6 TDA - varios ver item 7
6 1º Parcial (Unid. 1 - 6) y Unid 7 1º Parcial - Tipo de dato recursivo ver item 7
7 Unidad 7 Tipo de dato recursivo - Lista - Pila - Cola ver item 7
8 Recuperatorio y Teórico 1º Parcial recuperatorio y 1º Parcial teórico ------
9 Unidad 7 Lista ordenada - doble - multi ver item 7
10 Unidad 8 Búsqueda por transformación ver item 7
11 Unidad 9 Árboles binarios ver item 7
12 Unidad 9 Árboles - binarios de búsqueda y op. ver item 7
13 Unidad 9 Árboles - Repaso ver item 7
14 2º Parcial (Uni. 7 a 9) - Unidad 10 2º Parcial - Alg. de ordenación -----------
15 Unidad 11 Grafos ver item 7
16 Recuperatorio y Teórico 2º Parcial recuperatorio y 2º Parcial teórico -----------
7. BIBLIOGRAFIA DE LA ASIGNATURA
Lugar de la
Autor Año Título Capítulo/s Editor / Sitio Web
Edición
[Link]
Aguil Mallea D. 2024 Yo progrma {en java} 1,2,3 Argentina progr
[Link]
Thomas H. Cormen ,
Cambridge,
Charles E. Leiserson 2022 Introduction to Algorithms 2 a 11 MIT Press
Massachusett
y otros
Introduction to Java
Y Daniel Liang 2023 Programming and Data 2 a 11 w Pearson
Structures (13)
2 a 11
Cairó O. - Guardati S. 2010 Estructuras de datos Argentina Mc Graw Hill
(Básica)
Estructuras de Datos y 2 a 11
Kruse Robert 1998 Argentina Prentice Hall
Diseño de Programas (Básica)
Estructuras de Datos en 2 a 11
Mark Allen Weiss 2013 Pearson
Java (Básica)
GUARDATI BUEMO, Estructuras de Datos 2 a 11
2015 Argentina ALFAOMEGA
Silvia Básicas POO con Java (Básica)
Firma del docente-investigador responsable
VISADO
COORDINADOR DE LA CARRERA DIRECTOR DEL INSTITUTO SECRETARIO ACADEMICO UNTDF
Fecha : Fecha :
Este programa de estudio tiene una validez de hasta tres años o hasta que otro programa
lo reemplace en ese periodo