Documentos de Académico
Documentos de Profesional
Documentos de Cultura
U C A S A L
UNIVERSIDAD CATOLICA DE SALTA
AÑO LECTIVO
2021
UNIDAD ACADÉMICA: FACULTAD DE INGENIERIA
EQUIPO DOCENTE:
PROFESOR CATEGORÍA
Mag. Lic. Rosa E. Macaione Profesor Titular
Lic. Eduardo Maldonado Auxiliar Docente
La Asignatura Estructura de Datos y Algoritmos está ubicada en el segundo año de la carrera y corresponde al
bloque de las tecnologías básicas. Esta materia contribuye a la formación de ingenieros aportando una sólida base
en el área científica y técnica brindando herramientas que serán útiles en el desempeño de la profesión.
Según el sistema de correlatividades del plan de estudio la interrelación vertical de cátedras vincula esta
materia hacia atrás con Introducción a la Informática, del 1° año de la carrera y hacia delante con Base de Datos I,
del 3° año de la carrera. La interrelación horizontal de cátedras vincula esta asignatura con materias que se cursan
conjuntamente tales como Lenguaje 1 y Lenguaje 2.
Es adecuado que el alumno posea las siguientes habilidades, que en el contexto del actual plan de estudios se
obtienen en la asignatura Introducción a la Informática y Lenguaje I:
Conocimiento de los elementos básicos de la construcción de algoritmos y de la estructuración de la
información, con especial énfasis en el concepto de abstracción.
Capacidad de desarrollar algoritmos usando una metodología adecuada.
Destreza para implementar los algoritmos así desarrollados en un lenguaje de programación.
Conceptos de programación.
Se trata de un conjunto de variables de un determinado tipo agrupadas y organizadas de alguna manera para
representar un comportamiento. Lo que se pretende con las estructuras de datos es facilitar un esquema lógico para
manipular los datos en función del problema que haya que tratar y el algoritmo para resolverlo. En algunos casos
la dificultad para resolver un problema radica en escoger la estructura de datos adecuada. Y, en general, la
elección del algoritmo y de las estructuras de datos que manipulará está muy relacionada.
Las estructuras de datos que trataremos aquí son los arrays, las pilas y las colas, los árboles, los grafos y
algunas variantes de estas estructuras.
Los tipos abstractos de datos (TAD) permiten describir una estructura de datos en función de las operaciones
que pueden efectuar, dejando a un lado su implementación.
Los TAD mezclan estructuras de datos junto a una serie de operaciones de manipulación. Incluyen una
especificación, que es lo que verá el usuario, y una implementación (algoritmos de operaciones sobre las
estructuras de datos y su representación en un lenguaje de programación, que el usuario no tiene necesariamente
que conocer para manipular correctamente los tipos abstractos de datos.
UNIVERSIDAD CATOLICA DE SALTA - PLANIFICACION DE CATEDRA 2
Se caracterizan por el encapsulamiento. Es como una caja negra que funciona simplemente conectándole unos
cables. Esto permite aumentar la complejidad de los programas, pero manteniendo una claridad suficiente que no
desborde a los desarrolladores. Además, en caso de que algo falle será más fácil determinar si lo que falla es la
caja negra o son los cables.
Por último, indicar que un TAD puede definir a otro TAD. Por ejemplo, se indicará como construir pilas, colas
y árboles a partir de arrays y listas enlazadas. De hecho, las listas enlazadas también pueden construirse a partir de
arrays y viceversa.
OBJETIVOS (2):
Objetivos Conceptuales:
Objetivos Procedimentales:
Objetivos Actitudinales:
Unidad 3: Recursividad
Concepto. Naturaleza de la recursividad.
Algoritmos recursivos.
Uso de la recursividad. Cuando no utilizar la recursividad.
Seguimiento de la recursividad.
Recursividad directa e indirecta.
Ventajas y desventajas.
Métodos recursivos de búsqueda y de ordenación. Búsqueda binaria recursiva. Ordenamiento rápido:
Quicksort.
Ejercicios
METODOLOGÍA (4)
TEORÍA
La teoría ocupará un 50% del tiempo total de la asignatura, en el que se pretende difundir conocimientos
teóricos y ejemplos de los temas abordados en cada clase.
Al finalizar cada unidad que se desarrolla en teoría se tomará un coloquio obligatorio, en forma individual,
antes de iniciar la unidad correlativa. El coloquio consistirá en preguntas teóricas-prácticas, este será evaluado
inmediatamente después de ser tomado. El día del coloquio el alumno tendrá en su asistencia la siguiente
indicación: PA (Presente Aprobó), PN (Presente No aprobó) A (Ausente). Cuando el alumno haya alcanzado
un total de tres, ya sea Ausente o Presente No Aprobó, deberá rendir un examen extra, para recuperar lo no
alcanzado, en caso de la no aprobación perderá su regularidad.
Las clases tendrán un carácter híbrido o de b-learning, donde se continuará con el desarrollo de las propuestas
de enseñanza en las AULAS VIRTUALES, y se complementará con ACTIVIDADES PRESENCIALES en un
proceso de convergencia.
Virtualidad:
• Foro de consultas
• Foros de debate.
• Salas de chat.
Publicación de material de lectura obligatoria recursos: documento escrito por el docente, un artículo en PDF,
un power point).
UNIVERSIDAD CATOLICA DE SALTA - PLANIFICACION DE CATEDRA 5
Foro de Discusión y Debate sobre las reflexiones construidas a partir del video.
Presencialidad
Se llevará a cabo durante 2 horas cada 15 días, para preservar las pautas de prevención establecidas en el
protocolo; se organizará a los alumnos por grupos para asistir a las clases, debiendo estos rotar o alternar, una
hora por cada grupo de alumnos, citados en forma obligatoria, en el horario asignado de la cátedra. Los
alumnos que no les corresponde concurrir tendrán acceso a la clase grabada en forma asincrónica,
En los encuentros presenciales, los estudiantes refuerzan lo previamente trabajado en la plataforma virtual,
como ser los contenidos presentados a través de videos, demostraciones virtuales, bibliografía, módulos y el
material que se haya considerado oportuno.
● Explicaciones puntuales que apunten a resolver dudas planteadas en el foro y que requieran, sí o sí, de la
aclaración del docente.
● Instancias de trabajo grupal con los estudiantes, a fin de analizar diferentes estudios de caso para aplicar
perspectivas, paradigmas ya vistas en la clase del collaborate, por ejemplo.
● Experiencias de aplicación y resolución práctica. Toma de decisiones por parte de los estudiantes.
Para la evaluación el docente realizará diferentes actividades para los estudiantes como ser:
PRÁCTICA:
1) Clase de práctica
El 50% restante del tiempo asignado a la asignatura se dedicará a la realización de clases de práctica.
Se entregará a los alumnos un trabajo práctico para cada tema del programa
Hay una sola comisión, con una clase práctica de 2 horas semanales. En ellas los alumnos podrán consultar
los ejercicios de los prácticos y se realizarán otros ejercicios prácticos que refuercen el aprendizaje de los
contenidos impartidos en las clases teóricas.
UNIVERSIDAD CATOLICA DE SALTA - PLANIFICACION DE CATEDRA 6
Práctica obligatoria:
En las clases de prácticas tanto en el aula virtual como en el laboratorio de máquinas se utilizarán las siguientes
técnicas:
• Demostrativa: por ejemplo, para que los alumnos puedan apreciar cómo se realiza un proceso.
También se implementará tutorías semanales para las prácticas en horario a coordinar, según la disponibilidad
de la sala de máquinas.
EVALUACION (5)
CRITERIOS e INSTRUMENTOS:
La consecución de los objetivos de la asignatura se evaluará, de acuerdo con la norma establecida, de 0 a 10
puntos, utilizando para ello dos mecanismos:
- Dos exámenes parciales escritos o sus correspondientes recuperaciones.
- Valoración global de las prácticas obligatorias
Examen escrito.
En el examen escrito el alumno deberá demostrar sus conocimientos teóricos de la materia y la habilidad
desarrollada en la solución de problemas de especificación, diseño, implementación y uso de tipos abstractos
de datos de un nivel adecuado a la materia impartida. Estará dividido en ejercicios, cada uno de los cuales
aportará un porcentaje especificado a la nota del examen. Asimismo, se especificará para cada ejercicio la
puntuación mínima que será necesario alcanzar para aprobar el examen.
La evaluación de las prácticas se efectuará a partir de los ejercicios prácticos obligatorios que se realizarán
regularmente. Al comienzo de la clase se entregará el enunciado y las pautas para su realización y deberán
ser entregados para su corrección al finalizar la misma.
Estos ejercicios podrán ser realizados en grupos (hasta 2 personas), definidos al comienzo del año (no será
posible cambiar de grupo durante el año sin causa justificada)
Los ejercicios obligatorios se calificarán según la escala: Sobresaliente, Muy Bueno, Bueno, Regular,
Insuficiente.
CONDICIONES PARA OBTENER LA REGULARIDAD Y/O PROMOCIONALIDAD
Los alumnos que realicen copia, plagio durante examen parcial/ final en forma reiterada, obtendrán una nota
UNIVERSIDAD CATOLICA DE SALTA - PLANIFICACION DE CATEDRA 7
de 0 puntos, independientemente de otras medidas que pudieran tomarse de acuerdo con lo establecido en la
Res.Rect. N° 555/02 sobre Reglamento del Alumno.
CARGA HORARIA
DISTRIBUCIÓN SEMANAL
SEMANAL
TEORÍA
80’
FORMACIÓN TEÓRICA
RESOLUCIÓN DE PROBLEMAS TIPO
40’
FORMACIÓN PRÁCTICA EN LABORATORIO 120’
EXPERIMENTAL TRABAJO DE CAMPO
FORMACIÓN
PRÁCTICA RESOLUCIÓN DE PROBLEMAS ABIERTOS DE INGENIERÍA
PROYECTO Y DISEÑO
BIBLIOGRAFÍA:
BIBLIOGRAFÍA BÁSICA
LUGAR Y AÑO
AUTOR TITULO EDITORIAL DE EDICIÓN
BIBLIOGRAFÍA COMPLEMENTARIA:
LUGAR Y ANO
AUTOR TITULO EDITORIAL DE EDICIÓN
Estructura de Datos, Joyanes y Aguilar McGraw-Hill España, 2007
Algoritmos, abstracción y Ignacio Zahoneo
objetos Martínez
Apuntes de la cátedra 2017
OBSERVACIONES:
El estudio de estructuras de datos y de algoritmos es tan antiguo como el nacimiento de la programación y se
ha convertido en estudio obligatorio en todos los currículos desde finales de los años 70 y sobre todo en esa
misma década cuando apareció el lenguaje Pascal de la mano del profesor Niklaus Wirtz, y posteriormente en la
década de los ochenta con la aparición de su obra —ya clásica— Algorithms and Data Structures (1986).
Muchas facultades y escuelas de Ingeniería, así como institutos tecnológicos, comienzan sus cursos de
Estructuras de Datos con el soporte de Java. Existen muchas razones por las cuales pensamos que Java es
apropiado para la formación en estructuras de datos. Una de ellas es que Java, es un lenguaje más moderno que
C o C++, con mejores funcionalidades, orientado a objetos, a la programación en Web.
El primer problema que se suele presentar al estudiante de Estructura de Datos que, probablemente,
procederá de un curso de nivel básico, medio o avanzado de introducción o fundamentos de programación o
bien de iniciación en algoritmos, es precisamente el modo de afrontar información compleja desde el principio.
Aunque es verdad que Java tiene muchas ventajas sobre un lenguaje procedimental, por ejemplo C, muchas de
estas ventajas no se hacen evidentes hasta que un programa se “vuelve” o “hace” más complejo. En este caso el
paradigma orientado a objetos es una herramienta de programación y organización muy poderosa y con grandes
ventajas para la enseñanza y posterior tarea profesional.
UNIVERSIDAD CATOLICA DE SALTA - PLANIFICACION DE CATEDRA 10
A primera vista, Java es más interesante que un lenguaje procedimental por su enfoque orientado a objetos,
aunque puede parecer, en el caso del análisis y diseño de algoritmos y estructuras de datos, que esta propiedad
añade una complejidad inherente y no es así, la implementación en clases y objetos puede darle una nueva
potencialidad. Pensando en esta transición se ha incluido conceptos teórico-prácticos de orientación a objetos,
soportando la comprensión del tipo abstracto de datos (TAD) de modo que el estilo de programación empleado
en el texto se basa en el estudio de tipos abstractos de datos como base para la formación en orientación a
objetos.
Se estudian estructuras de datos con un objetivo fundamental: aprender a escribir programas más eficientes.
También cabe aquí hacerse la pregunta: ¿Por qué se necesitan programas más eficientes cuando las nuevas
computadoras son más rápidas cada año? La razón tal vez resida en el hecho de que nuestras metas no se
amplían a medida que se aumentan las características de las computadoras.
La potencia de cálculo y las capacidades de almacenamiento aumentan la eficacia y ello conlleva un aumento
de los resultados de las máquinas y de los programas desarrollados por ellas.
La búsqueda de la eficiencia de un programa no debe chocar con un buen diseño y una codificación clara y
legible. La creación de programas eficientes tiene poco que ver con “trucos de programación” sino, al contrario,
se basan en una buena organización de la información y buenos algoritmos. Un programador que no domine los
principios básicos de diseños claros y limpios probablemente no escribirá programas eficientes. A la inversa,
programas claros requieren organizaciones de datos claras y algoritmos claros, precisos y transparentes.
_____________________
FIRMA RESPONSABLE