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

Cloud Computing Concepts, Part 1 (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cloud Computing Concepts, Part 1 (Coursera)

Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies—all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing. Some of these concepts include: clouds, MapReduce, key-value/NoSQL stores, classical distributed algorithms, widely-used distributed algorithms, scalability, trending areas, and much, much more!

Jun 8th 2026
5-12 Weeks
Orientação a Objetos com Java (Coursera) Coursera
Instituto Tecnológico de Aeronáutica

Orientação a Objetos com Java (Coursera)

Neste curso, assumimos que você já sabe desenvolver programas pequenos em Java, mas você talvez não se sinta ainda confortável em projetar programas mais complexos com método e organização. O objetivo deste curso é fazer você compreender os princípios de orientação a objetos por meio da linguagem Java e saber como eficientemente aplicar esses princípios na prática quando projetando e desenvolvendo software de maneira ágil. Os conceitos discutidos e experimentados por você neste curso serão a base para você poder compreender os novos conceitos apresentados nos cursos seguintes desta especialização.

Jun 8th 2026
5-12 Weeks
Introduction to Programming with MATLAB (Coursera) Coursera
Vanderbilt University

Introduction to Programming with MATLAB (Coursera)

This course teaches computer programming to those with little to no previous experience. It uses the programming system and language called MATLAB to do so because it is easy to learn, versatile and very useful for engineers and other professionals. MATLAB is a special-purpose language that is an excellent choice for writing moderate-size programs that solve problems involving the manipulation of numbers.

Jun 8th 2026
5-12 Weeks
Introduction to CSS3 (Coursera) Coursera
University of Michigan

Introduction to CSS3 (Coursera)

The web today is almost unrecognizable from the early days of white pages with lists of blue links. Now, sites are designed with complex layouts, unique fonts, and customized color schemes. This course will show you the basics of Cascading Style Sheets (CSS3). The emphasis will be on learning how to write CSS rules, how to test code, and how to establish good programming habits.

Jun 8th 2026
4 Weeks
Interactivity with JavaScript (Coursera) Coursera
University of Michigan

Interactivity with JavaScript (Coursera)

If you want to take your website to the next level, the ability to incorporate interactivity is a must. But adding some of these types of capabilities requires a stronger programming language than HTML5 or CSS3, and JavaScript can provide just what you need. With just a basic understanding of the language, you can create a page that will react to common events such as page loads, mouse clicks & movements, and even keyboard input.

Jun 8th 2026
4 Weeks
Data Structures and Performance (Coursera) Coursera
University of California, San Diego

Data Structures and Performance (Coursera)

How do Java programs deal with vast quantities of data? Many of the data structures and algorithms that work with introductory toy examples break when applications process real, large data sets. Efficiency is critical, but how do we achieve it, and how do we even measure it? This is an intermediate Java course. We recommend this course to learners who have previous experience in software development or a background in computer science, and in particular, we recommend that you have taken the first course in this specialization (which also requires some previous experience with Java).

Jun 8th 2026
5-12 Weeks
The Raspberry Pi Platform and Python Programming for the Raspberry Pi (Coursera) Coursera
University of California, Irvine

The Raspberry Pi Platform and Python Programming for the Raspberry Pi (Coursera)

The Raspberry Pi is a small, affordable single-board computer that you will use to design and develop fun and practical IoT devices while learning programming and computer hardware. In addition, you will learn how to set up up the Raspberry Pi environment, get a Linux operating system running, and write and execute some basic Python code on the Raspberry Pi. You will also learn how to use Python-based IDE (integrated development environments) for the Raspberry Pi and how to trace and debug Python code on the device.

Jun 8th 2026
4 Weeks
Basic Cryptography and Programming with Crypto API (Coursera) Coursera
University of Colorado System

Basic Cryptography and Programming with Crypto API (Coursera)

In this MOOC, we will learn the basic concepts and principles of crytography, apply basic cryptoanalysis to decrypt messages encrypted with mono-alphabetic substitution cipher, and discuss the strongest encryption technique of the one-time-pad and related quantum key distribution systems. We will also learn the efficient symmetric key cryptography algorithms for encrypting data, discuss the DES and AES standards, study the criteria for selecting AES standard, present the block cipher operating modes and discuss how they can prevent and detect the block swapping attacks, and examine how to defend against replay attacks.

Jun 8th 2026
4 Weeks
Using Python to Interact with the Operating System (Coursera) Coursera
Google

Using Python to Interact with the Operating System (Coursera)

By the end of this course, you’ll be able to manipulate files and processes on your computer’s operating system. You’ll also have learned about regular expressions -- a very powerful tool for processing text files -- and you’ll get practice using the Linux command line on a virtual machine. And, this might feel like a stretch right now, but you’ll also write a program that processes a bunch of errors in an actual log file and then generates a summary file. That’s a super useful skill for IT Specialists to know.

Jun 9th 2026
5-12 Weeks
Interfacing with the Raspberry Pi (Coursera) Coursera
University of California, Irvine

Interfacing with the Raspberry Pi (Coursera)

The Raspberry Pi uses a variety of input/output devices based on protocols such as HDMI, USB, and Ethernet to communicate with the outside world. In this class you will learn how to use these protocols with other external devices (sensors, motors, GPS, orientation, LCD screens etc.) to get your IoT device to interact with the real world.

Jun 8th 2026
4 Weeks
Functional Programming Principles in Scala (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Functional Programming Principles in Scala (Coursera)

Functional programming is becoming increasingly widespread in industry. This trend is driven by the adoption of Scala as the main programming language for many applications. Scala fuses functional and object-oriented programming in a practical package. It interoperates seamlessly with both Java and Javascript. Scala is the implementation language of many important frameworks, including Apache Spark, Kafka, and Akka. It provides the core infrastructure for sites such as Twitter, Tumblr and also Coursera.

Jun 8th 2026
5-12 Weeks