You are on page 1of 8

Universidad Tecnolgica Nacional

Facultad Regional Crdoba


Depto. Ing. en Sistemas de Informacin

Asignatura
Ciclo Lectivo
Vigencia del programa
Plan
rea

Algoritmos y Estructuras de Datos


2012
Desde el ciclo lectivo 2011
2008
Programacin

Carga horaria semanal 5 hs


Anual
Anual/ cuatrimestral
Coordinador de Ctedra Ing. Tymoschuk, Jorge P
Objetivos de la Materia Desarrollar la capacidad de razonamiento y lgica,
abordando problemas reales, analizndolos, definiendo
las clases requeridas a su tratamiento, detallando el
comportamiento
necesario
a
nivel
de
mtodos
y
atributos, verificando su correcto funcionamiento.

Programa Analtico
Unidad Nro. 1: Problemas con tipos de datos simples
Objetivos Especficos: Desarrollar la capacidad de razonamiento y lgica necesarios
para identificar problemas algortmicos que usan tipos de datos simples y
resolverlos. Esto implica: abordar problemas reales, analizarlos, definir la
estrategia de su resolucin, explicitar los algoritmos necesarios y
codificarlos en un lenguaje de programacin.

Contenidos:
Objetivos de la Unidad .
.
.
.
3
Pasos a seguir en la resolucin de un problema .
.
3
Introduccin a la POO
.
.
.
.
4
Que es la programacin Orientada a Objetos
5
Componentes bsicos de la POO
.
.
5
Caractersticas de la POO
.
.
5
Programacin estructurada, Programacin orientada a objetos 9
LENGUAJE JAVA, CARACTERSTICAS
.
.
.
11
Instalacin de java
.
.
.
13
Compilacin y ejecucin de un programa
13
GRAMTICA DEL LENGUAJE JAVA
14
COMENTARIOS .
.
.
.
14
IDENTIFICADORES, PALABRAS CLAVE Y RESERVADAS
15
Concepto de Dato
.
.
.
15
Concepto de Informacin, dif. entre datos e informacin
16
Tipos de Datos Simples, Variables
17
Genero de las variables, asignacin, inicializacin
18
Operadores: unarios, binarios .
.
.
19
Separadores .
.
.
.
21
Estructuras de control: secuencial, selectivas
21
Alternativa simple, doble
21
Alternativa mltiple
.
.
.
23
Estructuras de Control: Bucles
.
.
25
El Bucle While
.
.
.
25
Terminaciones anormales de un ciclo
.
26
Bucles controlados por centinela
.
27
Diseo eficiente de bucles
.
.
27
Bucles controlados por banderas
.
29

1
Ctedra: Algoritmos y Estructuras de Datos

Universidad Tecnolgica Nacional


Facultad Regional Crdoba
Depto. Ing. en Sistemas de Informacin

Sentencias de quiebre de control


Repeticin: El Bucle For
.
Repeticin: El Bucle do-while .
Bucles Anidados
.
.
Ejercicios propuestos para el alumno

30
31
34
35
36

.
.
.
.

Bibliografa: Material la ctedra publicado por Educo y disponible en el sitio


labsys.frc.utn.edu.ar,
Sitios de las Ctedras, Algoritmos y Estructuras de
Datos conjuntamente con todo el cdigo Java.

Evaluacin: Trabajo Practico Nro 1 y 1er Parcial.


Unidad Nro. 2: Problemas con tipos de datos abstractos
Objetivos Especficos: Desarrollar la capacidad de razonamiento y lgica necesarios
para identificar problemas algortmicos que usan tipo abstracto de datos y
resolverlos. Esto implica: abordar problemas reales, analizarlos, definir la
estrategia de su resolucin, explicitar los algoritmos necesarios
y
codificarlos en un lenguaje de programacin.
En esta Unidad trataremos con algoritmos que resuelven problemas usando el
comportamiento de una nica clase.
Contenidos:
Programacin orientada a Objetos, Principios de diseo
3
Abstraccin, Tipo Abstracto de Datos
.
. 3
Encapsulamiento, Modularidad .
.
4
CLASES, ABSTRACCIONES CON PROCEDIMIENTOS Y FUNCIONES
5
ESTRUCTURA GENERAL
.
.
.
5
DECLARACIN Y DEFINICIN, EL CUERPO DE LA CLASE
6
Acceso a miembros, Ciclo de Vida de los Objetos .
7
DECLARACIN DE LOS MIEMBROS DE UNA CLASE .
8
Modificadores de acceso a miembros de clases
.
8
Separacin de la interfaz
.
.
10
ATRIBUTOS DE UNA CLASE .
.
.
12
MTODOS DE UNA CLASE
.
.
.
13
Llamadas a mtodos
.
.
.
14
El objeto actual (puntero this)
.
.
15
Pasaje de Parmetros
.
.
16
Mtodos sobrecargados
.
.
18

Resolucin de llamada a un mtodo

18

Mtodos constructores
.
.
19
Constructores, Por defecto, Con argumentos, Copiadores19
Caso especial
.
.
.
20
public class paridad
.
.
.
22
Interfaces
.
.
.
23
Implementacin de interfaces
.
.
23
Aplicaciones Graficas
Usando GUI Builder para disear entrada/salida graf 28
Proyecto EjemploIG01
.
.
29
Proyecto EjemploIG02
.
.
32
Proyecto EjemploIG03
.
.
36
Consola de Grficos
.
.
.
41
Presentacin de la clase GraphicsConsole .
41
GraphicsConsole: Resumen de mtodos .
47
La clase Font de Java
.
.
50
La clase Color de Java .
.
52
Proyecto Cohete
.
.
52

2
Ctedra: Algoritmos y Estructuras de Datos

Universidad Tecnolgica Nacional


Facultad Regional Crdoba
Depto. Ing. en Sistemas de Informacin

Diagrama de Barras
.
.
54
Uso de la clase JOptionPane
.
.
57
Entrada y salida basada en ventanas .
57
Bibliografa: Material la ctedra publicado por Educo y disponible en el sitio
labsys.frc.utn.edu.ar,
Sitios de las Ctedras, Algoritmos y Estructuras de
Datos conjuntamente con todo el cdigo Java.

Evaluacin: Trabajo Practico Nro 2 y 1er Parcial.


Unidad Nro. 3: Estrategias de Resolucin.
Objetivos Especficos: Desarrollar la capacidad de razonamiento y lgica
necesarios para que el alumno pueda visualizar y desarrollar la solucin de
problemas como comportamiento de varias clases de objetos,
los cuales
interaccionan entre si mediante mensajes. Entrenar a los alumnos en el uso de
herramientas que facilitan y racionalizan estos desarrollos, como ser herencia,
polimorfismo, colecciones.
Entrenar al alumno en el uso de programacin existente, como ser el de bsqueda
y ordenamiento en arreglos. Instruir al alumno en el uso de soluciones
alternativas al tratamiento iterativo, como es la recursividad.
Contenidos:
Interaccin de objetos, Abstraccin
.
.
3
Abstraccin en software, Relaciones entre objetos
4
Composicin usando una sucesin de objetos Nmero
.
6
Composicin usando una sucesin de objetos Carcter
8
Tratamiento de frases
.
.
.
12
Agrupar objetos.
.
.
.
14
Colecciones de tamao fijo Arreglos
.
15
Declaracin, creacin, uso de variables arreglo 16
Composicin usando un arreglo de objetos
17
Composicin usando una secuencia de nmeros
18
Colecciones de tamao flexible, agenda personal .
21
Caractersticas importantes de ArrayList .
23
Procesar coleccin completa, ciclo for-each
24
Recorrer una coleccin .
.
26
Herencia
.
.
.
.
29
Usar herencia
.
.
.
31
Jerarquas de herencia .
.
.
32
Herencia e inicializacin
.
.
34
Agregando nuevos elementos a una jerarqua existente. 35
Ventajas, Subtipos, Subtipos y asignacin
36
Variables polimrficas, Enmascaramiento de tipos
37
La clase Object
.
.
.
38
Tipo esttico y tipo dinmico .
.
39
Bsqueda dinmica del mtodo
.
.
40
Llamada a super en mtodos
.
42
Mtodos polimrfico
.
.
43
Paquetes (package)
.
.
.
46
Tratamiento de Excepciones
.
48
Lanzamiento de excepciones
.
.
49
Atrapado de excepciones .
.
.
50
Generando nuestras propias excepciones.
.
53
Algoritmos de bsqueda, recorrido y ordenamiento
Bsqueda en arreglos
.
.
55
Bsqueda secuencial
.
.
.
57
Bsqueda binaria
.
.
.
58
Nociones de Complejidad Computacional ,

3
Ctedra: Algoritmos y Estructuras de Datos

Universidad Tecnolgica Nacional


Facultad Regional Crdoba
Depto. Ing. en Sistemas de Informacin

Operaciones Primitivas .
.
59
Conteo, Notacin asinttica
.
.
61
Ordenamiento Introduccin,
Algoritmos bsicos y mejorados.
.
63
class OrdBurb, OrdSac, OrdPein, ordPeinCol
64
Determinacin del Orden de Complejidad. Tiempos 68
Arrays multidimensionales
.
.
70
Acceso a elementos mediante bucles .
71
Matriz de objetos Item.
.
.
73
Estructuras lineales.
.
.
.
79
Pila, concepto, diversas implementaciones
.
79
public class Tiempos
.
.
81
Cola, concepto, diversas implementaciones
83
Implementacin usando nodos enlazados.
84
Recursividad, concepto, formulacin recursiva del algoritmo85

Bibliografa: Material la ctedra publicado por Educo y disponible en el sitio


labsys.frc.utn.edu.ar,
Sitios de las Ctedras, Algoritmos y Estructuras de
Datos conjuntamente con todo el cdigo Java.

Evaluacin: Trabajo Practico Nro 3 y 2do parcial.


Unidad Nro 4 Almacenamiento de Datos
Objetivos de la unidad: Instruir y dar las herramientas para que el alumno
pueda guardar y recuperar sus datos de forma persistente usando:
o Flujos a archivos de acceso secuencial y aleatorio: organizaciones y
accesos.
o Flujos a archivos de objetos.
.
.
.
.
.
.
.
. 3
Contenidos: Flujos
Clases File Input/Output Stream
.
.
.
.
. 5
Procesamiento Bsico
.
.
.
. 5
Clases ByteArray Input/Output Stream
.
.
.
. 6
Clases Pipe Input/Output Stream
.
.
.
.
. 6
Clases Filtro
.
.
.
.
. 7
Clases Data Input/Output Stream
.
.
.
.
. 7
La Clase File, ejemplos.
.
.
.
.
.
.10
Archivos secuenciales, creacin, consulta, actualizacin
.12
Archivos de acceso aleatorio .
.
.
.
.
.16
Creacin de un Random AccessFile
.
.
.17
Mtodos de posicionamiento
.
.
.
.17
Creando, consultando
.
.
.
.
.18
Flujos de tipo Objeto
.
.
.
.
.
.19
Almacenamiento de objetos de distinto tipo.
.20
Tratando objetos div.: grabando, leyendo .
.21

4
Ctedra: Algoritmos y Estructuras de Datos

Universidad Tecnolgica Nacional


Facultad Regional Crdoba
Depto. Ing. en Sistemas de Informacin

Bibliografa: Material de la ctedra publicado por Educo y disponible en el sitio


labsys.frc.utn.edu.ar,
Sitios de las Ctedras, Algoritmos y Estructuras de
Datos conjuntamente con todo el cdigo Java.

Evaluacin: Trabajo Practico Nro 4 y 2do parcial.


Metodologa de enseanza y
aprendizaje

Sistema de evaluacin

Terico y prctico desarrollado en laboratorio. Los conceptos tericos son


inmediatamente llevados a prcticos en lenguaje Java y luego son
profundizados en clases prcticas (laboratorio) y prcticos grupales
(Domicilio).
4(cuatro) prcticos grupales de hasta 3(tres) integrantes y 2(dos) parciales
individuales. Se puede recuperar solo 1(un) parcial.

Condiciones de regularidad

El alumno regulariza la asignatura aprobando prcticos grupales y parciales


individuales con nota mayor/igual a 4(cuatro).

Modalidad de examen final

Prctico, realizado en mquina, si aprueba pasa al terico, consistente en la


evaluacin de conceptos tericos.
Si en el cursado el alumno obtuvo un promedio de 8(ocho) y ninguna nota
menor que 7(siete) en la evaluacin de prcticos y parciales, promueve el
prctico y puede:
Rendir el examen terico normalmente.
Presentar un trabajo de investigacin: Un proyecto conteniendo una
programacin sobre tpicos no desarrollados en clase funcionando.

Actividades en laboratorio

La totalidad de las clases se desarrollan en laboratorio. Los enunciados se


analizan y se programan en lenguaje Java usando un entorno de
programacin (Netbeans, Blue J).

Horas/ao totales de la
asignatura
Cantidad de horas
prcticas totales
Cantidad de horas tericas
totales
Tipo de formacin prctica
(marque la que corresponde y
si es asignatura curricular -no
electiva-)
Cantidad de horas afectadas
a la formacin prctica
indicada en el punto anterior
Descripcin de los prcticos

160
128
32

Formacin experimental
Resolucin de problemas de ingeniera
Actividades de proyecto y diseo
Prcticas supervisadas en los sectores productivos y /o de servicios

128

Unidad Nro 1 Problemas con tipos de datos


simples
Clase con comportamiento (10 mtodos) para obtener
diversos datos a partir de los lados del tringulo.
Diversos ejemplos simples de ciclos while. Diversos
ejemplos simples de ciclos for. Clase tratando varias
figuras geomtricas. Ciclos anidados. Comparativo de
dibujo de tringulos issceles usando ciclos simples y
anidados.

5
Ctedra: Algoritmos y Estructuras de Datos

Universidad Tecnolgica Nacional


Facultad Regional Crdoba
Depto. Ing. en Sistemas de Informacin

Unidad Nro 2 Problemas con tipos de datos


abstractos
Se lee un texto, se detectan palabras repetidas, se las
exhibe y se las suprime del texto original.
Leer sucesivas lneas y concatenarlas; informar cuantas
lneas.
Leer sucesivas lneas, concatenarlas. Informar orden
de la lnea mas larga, cuantos caracteres contiene,
contenido.
Utilizamos el concepto de separador para detectar
palabras.
Ordenarlas palabras de la lnea en orden decreciente de
longitud
Suprimir clave de texto. Mostrar texto resultante.

Unidad Nro 3 - Estrategias de Resolucin


Una agenda basica, ABM de Strings sobre ArrayList
Recorriendo agenda con ciclos for each, while e
iterador
Bsqueda de claves en agenda con ciclos for each, while
e iterador
Contabiliza alternancias consonante/vocal en una cadena
de texto
Anlisis comparativo de cuatro distintas
implementaciones de una pila
Anlisis comparativo de tres mtodos de ordenamiento
Insercin ordenada en una coleccin implementada en un
ArrayList
Comportamiento de un array de tems
Cuatro programas sencillos usando matrices
multidimensionales.
Una coleccin ArrayList con elementos ArrItems. Su
mantenimiento
Comportamiento adicional sobre la coleccin anterior.
Bsqueda binaria sobre objetos Item.
Bsqueda secuencial idem.
Programas simples usando comportamiento de las clases
String y StringBuffer
Comportamiento de una matriz bidimensional de nmeros
enteros
Ordenamiento mediante mtodo burbuja
Ordenamiento mediante mtodo peinado
Ordenamiento mediante mtodo sacudida
Comportamiento para tratar palabras dentro de textos.
Comportamiento para tratar una sucesin de nmeros
enteros.
Variante de SecuNum usando ciclo For
Proyecto tratando series numricas. Uso de herencia y
polimorfismo
Interaccionando con dos LinkedList se genera lista
ordenada, etc
Comportamiento tratando sucesin de caracteres
Variante de SecuNum usando ciclo do while
Varios proyectos con comportamiento simple sobre
vectores conteniendo enteros

Unidad Nro 4 Almacenamiento de Datos


Comportamiento para generar/agregar y leer archivos

6
Ctedra: Algoritmos y Estructuras de Datos

Universidad Tecnolgica Nacional


Facultad Regional Crdoba
Depto. Ing. en Sistemas de Informacin

secuenciales tipo texto y binarios.


Comportamiento para generar/actualizar archivos de
acceso aleatorio.
Usando la clase File para obtener atributos de archivos
Comportamiento para grabar/leer archivos con datos de
objetos.
Usando herencia para definir clases y sus
especializaciones
Almacenando recuperando objetos que contienen otros
objetos
Usando serializacin para manipular flujos de objetos
Grabando objetos diversos, su reconocimiento en lectura
Comportamiento combinado de los dos proyectos
anteriores.

Criterios de evaluacin de los


prcticos
Descripcin de la
presentacin de los prcticos
Cronograma de actividades
de la asignatura, incluyendo
semana prevista para cada
prctico

Mnimo de un 80% de los puntos especificados en el enunciado funcionando


correctamente (en ejecucin).
Programacin Java en un entorno adecuado, normalmente NetBeans.
Unidad Nro 1 Unidad Nro 2 Unidad Nro 3 Unidad Nro 4 -

6(seis) semanas, finaliza el 27 de abril 2012


8(ocho) semanas, finaliza el 22 de junio 2012
11(once) semanas, finaliza el 05 de octubre 2012
5(cinco) semanas, finaliza el 09 de noviembre 2012

Uso de aula virtual, todo el ao.


Descripcin de metodologa
propuesta de consultas y
cronograma de consultas
Plan de integracin con otras El contenido de esta asignatura es pre-requisito del contenido dictado en
Paradigmas de Programacin.
asignaturas
Bibliografa Obligatoria

Material
la
ctedra
publicado
por
Educa
y
disponible
en
el
sitio
labsys.frc.utn.edu.ar,
Sitios de las Ctedras, Algoritmos y Estructuras de
Datos conjuntamente con todo el cdigo Java.

Bibliografa Complementaria

Estructuras de Datos y Algoritmos en Java,


Goodrich/Tamassia, CECSA

7
Ctedra: Algoritmos y Estructuras de Datos

Universidad Tecnolgica Nacional


Facultad Regional Crdoba
Depto. Ing. en Sistemas de Informacin

Distribucin de docentes por


curso
Curso
1k01

Turno Da y Horas Profesor


Maana Mar 5,6,7
Fritelli
Mie 1,2
Valerio

1k02

Maana Lun 1,2,3


Mie 1,2
Maana Lun 6,7
Vie 4,5,6
Maana Mar 3,4

1k03
1k04

Jue 1,2,3
1k05
1k06
1k07
1k08
1k09
1k10
1k11
1k12
1k13
1k14

Maana Mar 4,5,6


Vie 6,7
Maana Lun 4,5,6
Jue 6,7
Maana Mie 1,2,3
Vie 6,7
Maana Lun 1,2,3
Mie 1,2
Tarde
Mar 4,5,6
Vie 5,6
Tarde
Mar 3,4
Vie 0,1,2
Tarde
Lun 2,3
Mie 1,2,3
Noche Lun 0,1
Vie 1,2,3
Noche Mie 5,6
Vie 1,2,3
Maana Mar 5,6,7
Mie 1,2

JTP
Bett
Federico

Ayudante
Roman
Germn

Guzmn
Anala
Serra
Silvio

Tartabini
Marcela
Steffolani
Felipe

Prraga
Adriana
Luna
Karina

Fritelli
Valerio

Teicher
Romina

Ligorria
Karina
Guzman
Analia
Ligorria
Karina
Corso
Cynthia
Tymoschuk
Jorge
Cresta
Tomas
Tymoschuk
Jorge
Serra
Silvio
Castillo
Julio
Castillo
Julio

Carena
Gustavo
Tartabini
Marcela
Teicher
Romina
Fernandez
Julieta
Steffolani
Felipe
Crdenas
Marina
Carena
Gustavo
Crdenas
Marina
Bett
Federico
Carena
Gonzalo

Roman
Germn
Colacioppo
Nicols
Colacioppo
Nicols
Brochero
Carlos
Luna
Karina

Prraga
Adriana
Brochero
Carlos

8
Ctedra: Algoritmos y Estructuras de Datos