Periodo académico 2020-2S
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 |
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.
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.
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
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
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/