Está en la página 1de 7

UNIVERSIDAD MAYOR DE SAN SIMÓN

FACULTAD DE CIENCIAS Y TECNOLOGÍA

DEPARTAMENTO DE INFORMÁTICA Y SISTEMAS

PLAN GLOBAL

I. DATOS DE IDENTIFICACIÓN

Nombre de la materia: Elementos de Programación y Estructura de Datos


Código: 2010003
Grupo: 1, 2, 3, 4, 5 y 6
Carga horaria: 4 periodos teóricos, 2 periodos practica
Materias relacionadas Introducción a la Programación Métodos, Técnicas y
Taller de Programación
Docentes: Rosemary Torrico Bascopé
Ma. Leticia Blanco Coca
Vladimir Costas Jauregui
Helder Fernandez
Teléfono: 4233719
Correo electrónico: leticiablanco.c@fcyt.umss.edu.bo
vladimircostas.j@fcyt.umss.edu.bo
rosemarytb@umss.edu.bo
helderfernandez@fcyt.umss.edu.bo

II. JUSTIFICACIÓN

Después de tener los conocimientos básicos de programación, se necesita contar con más
elementos que ayuden a un profesional del área de ciencias de la computación, a resolver
problemas de forma elegante, eficiente y correcta. La finalidad de este curso es brindar al
estudiante un conjunto de conceptos que identifican elementos importantes que enriquecen la
metodología de programación, es importante también considerar las distintas estructuras que
existen para representar los datos. La materia introduce a los estudiantes la estrategia “divide y
conquistar” para la solución de problemas, que permiten tener diseños de problemas complejos
de forma sencilla y elegante. Las capacidades de abstracción de datos es reforzada en esta
materia, al introducir conceptos de niveles de abstracción tanto en estructura (jerarquías de
supertipo - subtipo) como de tipo (genéricas); lo que permite al estudiante introducir mayores
elementos de diseño a la hora de presentar sus soluciones, y por ende mayores herramientas de
programación que permiten operativizar sus propuestas de solución. Un otro aspecto
importante es la administración de datos, por lo que se estudian estructuras de datos,
añadiendo más conocimientos sobre la forma de programar soluciones, los mismos que son una
antesala a estructuras de datos más complejas que se utilizan en la resolución de problemas
más complejos.
El presente plan propone introducir los conceptos de: programación orientada al objeto
considerando genéricas, técnicas de programación, recursión y estructuras de datos. Al finalizar
se espera que los estudiantes presenten soluciones correctas a pequeños problemas, utilizando
las estructuras de datos adecuadas y considerando nuevos elementos de programación que le
permitan tener una solución elegante y eficiente.
III. PROPÓSITO GENERAL

El propósito de esta materia es:


 Reforzar conocimientos de programación Orientada a Objetos, completando los temas
de Herencia.
 Introducir una técnica nueva de resolución de problemas.
 Desarrollar el pensamiento recursivo.
 Conceptualizar, analizar, diseñar, implementar y utilizar estructuras de datos.

IV. OBJETIVOS

Los objetivos de esta materia son:


 Conseguir habilidades para enfrentar la solución de problemas utilizando la recursión
como estrategia de solución.
 Conseguir habilidades para enfrentar la solución de problemas utilizando programación
orientada a objetos
 Reforzar conceptos de abstracción de datos.
 Introducir la abstracción de tipos: genéricas.
 Introducir a las estructuras de datos, de forma conceptual y práctica.
 Aplicar estructuras de datos adecuadas para la resolución de problemas.
 Introducir concepto de administración dinámica de memoria e implementar estructuras
de datos en base a enlaces

V. SELECCION Y ORGANIZACIÓN DE CONTENIDOS

Nombre de la unidad 1: PROGRAMACION ORIENTADA A OBJETOS


Duración de la unidad en periodos académicos: 12
Objetivo de la unidad
Al final de la unidad, el estudiante tendrá un marco general de la POO, retomando lo aprendido
en Introducción a la Programación y fortaleciendo conceptos de herencia y manejo de flujos de
IO.
Contenido
1.1 Conceptos de programación orientada a objetos.
1.2 Polimorfismo
1.3 Genericidad - Templates
1.4 Propiedades de datos abstractos
1.5 Generalización: estructural y de facilidades - herencia. Clases abstractas, interfaces
1.6 Flujos de entrada/salida
Técnicas predominantes de la Unidad
Clases magistrales ilustrando los conceptos con ejemplos. El
estudiante tiene que implementar las aplicaciones realizadas en clases.
Con apoyo de computadora se implementa soluciones en clases.
Evaluación de la unidad
METODOLOGÍAS DE Evaluación formativa. Se realizan preguntas en clases que permitan
LA ENSENANZA completar y reforzar los conceptos de POO. Se plantean situaciones
realísticas para empoderar conceptos de herencia estructural y de
facilidades. Evaluación sumativa. Los avances y propuestas de solución
a problemas tienen puntuación en esta unidad.
Bibliografía de la Unidad
Objects first with java. A practical introduction using BLUEJ, DAVID
BARNES, MICHAEL KOLLING. Prentice Hall, 2013 Apuntes de Elementos
de programaci´on y Estructura de Datos . MA. LETICIA BLANCO COCA.
2013

Nombre de la unidad 2: ELEMENTOS DE PROGRAMACION


Duración de la unidad en periodos académicos: 24
Objetivo de la unidad
Al finalizar la unidad, el estudiante será capaz de: plantear soluciones recursivas, considerando
bases matemáticas de diseño, asegurando la correctitud de su solución.
Contenido
2.1 Concepto de recursión.
2.2 Partes de la recursión
2.3 Mecanismos formales de recursión.
2.4 Reglas de la recursividad.
2.5 Recursión vs. iteración.
2.6 Coste Espacial.
2.7 Soluciones a problemas de complejidad exponencial con recursividad: torres de Hanoi,
permutaciones, combinaciones, backtracking.
2.8 Implementación de la recursividad en ejemplos de aplicación.
Técnicas predominantes de la Unidad
Clases magistrales ilustrando los conceptos fundamentales de la
estrategia Divide Para Vencer y del elemento de programación:
recursividad. El estudiante tiene que implementar las aplicaciones
METODOLOGÍAS DE realizadas en clases. Para ello cuenta con un repositorio de prácticas
LA ENSENANZA de más de 100 ejercicios.
Evaluación de la unidad
Evaluación formativa. Se plantean ejercicios en clases los mismos que
tienen la misión de reforzar los conceptos y afianzar el diseño de
soluciones recursivas. Evaluación sumativa. Esta unidad tiene asociado
la realización de un proyecto que tiene carácter HABILITANTE para
rendir el examen de Primer Parcial.
Bibliografía de la Unidad
Thinking Recursively in JAVA, ERIC ROBERTS. Jhon Wiley & Son, 2006
Thinking Recursively, ERIC ROBERTS. Jhon Wiley & Son, 1986 Apuntes
de Elementos de programaci´on y Estructura de Datos . MA. LETICIA
BLANCO COCA. 2013

Nombre de la unidad 3: ASIGNACION DE MEMORIA


Duración de la unidad en periodos académicos: 6
Objetivo de la unidad
Al finalizar este tema, el estudiante será capaz de reconocer que tipo de asignación de memoria
la computadora realiza; tomando conciencia de algunos aspectos que los lenguajes de alto nivel
transparentan al programador, de esta manera aprovechar y explicar las ventajas y desventajas
de cada tipo de asignación de memoria.
Contenido
3.1 Asignación de recurso de memoria en la computadora.
3.2 Datos estáticos y dinámicos.
3.3 Tipo puntero - referencia.
3.4 Gestión de memoria dinámica
3.5 Operaciones con punteros/enlaces.
3.6 Datos por valor.
3.7 Datos por referencia
3.8 Ventajas/desventajas de cada tipo de asignación de memoria.
Técnicas predominantes de la Unidad
Clases magistrales ilustrando los conceptos con ejemplos.
Ejemplificación de la asignación de memoria estática y dinámica.
METODOLOGÍAS DE Evaluación de la unidad
LA ENSENANZA Evaluación formativa. Se plantean ejercicios en clases los mismos que
tienen la misión de reforzar los conceptos y afianzar la comprensión de
la asignación de memoria. Evaluación sumativa. Los avances y
propuestas de solución a problemas tienen puntuación en esta unidad.
Bibliografía de la Unidad
Objects first with java. A practical introduction using BLUEJ, DAVID
BARNES , MICHAEL KOLLING. Prentice Hall, 2013 Introduction to
algorithms, THOMAS CORMEN, CHARLES LEISERSON, RONALD RIVEST.
MIT Press - 2009

Nombre de la unidad 4: ESTRUCTURAS DE DATOS LINEALES


Duración de la unidad en periodos académicos: 24
Objetivo de la unidad
Al final de la unidad, el estudiante ser capaz de: explicar, conceptualizar, diseñar, implementar,
distinguir y aplicar de manera adecuada las estructuras de datos lineales.
Contenido
4.1 Definición y representación de estructuras de datos lineales.
4.2 Tipo abstracto de dato: pila, cola.
4.3 Tipos de estructuras de almacenamiento.
4.4 Operaciones con pila.
4.5 Operaciones con colas.
4.6 Paquete de estructuras de datos lineales.
4.7 Ejercicios de aplicación
Técnicas predominantes de la Unidad
Clases magistrales ilustrando los conceptos con ejemplos. El
estudiante tiene que implementar las aplicaciones realizadas en clases.
METODOLOGÍAS DE Con apoyo de computadora se implementa soluciones en clases.
LA ENSENANZA Evaluación de la unidad
Evaluación formativa. Se plantean ejercicios en clases los mismos que
tienen la misión de reforzar los conceptos y afianzar el diseño de
estructuras de datos lineales. Evaluación sumativa. Los avances y
propuestas de solución a problemas tienen puntuación en esta unidad.
Bibliografía de la Unidad
Data Structures and Algorithm Analysis in Java, MARK ALLEN WEISS.
Addison Wesley 3nd edition, 2012 Introduction to algorithms,
THOMAS CORMEN, CHARLES LEISERSON, RONALD RIVEST. MIT Press -
2009

Nombre de la unidad 3: ESTRUCTURAS DE DATOS NO LINEALES


Duración de la unidad en periodos académicos: 24
Objetivo de la unidad
Al final de la unidad, el estudiante será capaz de especificar y programar estructuras de datos no
lineales, como árboles y grafos, además de aplicar su uso en la resolución de problemas.
Contenido
5.1 Definición de estructuras de datos no lineales.
5.2 Arboles; Arboles n- arios; Arboles binarios; Arboles binarios de búsqueda; Arboles
balanceados; Arboles B.
5.3 Operaciones con árboles: inserción, eliminación, recorrido, búsqueda
5.4 Análisis de desempeño
5.5 Grafos: dirigidos - no dirigidos, recorridos, búsquedas, conectividad, caminos.
5.6 Ejercicios de Aplicación

Técnicas predominantes de la Unidad


Clases magistrales ilustrando los conceptos con ejemplos. El
estudiante tiene que implementar las estructuras realizadas en clases,
METODOLOGÍAS DE diseñando Estructuras de Datos No Lineales, proveyendo de la
LA ENSENANZA funcionalidad necesaria para su uso . Con apoyo de computadora se
implementa parcialmente las estructuras de datos en clases, teniendo
los estudiantes la responsabilidad de completarlas
Evaluación de la unidad
Evaluación formativa. Se plantean ejercicios en clases los mismos que
tienen la misión de reforzar los conceptos y afianzar el diseño de
estructuras de datos lineales. Evaluación sumativa. Los avances y
propuestas de solución a problemas tienen puntuación en esta unidad.
Esta unidad tiene asociado la realización de un proyecto que tiene
carácter HABILITANTE para rendir el examen de Segundo Parcial.
Bibliografía de la Unidad
Data Structures and Algorithm Analysis in Java, MARK ALLEN WEISS.
Addison Wesley 3nd edition, 2012 Introduction to algorithms,
THOMAS CORMEN, CHARLES LEISERSON, RONALD RIVEST. MIT Press -
2009

VI. METODOLOGÍAS

Clases magistrales y dialogadas, ilustrando los conceptos con ejemplos. El estudiante tiene que
implementar aplicaciones pequeñas utilizando los diferentes conceptos de la materia. Es
importante que el estudiante practique en la computadora fuera de clases, por cada unidad, el
estudiante debe entregar trabajos de aplicación utilizando de forma correcta los conceptos.
Estos trabajos son imprescindibles para rendir los exámenes escritos. Por otro lado, para
verificar el funcionamiento de implementaciones de clase, se plantean prácticas de laboratorio
virtual. Material de apoyo se provee a través de la plataforma http://moodle3.umss.edu.bo/, las
notas se publicarían en http://moodle3.umss.edu.bo/ y http://websis.umss.edu.bo// Las
herramientas para este curso son Java y BlueJ.

VII. CRITERIOS DE EVALUACIÓN

 Evaluación diagnostica. Al principio del semestre es necesario nivelar a los estudiantes


respecto a conceptos de programación. Para ello se hace un repaso de los conceptos
principales, en base a la participación de los estudiantes respondiendo a preguntas y
respuestas que el profesor realiza. Del mismo modo en clases acerca de material ya
avanzado.
 Evaluación formativa. Durante el semestre y por cada unidad el estudiante debe
entregar trabajos que apliquen los conceptos introducidos, esta tarea se hace en
coordinación con los auxiliares de la materia.
 Evaluación sumativa. La materia consta de exámenes escritos que tienen un ponderado
en la nota final, así mismo los trabajos que se realizan en el transcurso del semestre son
de carácter habilitante a estas pruebas escritas.
 La evaluación del primer, segundo parcial y examen final; tendrá la siguiente
ponderación:
o Evaluación formativa: 30 %, de los cuales el 10 % es auxiliatura y el 20 % es
prácticas y evaluaciones cortas durante el semestre.
o Evaluación sumativa: 70 %
 La evaluación del examen de segunda instancia es solamente sumativa con una
ponderación del 51 %

VIII. BIBLIOGRAFÍA

Textos base
- Thinking Recursively, ERIC ROBERTS. Jhon Wiley & Son, 1986
- Thinking Recursively in JAVA, ERIC ROBERTS. Jhon Wiley & Son, 2006 - Data Structures
and Algorithm Analysis in Java, MARK ALLEN WEISS. Addison Wesley 3nd edition, 2012
- Introduction to algorithms, THOMAS CORMEN, CHARLES LEISERSON, RONALD RIVEST.
MIT Press - 2009
- Objects first with java. A practical introduction using BLUEJ, DAVID BARNES , MICHAEL
KOLLING. Prentice Hall, 2013
- Apuntes de Elementos de programación y Estructura de Datos. MA. LETICIA BLANCO
COCA. 2013
Bibliografía complementaria
- Algoritmos + estructuras de datos = programas WIRTH NIKLAUS. 1994
- Estructuras de datos y algoritmos, ALBERTO JAIME SISA, 2001
- Data structures and algorithms in java, ROBERT LAFORE, SAMS 1998
- Dictionary of algorithms and data structures. http://www.nist.gov/dads/
- Algorithms and data structures: the science of computing, DOUGLAS BALDWIN AND
GREG W. SCRAGG. Charles River Media (C) 2004
IX. Cronograma de Exámenes

Primer parcial Lunes 19 de abril 2021 12:45 – 15:00


Segundo parcial Lunes 28 de junio 2021 12:45 – 15:00
Examen Final Lunes 5 de julio 2021 12:45 – 15:00
Segunda Instancia Lunes 12 de julio 2021 12:45 – 15:00

También podría gustarte