Periodo académico 2020-2S

(009069) PROGRAMACIÓN AVANZADA

Datos generales

Grupos

Tabla información sobre los grupos de la asignatura
Actividad Grupo Periodos Horarios Aula Profesor/Tutor
SALAS ESPECIALIZADAS CÓMPUTO (1) - CLASE VIRTUAL - GRUPO 1 - BOGOTÁ 10/08/2020 - 28/11/2020 MARTES 20:00 - 22:00 - SEBASTIAN ZAPATA RAMIREZ
JUEVES 20:00 - 22:00 - SEBASTIAN ZAPATA RAMIREZ

Contenidos

PROGRAMA DE LA ASIGNATURA

Presentación

Este curso pretende brindar conocimientos acerca de características más avanzadas del lenguaje Java para Ingenieros de Sistemas. Se considera que cubre características del lenguaje Java que son indispensables, tanto para proyectos de grado como para profesionales en este campo.

Objetivo de Aprendizaje

Con el apoyo de su grupo de compañeros, el profesor y la comprensión de los recursos y actividades disponibles, usted logrará: Mejorar sus técnicas y herramientas en el área de programación (1) Repaso a programación orientada a objetos, (2) Análisis y optimización de algoritmos, (3) técnicas de resolución de problemas de alta complejidad computacional, (4) Conocimiento de diferentes tecnologías de información.

Contenidos Temáticos

Revisitando Programación Orientada a Objetos
Objeto
Clase
Herencia
Interfaz
Paquete

Teoría Programación Orientada a Objetos
Modificadores de acceso public, protected, package-private y private.
Pasando argumentos y ámbito de variables
Uso de constructores
Diferencia entre una variable de instancia y una variable de clase

Teoría Programación Orientada a Objetos
Pasar por valor vs. Pasar por referencia
Interfaces
Definición de Interfaz
Cuerpo de la Interfaz
Implementación de Interfaz- Ejemplo

Teoría Programación Orientada a Objetos
Herencia
Jerarquía de Clases en Java
Ejemplo de herencia
Reglas de Visibilidad y Acceso
Qué se puede hacer en una subclase
Casting
Herencia Múltiple
Polimorfismo
Constructor de superclase
Métodos y clases final
Clases y métodos abstractos

Teoría Programación Orientada a Objetos
Programación Genérica
Uso de Object para Genericidad
Usando Interfaces para Genericidad
ComparableDemo
Taller Programación Genérica Java
AutoBoxing/Unboxing
Wildcards with Bounds
Métodos Genéricos Estáticos
Taller de Pilas Genéricas
Excepciones

Taller Algoritmo Huffman

Codificación de Caracteres
El Algoritmo de Huffman
Ejemplo del Algoritmo de Huffman
Una Codificación Óptima del algoritmo
Crear un árbol Huffman usando el texto de Cien Años de Soledad de Gabriel García Márquez.

Programación competitiva

Análisis y diseños de algoritmos
Recursión
Algoritmo de Greedy
Backtracking
Números Grandes
Algortimos de ordenamiento
Uso de cadenas String, StringBuilder
Uso de la clase hashmap, treemap
Lectura y escritura de archivos
Algoritmos BFS y DFS
Iteración y Búsqueda
Manipulación de Strings

Evaluación Formativa

Para facilitar el seguimiento del proceso de aprendizaje, se realizará:


Competencias: A lo largo del semestre se desarrollan diferentes competencias de programación, en lugar parciales tradicionales.

Quices: examinaremos nuestra comprensión de conceptos desarrollados en clase y obtenidos de las lecturas propuestas para el estudio autónomo

Proyectos de aula: Se evaluarán diferentes proyectos de aula durante el semestre que serán asignados por el profesor.

Proyecto de comunicación: en grupos de tres estudiantes, desarrollaremos un juego de roles para facilitar el desarrollo de habilidades transversales de todos los estudiantes.

Para cada uno de los momentos de evaluación, la nota tendrá los siguientes porcentajes:
- 30% Entregables del proyecto
- 50% Examen parcial
- 20% Investigaciones y pruebas cortas

Bibliografía Básica Obligatoria

1. Mark Allen Weiss. Data Structures and Algorithms in Java. 3 Ed. Addison-Wesley, 2012.

2. Adaptación del tutorial de Java de Oracle. La versión original, en inglés, se puede ver en: http://docs.oracle.com/javase/tutorial/



Carrera 4 # 22-61 Teléfono: (+57 1) 242 7030 - 018000111022 Fax: (+57 1) 561 2107 Bogotá D.C., Colombia
Institución de Educación Superior sujeta a inspección y vigilancia por el Ministerio de Educación Nacional.