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:
- El IDE muestra una pantalla de bienvenida y no levanta.
- No puedo crear un proyecto Wollok.
- Error al crear un proyecto Wollok en Ubuntu 16.04.
- No levanta el IDE (exit code 13).
- Falta la dependencia a plugins de Wollok (org.uqbar.project.wollok.launch) al ejecutar un archivo.
- Cartel de advertencia para instalar Java 6 (solo en Mac).
- Chequeos de la JDK.
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:
- {{commentCtrl.getCommentsNumber(guide.id)}} {{guide.name}}
Contacto.
Listas de contacto:
- Lista de docentes: tpi-doc-obj1-c2@listas.unq.edu.ar
- Lista de estudiantes: tpi-est-obj1-c2@listas.unq.edu.ar
- Mail de entregas: entregasobjetos1wollok@gmail.com
Cronograma
Cronograma
Aspectos formales
Encuesta de inicio de cuatrimestre:
Encuesta inicial - 1er cuatrimestre 2019Condiciones 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
Ejercicio | Link a Github Classroom | Repositorio 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
Ejercicio | Link a Github Classroom | Repositorio 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 |