Download universidad mayor de san simón

Document related concepts
no text concepts found
Transcript
UNIVERSIDAD MAYOR DE SAN SIMÓN
FACULTAD DE CIENCIAS Y TECNOLOGÍA
GESTIÓN I/2010
PLAN GLOBAL
I. IDENTIFICACIÓN.
ASIGNATURA: Introducción a la Programación
SIGLA: INF – 135
COD_SIS: 2010010
NIVEL(AÑO/SEMESTRE): Primer semestre
PRE-REQUISITOS:
1.
ÁREAS DE COORDINACIÓN CURRICULAR
VERTICAL
HORIZONTAL
Elementos de programación Calculo I
y estructuras de datos
Álgebra I
Métodos técnicas y taller Lógica
de programación
DÍA
Miércoles
Jueves
Sábado
HORARIO
AULA
9:45-11:15 690B
18:45-20:15 690B
9:45-11:15
NOMBRE DEL DOCENTE: M.Sc. Lic. Victor Hugo Montaño Quiroga
DIRECCIÓN: Dpto. de Informática y Sistemas
TELEFONO: 4233719
E-MAIL: [email protected]
II. JUSTIFICACIÓN GENERAL.
La materia de Introducción a la Programación es fundamental en la formación de un
futuro Licenciado en Informática y en Ingeniería de Sistemas ya que en esta
materia :
- Se dan las primeras pautas para resolver problemas pequeños con la ayuda de la
tecnología, lo cual le va formando su capacidad de innovar en la solución
creativa a problemas aplicando técnicas y métodos adecuados.
- Se fomenta la investigación, ya que para poder adquirir práctica el futuro
Licenciado en Informática y en Ingeniería de Sistemas deberá munirse de
información adicional por su propia cuenta.
- Se da mucha importancia a la habilidad que tienen para resolver prácticas en la
computadora, lo cual cubre en una pequeña parte la capacidad que en el futuro
tendrá para llevar a cabo proyectos de software.
- Se toma como herramienta de aplicación un lenguaje de programación de alto
nivel para realizar las practicas en computadora,
respondiendo así a la
conciencia de cambio, desde el punto de vista tanto del docente como del
alumno.
- Se explota y se da la importancia a la lógica en la resolución de problemas.
En resumen la materia es importante en las Carreras de Informática e Ingeniería de
Sistemas ya que introduce los primeros conceptos y herramientas básicas para que
el alumno pueda plantear soluciones a problemas diversos a través de programas.
Esto es fundamental para un profesional del área.
1
III. PROPÓSITOS GENERALES.
El presente plan propone introducir los elementos básicos de programación y
conceptos de programación orientada a objetos. Para ello se hará bastante énfasis
en la resolución de problemas, haciendo uso de un lenguaje de programación de alto
nivel.
Tomando en cuenta esto se espera que:
- Los estudiantes apliquen
razonamiento lógico para definir y resolver
problemas.
- Los estudiantes presenten soluciones correctas a pequeños problemas.
- Los estudiantes utilicen los elementos básicos de programación para la
resolución de problemas.
- Los estudiantes utilicen de forma correcta la herramienta de programación.
- Los estudiantes adquieran práctica en la solución de problemas,
mediante la
utilización adecuada de variables, constantes, estructuras de control y
estructuras de datos.
- Los estudiantes adquieran práctica en la solución de problemas, mediante la
utilización adecuada de clases y objetos.
- Los estudiantes enfrenten y tomen interés en lo que es la investigación
IV. OBJETIVOS GENERALES.
El
-
alumno al terminar el semestre ser capaz de:
Plantear soluciones correctas a pequeños problemas
Escoger tipos de datos adecuados
Escoger estructuras de control adecuadas
Escoger estructuras de datos adecuadas
Distinguir entre datos temporales y persistentes
Realizar algoritmos para resolución de problemas
Programar soluciones, utilizando de manera correcta la sintaxis del lenguaje de
programación
Programar soluciones utilizando clases y objetos.
Asumir el reto a la investigación de un cierto tópico
V. ESTRUCTURACIÓN EN UNIDADES DIDÁCTICAS Y SU DESCRIPCIÓN.
NOMBRE DE LA UNDAD (1): Conceptos básicos de programación
DURACIÓN DE LA UNIDAD EN PERIODOS ACADÉMICOS: DIEZ TEORIA – CUATRO PRACTICA
OBJETIVOS DE LA UNIDAD:
El alumno será capaz de:
1. Reconocer los componentes fundamentales de toda computadora
2. Resolver problemas sencillos de forma correcta, aplicando algoritmos
3. Representar algoritmos mediante pseudo código y notación gráfica
4. Realizar pruebas de la correctitud de los algoritmos mediante pruebas
escritorio
2
de
CONTENIDO:
- Tema 1. Introducción a la computación.
Componentes de una computadora. Hardware/Software. Ambientes de programación.
Lenguajes de alto nivel y bajo nivel. Concepto de Intérprete y Compilador.
Máquina virtual. Programas.
- Tema 2. Algoritmos.
Concepto de algoritmo. Robustez de un algoritmo. Correctitud de un algoritmo.
Completitud de un algoritmo. Eficiencia de un algoritmo. Aplicar concepto de
algoritmos en un
ejemplo. Resolución de problemas pequeños utilizando
algoritmos. Prueba de escritorio.
- Tema 3. Entrada / Salida
Principios de Entrada / Salida. Obteniendo datos. Mostrando resultados
- Tema 4. Principios de programación.
Variables. Declaración de variables. Nombre de variable. Tipo de una
variable. Constantes. Declaración de constantes. Nombre de constante. Tipo de
una constante. Expresiones. Operadores. Prioridad de operadores. Tipos.
Comentarios.
- Tema 5. ¿Qué es un programa?
Estructura de un programa. Un programa sencillo. Asignación. Mecanismos de
salida. Mecanismos de entrada.
METODOLOGÍA
DE LA
ENSEÑANZA:
TÉCNICAS PREDOMINANTES PROPUESTAS PARA LAUNIDAD:
1. Exposición dialogada que se realizará con la problematización
del tema a tocar y para poder generalizar conceptos se harán
metáforas.
2. En el Tema 2 se resolverán ejercicios y problemas para que el
alumno adquiera destreza en el manejo de los conceptos
involucrados en los temas mencionados.
3. Planteamiento de tareas de investigación referente a lo que son
expresiones, operadores.
EVALUACIÓN DE LA UNIDAD:
1. Se
realizaran
evaluaciones
formativas
con
preguntas
incidentales.
2. Se motivará la participación de alumnos en clase para resolver
ejercicios, por otro lado se contará con el apoyo de clases
prácticas en laboratorio con el objetivo de fomentar al
estudiante para el uso de la computadora.
BIBLIOGRAFÍA ESPECIFICA DE LA UNIDAD:
1. [Algorithms 90] Thomas H. Cormen, Charles E. Leiserson y Ronald
L. Rivest. Introduction to Algorithms. MIT Press, 1990.
2. [BG 87] Silvia Braunstein y Alicia Gioia. Introducción a la
Programación y a las Estructuras de Datos. Editorial
Universitaria de Buenos Aires, 1987.
3. [Bishop 99] Judy Bishop. Java: Fundamentos de Programación.
Addison-Wesley, 1999.
4. [Deitels 97] H.M. Deitel y P.J. Deitel. Como Programar en Java.
Segunda Edición. Prentice-Hall, 1998.
5. [Java2 98] Ken Arnold y James Gosling. The Java Programming
Language. Second Edition. Addison-Wesley, 1998.
6. [Lecca 11] Eduardo Raffo Lecca. análisis y Diseño de
Algoritmos.
3
NOMBRE DE LA UNDAD (2): Estructuras de Control
DURACIÓN DE LA UNIDAD EN PERIODOS ACADÉMICOS: DIEZ TEORIA – SEIS PRACTICA
OBJETIVOS DE LA UNIDAD:
El alumno será capaz de:
1. Aplicar estructuras condicionales simples, en el planteamiento de soluciones a
problemas que requieren procesos de selección
2. Aplicar estructuras condicionales anidadas, para resolver problemas que
necesitan de procesos de selección múltiple
3. Aplicar estructuras iterativas, en problemas en los cuales el límite de veces
que se repite un proceso está acotado por un intervalo discreto dado por el
usuario
4. Aplicar estructuras iterativas, en problemas que tienen
el límite de la
iteración especificado mediante una condición
5. Distinguir la aplicación de iteraciones de 0 o más, ó 1 o más veces
6. Programar soluciones a problemas, mediante la utilización adecuada de las
estructuras de control
7. Realizar investigación sobre la sentencia
CONTENIDO:
- Tema 6. Estructuras de programación condicionales o de selección.
La sentencia if-then-else|. Orden de ejecución de una estructura condicional.
Estructuras condicionales simples. Estructuras
condicionales anidadas.
Estructuras de selección múltiple.
Resolución de ejercicios, mediante
programas, que hacen uso de estructuras condicionales simples y/o anidadas
- Tema 7. Estructuras de programación iterativas.
Iteración con límite desconocido o determinado por el usuario. Sentencia while.
Orden de ejecución de la sentencia while. Sentencia do-while. Orden de
ejecución de la sentencia do-while. Iteración con límite conocido o dado en el
programa. Sentencia for. Orden de ejecución de la sentencia for. Resolución de
problemas aplicando las estructuras de control adecuadas para el problema.
METODOLOGÍA
DE LA
ENSEÑANZA:
TÉCNICAS PREDOMINANTES PROPUESTAS PARA LAUNIDAD:
1. Exposición dialogada, introduciendo los conceptos asociándolos
con aspectos de la vida cotidiana. Gran parte del contenido de
esta unidad se dedica al planteo de ejercicios y problemas; su
análisis y resolución, motivando al estudiante a ser partícipe
en la búsqueda de soluciones a los mismos.
2. Planteamiento de tareas de investigación referente a lo que es
la sentencia condicional múltiple (switch).
3. Adicionalmente se les asignan prácticas para que resuelvan en
computadora.
EVALUACIÓN DE LA UNIDAD:
1. Se
realizarán
evaluaciones
formativas
con
preguntas
incidentales.
2. Se incentivará la participación de alumnos en clase para
resolver ejercicios, por otro lado se contará con el apoyo de
clases prácticas en laboratorio con el objetivo de motivar al
estudiante para el uso de la computadora.
4
BIBLIOGRAFÍA ESPECIFICA DE LA UNIDAD:
1. [BG 87] Silvia Braunstein y Alicia Gioia. Introducción a la
Programación y a las Estructuras de Datos. Editorial
Universitaria de Buenos Aires, 1987.
2. [Bishop 99] Judy Bishop. Java: Fundamentos de Programación.
Addison-Wesley, 1999.
3. [Blanco 97] Leticia Blanco. Guías prácticas: Introducción a la
Programación. 1997.
4. [Deitels 97] H.M. Deitel y P.J. Deitel. Como Programar en Java.
Segunda Edición. Prentice-Hall, 1998.
5. [EJava 97] Patrick Niemeyer y Joshua Peck. Exploring Java.
O'Reilly & Associates, 1997.
6. [Java2 98] Ken Arnold y James Gosling. The Java Programming
Language. Second Edition. Addison-Wesley, 1998.
NOMBRE DE LA UNDAD (3): Estrategias de Estructuración
DURACIÓN DE LA UNIDAD EN PERIODOS ACADÉMICOS: OCHO TEORIA – CUATRO PRACTICA
OBJETIVOS DE LA UNIDAD:
El alumno será capaz de:
1. Aprender las estrategias para estructurar programas: dividir para conquistar y
refinamiento sucesivo
2. Determinar pre y pos condiciones de un subproceso
3. Determinar entradas y salidas de un subproceso
CONTENIDO:
- Tema 8. Subprogramas.
Definición. Funciones
procedimientos. Parámetros. Pre y pos condiciones.
Entradas
Salidas de un subproceso. Estrategias de división: dividir para
conquistar, refinamiento sucesivo. Bibliotecas. Paquetes.
METODOLOGÍA
DE LA
ENSEÑANZA:
TÉCNICAS PREDOMINANTES PROPUESTAS PARA LAUNIDAD:
1. Exposición dialogada que se realizará con la problematización
del tema a tocar y para poder generalizar conceptos se harán
metáforas.
2. Planteamiento de tareas de investigación referente a los
parámetros de entrada y salida.
EVALUACIÓN DE LA UNIDAD:
1. Se
realizaran
evaluaciones
formativas
con
preguntas
incidentales.
2. Se motivará la participación de alumnos en clase para resolver
ejercicios, por otro lado se contará con el apoyo de clases
prácticas en laboratorio con el objetivo de fomentar el uso de
la computadora en el estudiante.
5
BIBLIOGRAFÍA ESPECIFICA DE LA UNIDAD:
1. [Algorithms 90] Thomas H. Cormen, Charles E. Leiserson y Ronald
L. Rivest. Introduction to Algorithms. MIT Press, 1990.
2. [BG 87] Silvia Braunstein y Alicia Gioia. Introducción a la
Programación
y
a
las
Estructuras
de
Datos.
Editorial
Universitaria de Buenos Aires, 1987.
3. [Bishop 99] Judy Bishop. Java: Fundamentos de Programación.
Addison-Wesley, 1999.
4. [Deitels 97] H.M. Deitel y P.J. Deitel. Como Programar en Java.
Segunda Edición. Prentice-Hall, 1998.
5. [Java2 98] Ken Arnold y James Gosling. The Java Programming
Language. Second Edition. Addison-Wesley, 1998.
6. [Lecca 11] Eduardo Raffo Lecca. análisis y Diseño de
Algoritmos.
NOMBRE DE LA UNDAD (4): Programación orientada a objetos: conceptos básicos
DURACIÓN DE LA UNIDAD EN PERIODOS ACADÉMICOS: CATORCE TEORIA – OCHO PRACTICA
OBJETIVOS DE LA UNIDAD:
El alumno será capaz de:
1. Identificar un dato abstracto (abstracción de datos)
2. Identificar propiedades (atributos) de un tipo de dato abstracto (objeto)
3. Identificar acciones (métodos) de un tipo de dato abstracto (objeto)
4. Implementar el tipo de dato abstracto en términos de clases y objetos del
lenguaje de programación elegido para la materia
5. Programar soluciones utilizando el paradigma orientado a objetos
CONTENIDO:
- Tema 9. Introducción a la Programación Orientada a Objetos.
Definición. Objeto. Abstracción. Clase, atributo, métodos. Definición.
de un método. Parámetros de un método.
- Tema 10. Propiedades básicas de la programación Orientada a Objetos.
Encapsulamiento. Interfaces de un objeto. Polimorfismo: sobrecarga
Tipo
TÉCNICAS PREDOMINANTES PROPUESTAS PARA LAUNIDAD:
1. Exposición dialogada que se realizará con la problematización
del tema a tocar y para poder generalizar conceptos se harán
metáforas.
2. Se fomentara la reflexión y crítica a lo aprendido.
METODOLOGÍA
DE LA
ENSEÑANZA:
EVALUACIÓN DE LA UNIDAD:
1. Se
realizarán
evaluaciones
formativas
con
preguntas
incidentales.
2. Se motivará la participación de alumnos en clase para resolver
ejercicios. El objetivo es de verificar que los estudiantes
apliquen los conceptos fundamentales a programas y obtengan la
practica necesaria para proseguir con el resto del contenido,
asimismo que los estudiantes puedan aprendan de sus aciertos y
de sus posibles errores.
6
BIBLIOGRAFÍA ESPECIFICA DE LA UNIDAD:
1. [Bishop 99] Judy Bishop. Java: Fundamentos de Programación.
Addison-Wesley, 1999.
2. [Deitels 97] H.M. Deitel y P.J. Deitel. Como Programar en Java.
Segunda Edición. Prentice-Hall, 1998.
3. [Java2 98] Ken Arnold y James Gosling. The Java Programming
Language. Second Edition. Addison-Wesley, 1998.
NOMBRE DE LA UNDAD (5): Estructuras de datos básicas
DURACIÓN DE LA UNIDAD EN PERIODOS ACADÉMICOS: CUATRO TEORIA – DOS PRACTICA
OBJETIVOS DE LA UNIDAD:
El alumno será capaz de:
1. Aplicar arreglos para solucionar problemas, identificando el tipo
de datos
adecuado que manipulara el arreglo
2. Programar ordenamiento de arreglos, dado un método específico
3. Programar búsquedas en arreglos, dada una técnica específica
4. Aplicar matrices para solucionar problemas
5. Programar cadenas de tamaño fijo (estáticas)
6. Programar soluciones a problemas, haciendo uso adecuado de las estructuras de
datos
CONTENIDO:
- Tema 11. Arreglos.
Concepto de Arreglo. Acceso a un elemento específico de un arreglo. Recorrido
de los elementos de un arreglo. Técnicas de búsqueda de elementos del arreglo.
Métodos de ordenamiento de elementos del arreglo. Matrices. Acceso a elementos
de una matriz. Resolución de
problemas aplicando arreglos en programas.
Cadenas.
TÉCNICAS PREDOMINANTES PROPUESTAS PARA LAUNIDAD:
1. Exposición dialogada, cada tema que se toca en esta unidad
requiere
de
mucha
aplicación
de
los
conceptos
en
la
programación de soluciones a problemas, es por esa razón que se
da mucho énfasis a la resolución de problemas e implementación
de programas que hagan uso de los conceptos vistos en esta
unidad.
METODOLOGÍA
2. Planteamiento
de
tareas
de
investigación
referente
a
DE LA
bibliotecas.
ENSEÑANZA:
3. Al igual que en la anterior unidad las prácticas para realizar
programas
en
computadora
son
fundamentales,
para
un
aprovechamiento óptimo del alumno.
EVALUACIÓN DE LA UNIDAD:
1. Se
realizarán
evaluaciones
formativas
con
preguntas
incidentales.
2. Se incentivará la participación de alumnos en clase para
resolver ejercicios, por otro lado se contara con el apoyo de
clases prácticas en laboratorio con el objetivo de motivar al
estudiante para el uso de la computadora.
7
BIBLIOGRAFÍA ESPECIFICA DE LA UNIDAD:
1. [BG 87] Silvia Braunstein y Alicia Gioia. Introducción a la
Programación
y
a
las
Estructuras
de
Datos.
Editorial
Universitaria de Buenos Aires, 1987.
2. [Bishop 99] Judy Bishop. Java: Fundamentos de Programación.
Addison-Wesley, 1999.
3. [Blanco 97] Leticia Blanco. Guías prácticas: Introducción a la
Programación. 1997.
4. [Deitels 97] H.M. Deitel y P.J. Deitel. Como Programar en Java.
Segunda Edición. Prentice-Hall, 1998.
5. [EJava 97] Patrick Niemeyer y Joshua Peck. Exploring Java.
O'Reilly & Associates, 1997.
6. [Java2 98] Ken Arnold y James Gosling. The Java Programming
Language. Second Edition. Addison-Wesley, 1998.
7. [Lecca 11] Eduardo Raffo Lecca. análisis y Diseño de
Algoritmos.
NOMBRE DE LA UNDAD (6): Programación orientada a objetos: conceptos avanzados
DURACIÓN DE LA UNIDAD EN PERIODOS ACADÉMICOS: VEINTIDOS TEORIA – DIEZ PRACTICA
OBJETIVOS DE LA UNIDAD:
El alumno será capaz de:
1. Definir polimorfismo
2. Definir métodos sobrecargados
3. Definir la herencia
4. Definir métodos sobreescritos
5. Definir métodos para serializar objetos
6. Definir métodos para hacer persistentes a los objetos
7. Programar soluciones utilizando el paradigma orientado a objetos
CONTENIDO:
- Tema 12. Herencia
Definición. Tipos de herencia: simple y múltiple. Polimorfismo: sobreescritura
TÉCNICAS PREDOMINANTES PROPUESTAS PARA LAUNIDAD:
1. Exposición dialogada con la ayuda de transparencias para
ilustrar el concepto de herencia e interfaces.
2. Resolución de ejercicios y problemas que involucran el uso de
herencia y herencia múltiple.
3. Prácticas en grupos, cada clase después de dar los conceptos y
resolver problemas, se planteará problemas a los grupos para
METODOLOGÍA
que en franca discusión entre ellos puedan proponer, discutir y
DE LA
argumentar soluciones.
ENSEÑANZA:
4. Como en las anteriores unidades se plantearan prácticas.
EVALUACIÓN DE LA UNIDAD:
1. Preguntas incidentales.
2. La evaluación se basará en la solución que los grupos
encuentren cada clase a los problemas planteados, como siempre
el criterio de evaluación es la destreza que adquieran al
practicar con lenguaje de programación elegido como herramienta
de la materia, como también la destreza para resolver problemas
a través de programas.
BIBLIOGRAFÍA ESPECIFICA DE LA UNIDAD:
8
1. [Bishop 99] Judy Bishop. Java: Fundamentos de Programación.
Addison-Wesley, 1999.
2. [Deitels 97] H.M. Deitel y P.J. Deitel. Como Programar en Java.
Segunda Edición. Prentice-Hall, 1998.
3. [EJava 97] Patrick Niemeyer y Joshua Peck. Exploring Java.
O'Reilly & Associates, 1997.
4. [Java2 98] Ken Arnold y James Gosling. The Java Programming
Language. Second Edition. Addison-Wesley, 1998.
VI. EVALUACIÓN.
Durante todo el semestre se realizaran dos exámenes parciales y un examen final,
estas pruebas tendrán un valor de 100 puntos. Una primera opción de obtener la
nota final es promediando las dos notas de parciales, la nota mínima de aprobación
es de 51.
En una segunda opción para obtener la nota final, el estudiante podrá optar por el
examen final sobre 100 puntos.
Si el estudiante no aprueba en las dos primeras opciones tiene derecho a un examen
de segunda instancia, según se establece en el reglamento de evaluación
estudiantil, cumpliendo con las restricciones del mismo; es decir pueden rendir
examen aquellos estudiantes que tengan un promedio en los dos parciales mayor o
igual a 26 y siempre y cuando no haya dado más de dos exámenes de segunda
instancia.
El examen de segunda instancia se basa en el mismo contenido del examen final
VII. CRONOGRAMA.
Primer Parcial
Segundo parcial
Final
Segunda Instancia
VIII. DISPOSICIONES GENERALES.
La tolerancia de retraso para el ingreso al aula, tanto de los alumnos como del
docente, es de 10 minutos. Se espera que con esta medida se fomente la asistencia
puntual a las clases.
Se organizaran grupos de trabajo en aula para la Unidad 6, esta actividad estará
condicionada a la cantidad de alumnos que asistan, es decir si existen demasiados,
no se podrá realizar.
Las prácticas son personales/grupales y deben ser entregadas en disquetes. La
definición de la modalidad personal/grupal, se establecerá de forma oportuna de
acuerdo al trabajo.
Cualquier tipo de fraude en los exámenes es motivo automático de reprobación de la
materia en el semestre en curso.
El estudiante debe dar los exámenes en lo cursos correspondientes a su grupo y
docente, previa presentación de un documento idóneo que acredite su identidad.
Las herramientas de apoyo en esta materia son: Bluej y lenguaje de programación
Java. Se sugiere el uso de la versión libre Java 2 SDK, Standard Edition, versión
1.4.
9
Material de estudio en forma electrónica
Información adicional sobre la materia se puede encontrar en la página web de la
materia, http://www.memi.umss.edu.bo/progra. Por ejemplo: ejercicios adicionales,
herramientas y software, enlaces interesantes con más material para aprender a
programar y el lenguaje de programación que se enseña, noticias sobre fechas
importantes, notas, etc.
Se sugiere el uso del foro de discusión técnico, acerca de los temas que se tocan
en la materia o los ejercicios. más información sobre este foro se puede encontrar
en la página web de la materia, bajo el enlace “Lista de discusión”.
Finalmente también se encuentra a disposición del estudiante un CD que contiene un
compilador para el lenguaje de programación usado y ambientes y editores para
introducir los programas. Preguntar sobre el CD en la secretaría de la Carrera.
IX. BIBLIOGRAFÍA GENERAL.
1. [Algorithms 90] Thomas H. Cormen, Charles E. Leiserson y Ronald L. Rivest.
Introduction to Algorithms. MIT Press, 1990.
2. [BG 87] Silvia Braunstein y Alicia Gioia. Introducción a la Programación y a
las Estructuras de Datos. Editorial Universitaria de Buenos Aires, 1987.
3. [Bishop 99] Judy Bishop. Java: Fundamentos de Programación. Addison-Wesley,
1999.
4. [Deitels 97] H.M. Deitel y P.J. Deitel. Como Programar en Java. Segunda
Edición. Prentice-Hall, 1998.
5. [EJava 97] Patrick Niemeyer y Joshua Peck. Exploring Java. O'Reilly &
Associates, 1997.
6. [Flanagan 99] David Flanagan. Java in a Nutshell. Third Edition. O'Reilly &
Associates, 1999.
7. [Java2 98] Ken Arnold y James Gosling. The Java Programming Language. Second
Edition. Addison-Wesley, 1998.
8. [LangSpec 00] James Gosling, Bill Joy, Guy Steele and Gilad Bracha. The Java
Language Specification. Second Edition. Addison-Wesley, 2000.
9. [Lecca 11] Eduardo Raffo Lecca. análisis y Diseño de Algoritmos.
10