Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Informatica
Área: Area IV: Pr. y Met. de Des. del Soft.
(Programa del año 2014)
(Programa en trámite de aprobación)
(Programa presentado el 20/03/2014 08:30:56)
I - Oferta Académica
Materia Carrera Plan Año Periodo
PROGRAMACION II TCO.UNIV.EN WEB 08/13 2014 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
PERALTA, MARIO GABRIEL Prof. Responsable P.Adj Exc 40 Hs
BERNARDIS, HERNAN Auxiliar de Práctico A.1ra Simp 10 Hs
CEBALLOS, ARNALDO RAUL Auxiliar de Práctico A.2da Simp 10 Hs
III - Características del Curso
Credito Horario Semanal Tipificación Duración
Teórico/Práctico Teóricas Prácticas de Aula Práct. de lab/ camp/ Resid/ PIP, etc. Total B - Teoria con prácticas de aula y laboratorio Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
2 Hs.  Hs. 2 Hs. 4 Hs. 8 Hs. 1º Cuatrimestre 12/03/2014 19/06/2014 15 120
IV - Fundamentación
Esta materia es el primer paso en el manejo de las tecnologías de programación de aplicaciones Web, proporcionando una
base que permita al alumno arrancar en este novedoso campo. En simultáneo con esta materia los alumnos van a trabajar con
las tecnologías para la realización de páginas Web como HTML, programación de aplicaciones en el cliente (JavaScript) y
estilos de diseño.
La materia Programación II, brindará a los alumnos conceptos de programación avanzados, partiendo de la base que los
alumnos ya han adquirido en las materias previas los conceptos de programación y de los paradigmas clásicos de
programación. Actualmente, el Paradigma Orientado a Objetos ha alcanzado una amplia popularidad debido a las facilidades
que proporciona para la construcción de software. Particularmente, este paradigma se ha utilizado mucho en el desarrollo de
aplicaciones de red a través del uso del lenguaje Java. Por esta razón, la enseñanza del Paradigma Orientado a Objetos y de
Java se considera esencial en toda carrera de orientación informática.
Otro lenguaje que permite seguir progresando al estudiante, en características avanzadas de los distintos paradigmas, es
Python. Con él es posible escribir programas que usen el paradigma imperativo como así también el orientado a objetos y el
funcional.
Python es un lenguaje ampliamente usado para el desarrollo de aplicaciones de red y proporciona librerías que posibilitan la
construcción de sistemas de forma rápida. Lo que favorecerá la inserción laboral del técnico web.
Con Java y Python es posible implementar mecanismos en los que se basa el comercio electrónico como la gestión de un sitio
Web y los fundamentos de la seguridad en la red.
V - Objetivos / Resultados de Aprendizaje
Este curso tiene los siguientes objetivos:
• Introducir a los alumnos en los conceptos del Paradigma de Programación Orientado a Objetos.
• Permitir desarrollar a los alumnos aplicaciones de uso general en: JAVA y PYTHON.
• Facilitar a los estudiantes el desarrollo de sus habilidades de programación sobre interfaz gráfica (GUI).
• Proveer los conceptos y herramientas necesarias para que el alumno pueda desarrollar aplicaciones rápidas.
VI - Contenidos
Unidad 1: Paradigma de Programación Orientada a Objetos: POO.
Introducción. Génesis de la Programación Orientada a Objetos: La Vía de la Simulación. La Vía de la Ingeniería de Software.
Abstracción de Datos e Información Oculta. El Concepto de Objeto. El Encapsulamiento: Propiedad Fundamental. Mensajes.
Objetos en Programación Orientada a Objetos: Instancias y Clases. Clases e Instancias.

Unidad 2: POO: Clases.
Definición de Clases. Creación de Clases. Requisitos Iniciales. Definición de la Estructura. Definición del Comportamiento.
Constructores. Métodos de Instancia. La Referencia this. Paquetes e Importación de Clases. Reglas de Accesibilidad a una
Clase. Reglas de Acceso a Variables y Métodos de Instancia. Composición en la Definición de una Clase. Métodos y
Variables de Clase. Jerarquías de Clases. El Mecanismo de la Herencia. Algoritmo de Búsqueda de Métodos. Superposición
de Métodos y Variables. Modificadores y Redefinición de Métodos. Clases sin Subclases. Clases y Constructores. Creación
de Clases Vía Herencia. Compatibilidad entre Clases y Subclases. Polimorfismo.

Unidad 3: El lenguaje de Programación JAVA.
JAVA. Breve historia del lenguaje Java. Características del lenguaje Java. Configuración del entorno de trabajo en lenguaje
Java. Sintaxis y semántica de Java. Definición de variables. Visibilidad y Vida de las variables. Tipos de dato primitivos.
Conversión de tipos. Uso de Operadores: Aritméticos, Asignación, instanceof, condicional, incrementales, relacionales,
lógicos, concatenación de caracteres. Precedencia entre operadores. La clase String. Integer, Float y Number. Wrappers.
Estructuras de control de flujo: Bifurcación if else, Bifurcación switch, Bucle while, Bucle for, Bucle do while, Sentencia
break, Sentencia continue, Comentarios en Java. Caracteres especiales.

Unidad 4: Java y la Programación Orientada a Objetos.
Programación Orientada a Objetos y Java. Ejemplos de construcción de una clase en Java. Desarrollo de ejemplos en
laboratorio. Clases y Objetos en Java. Atributos. Métodos en Java. Pasaje de Parámetros. Encapsulamiento. Ejemplos en
laboratorio. Control de acceso. Constructores. Herencia en Java. Sub-clases y super-clases. Herencia múltiple; ejemplos en
Java. Redefinición de métodos heredados. Accesibilidad a paquetes, clases o interfaces, variables, Polimorfismo. Ligadura
Dinámica. Clase Abstracta. Abstracción en Java. Interfaz; ejemplos en Java. Métodos Abstractos. Paquetes. Relaciones entre
paquetes. Listas en Java.

Unidad 5: Manejo de Excepciones. Applets. AWT.
Excepciones. Bloques try, catch y finally. Tipos de Excepciones. Unchecked Exceptions. Checked Exceptions. La sentencia
throw. Creación de excepciones propias. La clase Exception como superclase. La keyword throws. Threads. Applets. AWT.

Unidad 6: Programación en Python.
Introducción a Python. Estructura de un programa Python. Variables, sentencias, control de flujo de ejecución en Python.
Funciones. Ambientes de ejecución Python. Manejo de Excepciones en Python. Librerías Python.

VII - Plan de Trabajos Prácticos
Práctico 1: Paradigma de Programación Orientada a Objetos: Conceptos y términos.
Práctico 2: El lenguaje de Programación JAVA.
Práctico 3: POO: Clase – Objetos - Métodos.
Práctico 4: POO: Herencia - Polimorfismo.
Práctico 5: Manejo de Excepciones en JAVA.
Práctico 6: Applets en JAVA.
Práctico 7: AWT.
Práctico 8: Programación en Python.
VIII - Regimen de Aprobación
Condiciones de regularización:
- Presentación y aprobación de los proyectos de práctico de máquina.
- Aprobar dos exámenes parciales o sus respectivas recuperaciones, con nota mayor o igual que seis para su regularización y tener el 60% de asistencia a clases.
Se otorga, tal como lo expresa la reglamentación vigente, una recuperación por trabajo solamente a aquellos alumnos que
hayan acreditado tal condición en Sección Alumnos.
Condiciones de aprobación:
- Por promoción. El alumno debe contar con las condiciones de regularización, con una nota de exámenes parciales mayor o
igual a 7 (siete) y tener el 80% de asistencia a clases, ó,
- Por examen final. El examen puede ser de carácter Oral o Escrito.
Exámenes Libres: Según lo dispuesto por el Art. 27 de Ord. 13/03 CS.
IX - Bibliografía Básica
[1] Rossum, G; Drake, F. “Python Tutorial”. Python Software Foundation, version en español.
[2] Material de la Cátedra “Programación Orientada a Objetos” del Prof. Mario Martins. Universidade do Minho.
[3] http://sim.di.uminho.pt/ensino2.php3?seccao=geral&id=90.
[4] Eckel, B. “Thinking in Java”. Versión en español. President, Mind View Inc.
[5] Javas Sun Documentation. http://java.sun.com/reference/docs/index.html.
[6] Aprenda Java como si estuviera en primero. Javier García de Jalón, José Ignacio Rodríguez, Iñigo Mingo, Aitor Imaz, Alfonso Brazales, Alberto Larzabal, Jesús Calleja, Jon García. Escuela Superior de Ingenieros Industriales de San Sebastián, UNIVERSIDAD DE NAVARRA.
[7] Material proporcionado por la cátedra.
X - Bibliografia Complementaria
[1] Meyer, B. “Object Oriented Software Construction”. Second Edition. Pretince Hall. 1997.
[2] Niemeyer, P; Knudsen, J. “Learning Java”. Editorial: O’Really. ISBN: 1-56592-718-4. 722 páginas.
[3] Norton, P; Samuel, A. Aitel, D; et.al. “Beginning Python”. Wiley Publishing, Inc. 2005. ISBN-10: 0-7645-9654-3.
[4] Ascher, D; Lutz, M. “Learning Python”. O'Reilly Second Edition. 2004. ISBN: 0-596-00281-5.
[5] The Java Tutorial. http://java.sun.com/docs/books/tutorial/index.html.
XI - Resumen de Objetivos
Al finalizar la asignatura el alumno debe haber asimilado los conceptos básicos de la programación orientada a objetos, y de las bases para el desarrollo de aplicaciones en JAVA y PYTHON.
XII - Resumen del Programa
Unidad 1: Paradigma de Programación Orientada a Objetos: POO.
Unidad 2: POO: Clases.
Unidad 3: El lenguaje de Programación JAVA.
Unidad 4: Java y la Programación Orientada a Objetos.
Unidad 5: Manejo de Excepciones. Applets. AWT.
Unidad 6: Programación en Python.
XIII - Imprevistos
 
XIV - Otros