Introducción a la programación orientada a objetos en Java (Coursera)

Introducción a la programación orientada a objetos en Java (Coursera)
Course Auditing
Categories
Effort
Certification
Languages
Es necesario poseer un conocimiento previo de los conceptos básicos de programación, como el manejo de variables, las instrucciones de asignación, condicionales e iterativas y el concepto de algoritmo y función.
Misc

MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Introducción a la programación orientada a objetos en Java (Coursera)
El propósito de este curso es ofrecerle un ambiente interactivo orientado a construir aprendizajes sobre el lenguaje de la programación en Java para la creación y manipulación de objetos. La estrategia pedagógica empleada es el aprendizaje activo basado en casos.

MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Es un curso altamente interactivo que constantemente lo reta a responder preguntas, verificar su comprensión, ejercitarse en código, resolver casos en diferentes niveles y múltiples oportunidades para pasar de la teoría a la práctica con actividades formativas que le permitirán ganar puntos de experiencia, puntos de competencia y puntos de habilidad, con los cuales desarrollará habilidades de abstracción y de programación.

Además, podrá utilizar dos aplicaciones web desarrolladas por la Universidad de los Andes que son novedosas e importantes para el desarrollo de habilidades de programación:

1. CupiExámenes: Software de ejercitación en código Java, que ofrece retroalimentación automática sobre la escritura incorrecta del código y califica el proceso de programación es decir, le indica si el resultado está bien o mal, dónde se equivocó y por qué.

2. CupiTips: Es otra aplicación web donde puede encontrar una lista de errores comunes que se cometen al programar en Java y le permite al estudiante corregirlos de manera que pueda aprender de ellos.

La Universidad de los Andes está poniendo a su disposición y de forma gratuita estas aplicaciones, así como los libros que le permitirán nivelarse o aclarar algunos conceptos importantes, si así lo necesita para poder tomar este curso.


What You Will Learn

- Entender los conceptos básicos de programación orientada a objetos e implementarlos en lenguaje Java.

- Construir interfaces gráficas de usuario amigables, estructuradas y fáciles de mantener.

- Utilizar e implementar algoritmos iterativos sobre colecciones de elementos.

- Implementar, adaptar, utilizar y depurar algunos de los algoritmos iterativos de ordenamiento clásicos sobre estructuras de datos lineales.


Syllabus


WEEK 1

Módulo 1: Clases y objetos

¡Le damos la bienvenida al módulo 1! Uno de los paradigmas más conocidos y usados en la actualidad es el paradigma orientado a objetos, el cual está fundamentado en pilares como la abstracción, el encapsulamiento, la modularidad, el polimorfismo y la herencia. En este módulo tendrá la oportunidad de conocer los conceptos básicos de este paradigma: clases, objetos, asociaciones y métodos. Tenga en cuenta que el tiempo estimado para la realización de todas las actividades de este módulo es de cerca de 14 horas, tiempo que usted puede invertir de acuerdo con sus posibilidades. Le recomendamos que desarrolle todas las actividades en el orden propuesto y que considere hacerlo en un tiempo de dos semanas.


WEEK 2

Módulo 2: Arreglos y vectores

¡Le damos la bienvenida al módulo 2! La construcción del modelo conceptual del mundo del problema en muchas ocasiones implica usar el concepto de colección o grupos de elementos de la misma clase, y manejar estrategias para añadir nuevos elementos a ese grupo o para buscar un elemento en particular dentro de dicha colección. En este módulo vamos a tratar algunos conceptos fundamentales de la programación que nos permiten manejar grupos de elementos: los arreglos y las matrices, que son estructuras contenedoras de 1 y 2 dimensiones. Usaremos estas entidades para representar colecciones de datos u objetos en nuestro modelo del mundo. Además, vamos a revisar las diferentes operaciones algorítmicas que podemos realizar sobre las estructuras de datos en 1 y 2 dimensiones, ya sea para agregar y eliminar elementos o para realizar tanto búsquedas como manipulaciones de los objetos contenidos allí. Tenga en cuenta que el tiempo estimado para la realización de todas las actividades de este módulo es de cerca de 16 horas, tiempo que usted puede invertir de acuerdo con sus posibilidades. Le recomendamos que desarrolle todas las actividades en el orden propuesto y que considere hacerlo en un tiempo de dos semanas.


WEEK 3

Módulo 3: Ordenamiento

¡Le damos la bienvenida al módulo 3! Uno de los problemas críticos que enfrentan los programadores es la eficiencia de los programas que escriben. Un usuario en general espera que el programa sea capaz de contestar sus requerimientos rápidamente. ¿Cómo construir entonces programas que sean eficientes? La respuesta a esta pregunta es bastante más difícil de contestar, puesto que intervienen muchos factores diferentes. Uno de los enfoques de esta situación es el problema de la búsqueda eficiente de información en un grupo de valores, puesto que dicha actividad es fundamental en muchos programas y una buena cantidad del tiempo de ejecución se va en localizar algo que el usuario quiere consultar. Dado este contexto, resulta muy conveniente ordenar la información que maneja el programa (objetos o valores simples) para que sea fácil de encontrar. El tema de búsqueda en particular será el que abordaremos en este módulo. Tenga en cuenta que el tiempo estimado para la realización de todas las actividades de este módulo es de cerca de 11 horas, tiempo que usted puede invertir de acuerdo con sus posibilidades. Le recomendamos que desarrolle todas las actividades en el orden propuesto y que considere hacerlo en un tiempo de dos semanas.


WEEK 4

Módulo 4: Herencia

¡Le damos la bienvenida al módulo 4! Es un hecho que los programas de computador que se construyen deben evolucionar a medida que el problema y el contexto en el que éste ocurre cambian. Un programa de buena calidad es aquel que además de resolver el problema actual que se plantea, tiene una estructura que le permite evolucionar a costo razonable. No nos interesa construir un programa que tengamos que rehacer cada vez que algún aspecto del problema cambie o un nuevo requerimiento aparezca. Además de hacer evolucionar los programas a bajo costo, nos enfrentamos siempre al reto de hacer las implementaciones de la manera lo más eficiente posible (en tiempo e inversión). Para esto, lo ideal sería aprovechar otros desarrollos previos que nos ayuden en la construcción de nuestro programa. Esta es la idea del mecanismo de reutilización de clases denominado herencia, tema de este módulo. Imagínese los elevados costos si cada vez que nos lanzamos a construir un nuevo programa debemos partir desde cero. En este módulo vamos a enfrentarnos al problema de hacer implementaciones eficientes de programas: vamos a utilizar el mecanismo de herencia que nos permitirá reutilizar código de clases que ya implementamos para acelerar el tiempo que toma programar nuevas clases. A través del módulo nos familiarizaremos con los conceptos de superclases y subclases, entenderemos cómo a través de la visibilidad de los atributos y métodos podremos tener mayor o menor versatilidad al momento de implementar nuevas clases usando herencia. También explicaremos qué es una clase abstracta y sus implicaciones en el mundo del problema. Tenga en cuenta que el tiempo estimado para la realización de todas las actividades de este módulo es de cerca de 15 horas, tiempo que usted puede invertir de acuerdo con sus posibilidades. Le recomendamos que desarrolle todas las actividades en el orden propuesto y que considere hacerlo en un tiempo de dos semanas.


WEEK 5

Módulo 5: Interfaz Gráfica

¡Le damos la bienvenida al módulo 5! A diferencia de los módulos anteriores, en este módulo del curso, vamos a cambiar de metodología de trabajo, ya que para construir una interfaz gráfica no se necesitan grandes habilidades algorítmicas. Se trata sobre todo de entender cómo utilizar algunas clases de Java que nos permiten crear los elementos gráficos y de interacción, cómo conectarlos entre sí y cómo conectarlos con el mundo del programa. Vamos a trabajar de la siguiente manera: primero revisaremos los conceptos teóricos básicos necesarios para ir creando poco a poco los elementos que componen la interfaz gráfica, estos son: la ventana principal, los páneles, las etiquetas, las cajas de textos y los botones. Segundo, veremos cómo repartir las responsabilidades entre la interfaz gráfica y el mundo y cómo conectarlos entre sí. Y por último, veremos cómo se maneja la interacción con el usuario. Después de cada presentación teórica, usted desarrollará un ejercicio para poner en práctica los nuevos conocimientos y enfrentarse al reto de hacerlo usted mismo con la ayuda de una guía de trabajo. El punto de partida de los retos de este módulo es el mundo de la aplicación. Su misión es construir la interfaz gráfica de forma incremental, ¡reto tras reto! Tenga en cuenta que el tiempo estimado para la realización de todas las actividades de este módulo es de cerca de 9 horas, tiempo que usted puede invertir de acuerdo con sus posibilidades. Le recomendamos que desarrolle todas las actividades en el orden propuesto y que considere hacerlo en un tiempo de dos semanas.



MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Course Auditing
27.00 EUR
Es necesario poseer un conocimiento previo de los conceptos básicos de programación, como el manejo de variables, las instrucciones de asignación, condicionales e iterativas y el concepto de algoritmo y función.

MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.