Download formulario para la presentacion de programas

Document related concepts
no text concepts found
Transcript
Universidad Nacional del Nordeste
Facultad de Ciencias Exactas y Naturales y Agrimensura
FORMULARIO PARA LA PRESENTACION
DE PROGRAMAS ANALITICOS Y DE EXAMEN
1. IDENTIFICACION
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.7.
FACULTAD DE CIENCIAS EXACTAS Y NATURALES Y AGRIMENSURA
DEPARTAMENTO: INFORMATICA
AREA: PROGRAMACION
ASIGNATURA: PROGRAMACION IV – PARADIGMA DE OBJETOS
CARRERAS: LICENCIATURA EN SISTEMAS DE INFORMACION
Año en que se dicta: SEGUNDO AÑO
PROFESOR RESPONSABLE:
Apellido y Nombres: GREINER CRISTINA LILIAM
Máximo Título alcanzado: Magíster en Informática y Computación
1.8.
MODALIDAD:
Anual:
Cuatrimestral: X
Bimestral:
OTRAS:
1.9. CARGA HORARIA TOTAL: 144 hs.
1.10. CARGA HORARIA SEMANAL TEORICA/PRACTICA: 9 hs.
2. DESCRIPCION:
(Referir las características generales de la materia teniendo en cuenta: la fundamentación, la metodología
a emplear, los tipos de actividades, los mecanismos de evaluación, y toda otra cuestión que se considere
necesaria).
El objetivo principal de la asignatura es lograr que los alumnos comprendan los conceptos
fundamentales del paradigma de Programación Orientación a Objetos (PPO). Para ello, los
contenidos están estructurados de modo de incorporar progresivamente estos conceptos,
facilitando su comprensión mediante la implementación práctica de los mismos. Dicha
implementación se lleva a cabo en el lenguaje Java, uno de los más destacados representantes
de este paradigma. Adicionalmente se ven aspectos avanzados característicos de los lenguajes
de POO, dada la importancia que estas nuevas tecnologías tienen en la actualidad.
Los alumnos cursan dos clases prácticas semanales y una clase teórica, obligatorias. Las clases
prácticas comprenden la ejercitación en el Laboratorio de Informática. La carga horaria de las
clases en el Laboratorio estará sujeta a la disponibilidad del mismo.
Para regularizar la materia los alumnos deben aprobar dos exámenes parciales con nota mayor o
igual a seis, tener aprobadas como mínimo el 80% de cada guía práctica en el laboratorio y el
porcentaje de asistencia requerido. Cada parcial tiene su correspondiente recuperatorio y está
previsto un examen extraordinario para recuperar uno de los dos parciales.
La materia puede aprobarse con el régimen de promoción sin examen final, o con examen final.
Los criterios de evaluación son los siguientes: Comprensión de los conceptos impartidos, la
correcta aplicación de los conceptos de la PPO en la codificación de programas informáticos,
utilización de los términos técnicos específicos, claridad en la exposición, capacidad de síntesis y
de relación de los distintos conceptos.
La asignatura dispone de un sitio en Internet, que se accede a través del siguiente link:
http://exa.unne.edu.ar/depar/areas/informatica/programacion4/public_html/index.html
El objetivo del sitio es poner a disposición de los alumnos el material didáctico de la asignatura,
consistente en apuntes teóricos y guías de trabajos prácticos. Además cuenta con una sección
de sitios sugeridos y la bibliografía recomendada.
El mismo material, con los sitios sugeridos incluidos, se brinda en un CD, para aquellos alumnos
que no tengan acceso a Internet.
1
Universidad Nacional del Nordeste
Facultad de Ciencias Exactas y Naturales y Agrimensura
2.1. OBJETIVO(S) GENERALES:
(Describir en forma precisa (los) objetivo(s) general(es) de la asignatura. Si se trata de objetivos
múltiples, presentarlos en forma desagregada.)
a) Lograr que el alumno comprenda los conceptos básicos de la Orientación a Objeto,
abarcando las características fundamentales de esta metodología: definición de objeto, clase,
herencia, polimorfismo, relaciones y envío de mensajes, mediante la resolución de problemas
diseñados a tal efecto.
b) Iniciar al alumno en el campo de la Programación Orientada a Objetos (POO),
implementando los conceptos impartidos en uno de los lenguajes más representativos de
esta técnica, y de mayor difusión, por su uso masivo en Internet, como es el lenguaje JAVA.
c) Estimular la capacidad de resolución de problemas, reforzando las habilidades adquiridas en
asignaturas previas, y adicionando los nuevos conocimientos de POO, mediante ejercicios
que exijan a los alumnos aplicar los conceptos de la Orientación a Objetos.
d) Conocer y aplicar técnicas de documentación y prueba de programas en PPO.
e) Resolver problemas planteados en cualquier área del conocimiento a través del empleo
sistemático y disciplinado de métodos, modelos y herramientas.
f)
Familiarizarse y manejar con precisión el lenguaje técnico asociado al paradigma de objetos.
g) Brindar ejemplos relacionados con los temas desarrollados, surgidos de la experiencia
profesional.
h) Fomentar en el alumno el aprendizaje activo y autónomo.
2.2. TIPO/S DE ACTIVIDAD/ES: (marque con una cruz)
Clases:
• Teóricas: X
• Prácticas: X
• Teórico/prácticas:
• De Laboratorio: X
• De campo:
• Seminarios:
2.2.1. Técnicas o Estrategias didácticas:
(Exposición del docente/del alumno, trabajos grupales, estudio independiente, resolución de
situaciones problemáticas, resolución de ejercicios de aplicación, presentación de monografías, de
informes, etc., presentación y desarrollo de un proyecto, etc.)
2.2.1.1.
Clases Teóricas
Las clases teóricas tendrán como objetivo principal la presentación de los conceptos, su análisis
y la descripción de sus principales aplicaciones.
Cada clase tendrá la siguiente estructura:
•
La exposición se iniciará con una introducción donde se plantean los objetivos del tema a
desarrollar, así también como su ubicación en el contexto de la asignatura y relación con
temas desarrollados previamente.
•
Luego se procederá al desarrollo propiamente dicho, donde se exponen los contenidos en
forma metódica y precisa. Esta etapa se acompaña de ejemplos de código fuente y/o
aplicaciones prácticas, de modo de favorecer la comprensión.
•
Finalmente se concluye con una revisión de lo expuesto, resaltando los contenidos
centrales.
2
Universidad Nacional del Nordeste
Facultad de Ciencias Exactas y Naturales y Agrimensura
Para el dictado de las clases se empleará un proyector multimedia para la presentación de
programas y algoritmos característicos, gráficos y/o animaciones, que ayuden al alumno a
comprender el contenido de una forma más amena.
A través de la interacción con el alumno, se verificará el grado de comprensión de los conceptos
vertidos y se tratará de captar su interés por los temas tratados. Para cumplir con esto se
fomentará la discusión y la participación del alumno a través de la presentación de
cuestionamientos y el análisis de ejemplos de programación característicos.
2.2.1.2.
Clases Prácticas
El desarrollo de estas clases es de fundamental importancia para la concreción de los objetivos
de la asignatura, dado que permite al alumno aplicar los conceptos adquiridos para alcanzar la
solución a los problemas planteados.
Estas clases consistirán en la implementación de distintos ejemplos algorítmicos característicos,
presentados en guías de trabajos prácticos, empleando los recursos de la programación
orientada a objetos con la herramienta seleccionada (lenguaje Java en este caso).
En la implementación de estos ejemplos se insistirá en la puesta en práctica de estructuras de
datos y procedimientos adecuados al problema que se resuelve.
Cada clase se desarrollarán de la siguiente manera:
•
Se hará una breve introducción teórica, a fin de refrescar los conceptos adquiridos en la
teoría, necesarios para la resolución de los ejercicios propuestos.
•
Se desarrollará en la pizarra un ejercicio representativo, a modo de ejemplo.
•
Se invitará a los alumnos a resolver los siguientes ejercicios.
•
Se atenderán las consultas ante las dudas que surjan.
•
Luego de un plazo prudencial, se solicitará a un alumno que desarrolle una posible
solución en el pizarrón. Con frecuencia esta acción genera dudas entre los que no
coinciden en la solución hallada, por lo tanto se convierte en una experiencia
enriquecedora, ya que favorece la discusión.
Previo a cada examen parcial, se realizará un repaso de los temas a evaluar, a fin de reforzar los
conceptos fundamentales y resaltar los puntos en que suelen presentarse dificultades, y en los
que se comenten errores con mayor frecuencia.
Posteriormente al examen parcial, se resolverán todos los temas del examen en la pizarra,
destacando los errores detectados.
2.2.1.3.
Laboratorio
En los horarios previstos para esta actividad, la modalidad de trabajo será la siguiente:
•
Los alumnos realizarán en la computadora la ejecución de los ejercicios resueltos,
respondiendo a las preguntas que hará el docente a cargo para determinar la
comprensión de los conceptos aplicados.
•
Los alumnos trabajarán en grupos de 2 ó 3 integrantes (dependiendo de los recursos del
laboratorio y la cantidad de alumnos que la cursan) sobre códigos desarrollados por los
docentes, que contendrán errores (referidos a los conceptos específicos del paradigma
enseñado, de sintaxis, etc), y se solicitará al alumno que los detecte.
Con esta última práctica se pretende:
•
Acercar al alumno al ambiente real del desempeño profesional, en el que con frecuencia
se deben corregir programas, incluso desarrollados por otras personas. Esto permite a la
vez valorar la importancia de seguir ciertas metodologías al momento de la construcción
del software, y de la documentación del mismo.
•
Familiarizarse con los mensajes de error emitidos por el compilador, e interpretarlos.
3
Universidad Nacional del Nordeste
Facultad de Ciencias Exactas y Naturales y Agrimensura
2.2.2. Para el aprendizaje autónomo:
a) Recomendar sitios de interés, relacionados con cada uno de los temas del programa, a los
que el alumno puede acceder para ampliar sus conocimientos.
2.3.
REGIMEN DE PROMOCION:
a) Condiciones para regularizar la materia:
75% de asistencia a las clases prácticas
Aprobación de los dos exámenes parciales con nota mayor o igual a 6.
Aprobación del 80% de cada guía de trabajos prácticos en el laboratorio.
b) Condiciones para aprobar la materia sin examen final (promoción):
Los alumnos regulares cuyo promedio de notas de parciales sea mayor o igual a 7
aprobarán la materia sin examen final. Para el promedio se considerarán los parciales
aprobados en cualquier instancia, no se computan los parciales desaprobados.
c) Condiciones para aprobar la materia con examen final
Los alumnos regulares rinden un examen oral ó escrito sobre los contenidos teóricos del
programa vigente.
Los alumnos libres deben aprobar un examen práctico para luego rendir el examen teórico.
La aprobación del examen práctico es válida sólo para ese turno de examen.
2.4.
2.4.1.
PROGRAMA ANALITICO
CONTENIDO POR UNIDAD:
Tema 1: Introducción a la POO.
Introducción. La crisis del software. Ingeniería del Software. Factores de calidad del software. La
orientación a Objetos. Características de la Programación Orientada a Objetos (POO). Lenguajes
de programación OO. Beneficios de la tecnología de objetos
Tema 2: Concepto de Objetos y Clases - La POO
Concepto de Objeto. Propiedades de los Objetos. Objeto y encapsulación. Interfaces.
Interacciones entre Objetos: Mensajes. Concepto de Clase. Propiedades de una clase: Atributos
y Funciones miembro. Instancias de una clase. Encapsulación – Visibilidad. Implementación de
una clase en Java. Constructores. La Programación Orientada a Objetos. Propiedades del modelo
de objetos: Abstracción, encapsulamiento, modularidad, jerarquía, polimorfismo.
Tema 3: La documentación en el desarrollo del software.
Introducción. Modelado. ¿Qué es un modelo? Lenguaje de modelado. Documentación externa –
UML. Diagramas. Documentación Interna. El estilo de programación - Reglas de buen estilo. Los
Comentarios. Qué documentar? Tipos de Comentarios. Cuándo colocar un comentario. Javadoc.
Nomenclatura. Sangrado
Tema 4: Objeto, Clase, UML y Java: un sentido práctico.
Objeto. Comportamiento. ¿Qué hace? ¿Cómo lo hace? Implementación: método vs. mensaje. El
estado interno. Envío de mensajes. Formato. Métodos. Especificación de un método.
Observadores y mutadores. Objeto y clase. Clase y UML. Envío de mensajes con clases.
Atributos y mensajes de clase. Formas de conocimiento. Seudovariable this.
Tema 5: Clases de utilidad.
4
Universidad Nacional del Nordeste
Facultad de Ciencias Exactas y Naturales y Agrimensura
Colecciones en los lenguajes orientados a objetos. Tipos de estructuras de datos. Colecciones en
java. Jerarquía de Interfaces y de Clases de la Java Collections Framework. Persistencia de
objetos. Separación de la capa de acceso a datos. Persistencia y Bases de Datos Relacionales
(BDR). Bases de datos Orientadas a Objetos (BDOO). Lenguajes orientados a Objeto y la
persistencia. Clases para entrada/salida en Java. Clases para tratamiento de fechas en Java.
Tema 6: Programación guiada por eventos.
Programación secuencial, interactiva y orientada por eventos. Eventos y programación.
Programación Orientada a Eventos y Programación orientada a objetos. POO e interfaz de
usuario. Interfaz gráfica en Java. AWT. Aplicaciones monolíticas y componentes. Tipos de
programa en Java. Aplicaciones en modo consola. Programación en interfaz de usuario gráfica.
Applets y Aplicaciones.
Tema 7: Reutilización: herencia y composición.
Introducción. Subclasificación. Mecanismos de abstracción. Reutilización. Agregación. Herencia
simple. Notación UML. Herencia y reutilización. Mecanismo de respuesta a mensaje: método
lookup. Herencia múltiple. Interfaces. Constructores, destructores, herencia y composición.
Atributos y métodos protegidos.
Tema 8: Polimorfismo.
Ventajas del polimorfismo. Redefinición. Sobrecarga y redefinición. Ligadura dinámica y métodos
virtuales. Clases y métodos abstractos. Notación UML. Clases utilitarias y clases sin estado.
Transformación de tipos en tiempo de ejecución. Transformación automática y explícita.
Información de tipos en tiempo de ejecución.
Tema 9: Tratamiento de problemas en tiempo de ejecución.
Comprobación de estados. Enfoques conservadores. Enfoques optimistas. Errores y excepciones.
Formas de tratar excepciones. Lanzamiento de excepciones. Captura de excepciones:
manejadores. Atributos y métodos en excepciones creadas por el programador. Jerarquía de
excepciones en Java.
Tema 10: Concurrencia y programación orientada a objetos
Conceptos generales. Haciendo varias cosas a la vez. Concurrencia. Procesos e hilos.
Concurrencia y lenguajes de programación. Hilos en Java. Tareas programadas. Prioridades.
2.4.2. BIBLIOGRAFIA:
Apuntes Teóricos Programación IV. Cristina L. Greiner.
Orientacion a Objetos con Java y UML. Carlos Fontela. Nueva Librería. 2004
Cómo programar en Java. 5ta. Ed. Deitel y Deitel. Pearson Educación. 2004.
Programación Orientada a Objetos. Técnicas avanzadas de programación. Carlos
Fontela. Nueva Librería. 2003
Thinking in Java. 2da Ed. Bruce Eckel. Prentice-Hall. 2002.
JAVA. La Guía total del Programador. Sergio Dos Santos. MP Ediciones. 2005
JAVA. Manual de usuario y tutorial. Agustín Froufe. Alfaomega – Ra-ma. 2002.
Programación Orientada a Objetos: Conceptos, Modelado y Codificación en C++.
Luis Joyanes Aguilar. Mc Graw-Hill. 1996
Construcción de software orientado a objetos. Bertrand Meyer. 2da Ed. Prentice-Hall.
1999
Cómo programar en C++. 2da. Ed. Deitel y Deitel. Pearson Educación. 1999.
Aprenda Java como si estuviera en primero. García de Jalón, Rodríguez, Mingo, Imaz,
Brazales, Larzabal, Calleja, García. Colección “Aprenda … como si estuviera en primero”.
5
Universidad Nacional del Nordeste
Facultad de Ciencias Exactas y Naturales y Agrimensura
Java. Un Lenguaje de Programación Multiplataforma para Internet. Castillo, Cobo,
Gómez, Solares. Paraninfo. 1997.
3. PROGRAMA DE EXAMEN:
Bolilla
1
2
3
4
5
6
7
8
9
10
1
2
3
1
3
2
4
3
1
2
Temas
–4–7
–5–8
–6–9
–5–8
–6–9
– 7 – 10
-5–7
–4–9
– 8 – 10
– 6 – 10
4. EFECTOS SOBRE la formación integral del alumno.
(Indicar los beneficios que obtendría el alumno al finalizar el cursado de la materia.)
Se espera que al completar esta materia, el alumno:
•
Comprenda los conceptos más importantes de la programación orientada a objetos.
•
Sea capaz de aplicar estos conceptos en el desarrollo de programas mediante el uso de un
lenguaje orientado a objetos.
•
Maneje con soltura los términos técnicos asociados al paradigma.
6