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

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.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

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.

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

Related Courses

Introdução ao Desenvolvimento de Aplicativos Android (Coursera) Coursera
Universidade Estadual de Campinas - UNICAMP

Introdução ao Desenvolvimento de Aplicativos Android (Coursera)

Este curso tem como objetivo propiciar um primeiro contato com a Programação para Dispositivos Móveis que operam na plataforma Android. O Android Studio será utilizado como ambiente de desenvolvimento desde o início do curso e você receberá dicas de como obter ajuda quando alguma tarefa estiver consumindo mais tempo do que o necessário. Ao solucionar problemas por conta própria, você irá adquirir a autonomia necessária para concluir projetos de programação.

Oct 5th 2026
5-12 Weeks
Using Databases with Python (Coursera) Coursera
University of Michigan

Using Databases with Python (Coursera)

This course will introduce students to the basics of the Structured Query Language (SQL) as well as basic database design for storing data as part of a multi-step data gathering, analysis, and processing effort. The course will use SQLite3 as its database. We will also build web crawlers and multi-step data gathering and visualization processes. We will use the D3.js library to do basic data visualization.

Sep 28th 2026
5-12 Weeks
Programming Languages, Part B (Coursera) Coursera
University of Washington

Programming Languages, Part B (Coursera)

This course is an introduction to the basic concepts of programming languages, with a strong emphasis on functional programming. The course uses the languages ML, Racket, and Ruby as vehicles for teaching the concepts, but the real intent is to teach enough about how any language “fits together” to make you more effective programming in any language -- and in learning new ones. This course is neither particularly theoretical nor just about programming specifics -- it will give you a framework for understanding how to use language constructs effectively and how to design correct and elegant programs.

Sep 28th 2026
3 Weeks
Introducción a Java (Coursera) Coursera
Universidad Nacional Autónoma de México

Introducción a Java (Coursera)

Me llamo Elisa Viso y una de mis pasiones es la de programar y enseñar a programar. El lenguaje Java es uno de los que más me ha gustado en mis 45 años que llevo programando. Si bien te podrá parecer un poco complicado empezar a programar en Java, una vez que cubras los conceptos básicos verás qué rápido se avanza. Java, como todos los lenguajes de programación bien hechos, te dejan hacer cualquier cosa (algunas de ellas con más trabajo que en otros lenguajes y otras casi directamente de cómo piensas la solución al problema).

Oct 5th 2026
5-12 Weeks
Introducción a la programación en Python I: Aprendiendo a programar con Python (Coursera) Coursera
Pontificia Universidad Católica de Chile

Introducción a la programación en Python I: Aprendiendo a programar con Python (Coursera)

Decía Steve Jobs que “todo el mundo debería aprender a programar un ordenador porque esto te ayuda a pensar”. Hoy en día la programación es una herramienta fundamental para el desarrollo de la tecnología moderna. Este curso te introduce en el mundo de la programación en el lenguaje Python.

Oct 5th 2026
5-12 Weeks
Programming for Everybody (Getting Started with Python) (Coursera) Coursera
University of Michigan

Programming for Everybody (Getting Started with Python) (Coursera)

This course aims to teach everyone the basics of programming computers using Python. We cover the basics of how one constructs a program from a series of simple instructions in Python. The course has no pre-requisites and avoids all but the simplest mathematics. Anyone with moderate computer experience should be able to master the materials in this course.

Sep 28th 2026
5-12 Weeks
Estruturas de dados Python (Coursera) Coursera
University of Michigan

Estruturas de dados Python (Coursera)

Este curso apresentará as estruturas de dados centrais da linguagem de programação Python. Vamos superar os fundamentos da programação de procedimentos e explorar como podemos usar as estruturas de dados integradas do Python, como listas, dicionários e tuplas, para realizar análises de dados cada vez mais complexas. Este curso cobrirá os capítulos 6 a 10 do livro “Python para Todos”. Este curso aborda o Python 3.

Oct 5th 2026
5-12 Weeks
Principles of Computing (Part 2) (Coursera) Coursera
Rice University

Principles of Computing (Part 2) (Coursera)

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class.

Oct 5th 2026
4 Weeks
IBM z/OS Rexx Programming (Coursera) Coursera
IBM

IBM z/OS Rexx Programming (Coursera)

This course is designed to teach you the basic skills required to write programs using the REXX language in z/OS. The course covers the TSO extensions to REXX and interaction with other environments such as the MVS console, running REXX in batch jobs, and compiling REXX. A total of 11 hands-on labs on an IBM Z server (via remote Skytap access) are part of this course.

Oct 5th 2026
5-12 Weeks