Bienvenidos al site de la materia programación con objetos 1.

¿Que es la programación orientada a objetos?

La Programación Orientada a Objetos (POO u OOP) es un paradigma de programación que define los programas en términos de “clases de objetos”, objetos que son entidades que combinan estado (propiedades o datos), comportamiento (procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto).

La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.

Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos de interacción (los llamados métodos) que favorecen la comunicación entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) información (datos) y procesamiento (métodos).

¿Qué es Wollok?

Wollok es un lenguaje de programación y entorno de desarrollo integrado (IDE) para ser utilizado en el dictado de materias iniciales de programación a objetos. Es ideal ya que permite ir agregando los detalles y conceptos de forma incremental y programando desde el primer día.

Wollok es:

  • Orientado a Objetos.
  • No está centrado en clases, lo que permite crear objetos como first-class citizens sin la necesidad de clases. Esto permite comenzar a programar en objetos sin tener que introducir conceptos más complejos como son Packages, Herencia, Sobrecarga, etc.
  • Tiene una sintaxis simple y limpia, basada en los conceptos fundamentales de objetos, fácil de adquirir.
  • Es un lenguaje dinámico, sin necesidad de agregarle anotaciones de tipos.
  • Posee un sistema de tipos implícito, que permite maximizar los chequeos en tiempo de compilación sin perder el poder de un lenguaje dinámico.
  • Es interpretado.

La materia esta a cargo de los profesores Leo y Nico y cuenta con la colaboracion de los alumnos Carlos, Brian, Leandro, Lucas, Uriel, Ailin y Sebastián.

Entorno de Programación

Wollok está implementado dentro de la plataforma Eclipse y necesita instalar una Máquina Virtual de Java 1.8. La misma se puede descargar aquí.

Algunas aclaraciones:

  • Tiene que ser Java 1.8 (no puede ser una versión anterior).
  • Tiene que ser una JDK (Java Development Kit), que viene con el compilador de Java. Una JRE (Java Runtime Environment) no te va a funcionar correctamente.
  • Si ya estás usando Eclipse con Java 1.8, no hace falta que la descargues otra vez.

Descarga Wollok:

Problemas comunes al instalar Wollok:

Encontré un Bug... ¿qué hago?

Wollok es una pieza de Software en constante mejora y crecimiento. Como todas las cosas que están en constante evolución es probable que encuentres problemas o se te ocurra una mejora posible que te gustaría ver.

En caso de encontrar un error, es de mucha ayuda que lo reportes en la página de GitHub de Wollok. Para eso estamos usando un Issue Tracker (o sea un gestor de errores / incidentes).

Para hacerlo, algunas recomendaciones:

  • Lo más importante es ponerle un título descriptivo que explique el problema lo más claramente posible, y en la descripción indicar los pasos para reproducirlo. Sin esto es muy difícil que podamos solucionar los errores.
  • Verás que muchos errores están en inglés, no te sientas intimidado por eso: sentite libre de escribir en castellano si no te sentís cómodo escribiendo en inglés.
  • Siempre conviene mirar primero entre los bugs existentes, si alguien no reportó antes lo mismo que estás queriendo reportar.
  • Si podés, asociale alguno de estos labels:
    • Show stopper: si es un problema que te impide trabajar o sospechás que le va a impedir trabajar a alguien más.
    • Bug: un error en el sistema que no impide trabajar.
    • Usability: cuestiones que pueden confundir a los usuarios. Dado que es una herramienta pensada para personas que están dando sus primeros pasos en la programación, presentar una interfaz consistente es muy importante.
    • Enhancement: nuevas características que se solicitan.
    • Nice to have: características deseadas pero menos prioritarias.
    • Question: dudas, por ejemplo algo que no estamos seguros si es un bug.

Guías y material de lectura

Ejercicios introductorios

Guías prácticas

Guías del lenguaje

Material complementario

Dejanos tu comentario

Elige una guia para comentar sobre ella:

Contacto.

Listas de contacto:

Cronograma

Cronograma

Aspectos formales

Encuesta de inicio de cuatrimestre:

Encuesta inicial - 1er cuatrimestre 2019

Condiciones de aprobación de la materia:

Para aprobar la materia se requiere cumplir con tres condiciones:

  • Parcial
  • Trabajo práctico grupal
  • Desempeño durante la cursada

Para aprobar la materia se requiere nota 6 como mínimo en cada una de las partes y 7 de promedio. La nota final promedia entre dos partes.

El parcial consiste de un ejercicio de diseño y programación, a realizar en computadora y en lenguaje Wollok. En caso de ser necesario se realizará un recuperatorio.

El desempeño durante la cursada contempla todas las calificaciones de los parcialitos y entregas prácticas realizadas semanalmente, así como la asistencia y participación en clase.

Notas

Ejercicios en Github

En esta página incluimos las referencias a los ejercicios con los que trabajamos durante la cursada.

Para cada ejercicio, hay un repositorio Github que contiene un proyecto Wollok. A su vez, estos repositorios están integrados con la herramienta Github Classroom, lo que simplifica la creación de un clone para cada estudiante (o interesado).

Ejercicios con wko = objetos autodefinidos

EjercicioLink a Github ClassroomRepositorio original Github
Pepita (con sus múltiples etapas) Solicitar el clone Entrar al repositorio
Empanadas Giménez Solicitar el clone Entrar al repositorio
Viajes en auto (no lo llegamos a usar) Solicitar el clone Entrar al repositorio
Un spa y sus clientes Solicitar el clone Entrar al repositorio
Juego con personajes y elementos Solicitar el clone Entrar al repositorio
Pepita game Solicitar el clone Entrar al repositorio
Mensajeros de película Solicitar el clone Entrar al repositorio

Ejercicios con clases

EjercicioLink a Github ClassroomRepositorio original Github
Golosinas Solicitar el clone Entrar al repositorio
Granjavilla Solicitar el clone Entrar al repositorio
Servicios profesionales (1er simulacro parcial) Solicitar el clone Entrar al repositorio
Trenes Solicitar el clone Entrar al repositorio