Perfilado de sección

  • General

  • 16 de febrero - 22 de febrero

    Actividades: 0
  • 23 de febrero - 1 de marzo

    https://openwebinars.net/blog/introduccion-a-poo-en-java-objetos-y-clases/

    ¿Qué es una CLASE en programación?

    El concepto de Clase está ligado a la programación orientada a objetos.

    Una clase es una herramienta que tenemos para modelar objetos de programación, lograr que se comporten como queremos y hacer tantas copias de estos objetos como necesitemos.

    La Programación Orientada a Objetos (POO) es un enfoque de programación que se basa en la creación y manipulación de “objetos”. Estos objetos son entidades que combinan datos y comportamientos en un solo paquete.

    En la POO, los objetos tienen atributos que representan sus características o propiedades, y métodos que definen las acciones que pueden realizar. Las clases se utilizan para definir la estructura y el comportamiento de los objetos. Una clase actúa como una plantilla o un modelo a partir del cual se crean objetos individuales con características únicas.

    En Términos Generales una clase :

    Una clase en programación, fundamental en la Programación Orientada a Objetos (POO), actúa como una plantilla o molde para crear objetos. Define la estructura y el comportamiento de una entidad del mundo real, agrupando atributos (datos o características) y métodos (funciones o acciones) que serán compartidos por los objetos creados a partir de ella.
     
    Conceptos Clave de una Clase:
    • Plantilla/Molde: La clase es el plano teórico, mientras que el objeto es la instancia funcional creada a partir de ese plano.
    • Atributos (Datos): Son las variables que definen las características o estado de la clase (ej. nombre, color, tamaño).
    • Métodos (Comportamientos): Son funciones definidas dentro de la clase que describen qué pueden hacer los objetos.
    • Encapsulación: Las clases permiten agrupar datos y los métodos que los manipulan, ocultando la complejidad interna.

    Actividades: 0
  • 2 de marzo - 8 de marzo

    Constructores

     Qué es un constructor
    Estructura general en Java
    Constructor por defecto
    Constructor “de oficio” (vacío explícito)
    Constructor paramétrico
    Constructor de copia
    Ejemplos claros y comparativos


    ¿Qué es un constructor?

    Un constructor es un método especial que:

    • Tiene el mismo nombre que la clase.
    • No tiene tipo de retorno.
    • Se ejecuta automáticamente cuando se crea un objeto.
    • Se usa para inicializar atributos.

    Estructura general de un constructor en Java

    public NombreClase(parametros) {
        // inicialización
    }

     Reglas importantes:

    • No lleva void.
    • Puede estar sobrecargado.
    • Puede usar this.

     

      Constructor por defecto (implícito)

    Definición:

    Es el constructor que Java crea automáticamente si la clase no tiene ningún constructor definido.

    Si usted define un constructor, Java ya NO genera el constructor por defecto.


    Ejemplo

    public class Persona {
        String nombre;
        int edad;
    }

    Aunque no lo veamos, Java genera internamente:

    public Persona() {
    }


     Constructor “de oficio” (vacío explícito)

    Definición:

    Es el constructor vacío que el programador escribe explícitamente.

    Se usa cuando:

    • Queremos permitir crear objetos sin parámetros.
    • Queremos agregar lógica inicial básica.

     Estructura

    public class Persona {

        String nombre;
        int edad;

        public Persona() {
            nombre = "Sin nombre";
            edad = 0;
        }
    }


     Uso

    Persona p1 = new Persona();


     Constructor paramétrico

    Definición:

    Es aquel que recibe parámetros para inicializar los atributos con valores específicos.

    Es el más usado en diseño profesional.


    Estructura

    public class Persona {

        String nombre;
        int edad;

        public Persona(String nombre, int edad) {
            this.nombre = nombre;
            this.edad = edad;
        }
    }


    Uso

    Persona p1 = new Persona("Carlos", 25);

    Aquí se inicializa el objeto con datos reales.


    Constructor de copia

    Definición:

    Es un constructor que recibe un objeto del mismo tipo y crea una copia del mismo.

    Java no lo genera automáticamente (a diferencia de C++), se debe programar manualmente.


    Estructura

    public class Persona {

        String nombre;
        int                  edad;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

        public Persona(String nombre, int edad) {
            this.nombre = nombre;
            this.edad = edad;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
        }

        // Constructor de copia
        public Persona(Persona otraPersona) {
            this.nombre = otraPersona.nombre;
            this.edad = otraPersona.edad;
        }
    }


    🔎 Uso

    Persona p1 = new Persona("Ana", 30);
    Persona p2 = new Persona(p1);

    Ahora:

    • p1 y p2 son objetos distintos en memoria.
    • Pero tienen los mismos valores.

    Comparación clara para clase

     

    Tipo de Constructor

    Parámetros

    ¿Lo crea Java automáticamente?

    Uso principal

    Por defecto

    No

    Sí (si no hay otros)

    Inicialización básica

    De oficio

    No

    No

    Personalizar inicialización

    Paramétrico

    No

    Inicialización personalizada

    De copia

    Objeto mismo tipo

    No

    Duplicar objetos

    Concepto de Método en Programación Orientada a Objetos

    Definición

    Un método es un bloque de código definido dentro de una clase que describe una acción o comportamiento que puede realizar un objeto.  En otras palabras:  Un método es una función asociada a una clase que permite ejecutar operaciones sobre los datos del objeto.

    Los métodos permiten:

    • Organizar el código
    • Reutilizar funciones
    • Encapsular comportamientos

    Estructura de un Método en Java

    La estructura general de un método es:

    modificador tipoRetorno nombreMetodo(parametros) {
        // instrucciones
    }

    Elementos

    Elemento

    Descripción

    modificador

    nivel de acceso (public, private, protected)

    tipoRetorno

    tipo de dato que devuelve

    nombreMetodo

    identificador del método

    parámetros

    datos que recibe el método


    Los niveles de acceso en Java (public, private, protected, y default) son modificadores que determinan la visibilidad y accesibilidad de clases, métodos y atributos desde otras partes del código. Controlan el encapsulamiento, permitiendo proteger los datos sensibles (private) y definir qué partes son accesibles internamente o globalmente. 

     

    • public: Acceso total. El miembro o clase es visible desde cualquier otra clase en cualquier paquete.
    • private: Acceso restringido. Solo es visible dentro de la propia clase donde se declara.
    • protected: Acceso limitado. Visible dentro del mismo paquete y por subclases (clases hijas) incluso si están en paquetes distintos.
    • default (sin modificador): Acceso a nivel de paquete. Visible solo para clases dentro del mismo paquete.

    ____________________________________

     Ejemplo

    public int sumar(int a, int b) {
        return a + b;
    }

    Este método:

    • Es público
    • Retorna int
    • Recibe dos parámetros

    Tipos de Métodos

    En Java se pueden clasificar en cuatro casos básicos que son muy útiles pedagógicamente.

     Método sin parámetros y sin retorno

    public void saludar() {
        System.out.println("Hola estudiantes");
    }

    Uso:

    saludar();


     

    Método con parámetros y sin retorno

    public void mostrarNombre(String nombre) {
        System.out.println("Nombre: " + nombre);
    }

    Uso:

    mostrarNombre("Carlos");


     3. Método sin parámetros y con retorno

    public int obtenerNumero() {
        return 10;
    }

    Uso:

    int n = obtenerNumero();


    4. Método con parámetros y con retorno

    public double calcularPromedio(double n1, double n2) {
        return (n1 + n2) / 2;
    }

    //Uso:

    double promedio = calcularPromedio(4.0, 3.5);

     

     

     

     

     

     


    Ejercicio Resuelto 1

    Clase Calculadora

    Problema

    Crear una clase Calculadora con métodos para realizar operaciones básicas.

    Código

    public class Calculadora {

        public int sumar(int a, int b) {
            return a + b;
        }
        public int restar(int a, int b) {
            return a - b;
        }
        public int multiplicar(int a, int b) {
            return a * b;
        }
        public double dividir(double a, double b) {
            return a / b;
        }
    }


    Clase principal

    public class Principal {

        public static void main(String[] args) {

            Calculadora calc = new Calculadora();

            System.out.println("Suma: " + calc.sumar(5,3));
            System.out.println("Resta: " + calc.restar(10,4));
        

       System.out.println("Multiplicación: " + calc.multiplicar(6,7));
            System.out.println("División: " + calc.dividir(10,2));
        }
    }

    Actividades: 0
  • Sobrecarga de Métodos en Java.

     Idea Central

    La sobrecarga ocurre cuando una clase tiene dos o más métodos con el mismo nombre, pero  con diferentes firmas. (Definición de Firma: Es la combinación del nombre del método + la lista de sus parámetros (cantidad, tipo y orden). El tipo de retorno no forma parte de la firm)a.

    ¿Por qué es útil para un Ingeniero?

    Evita crear nombres genéricos y confusos como sumarEnteros(), sumarDoubles(), sumarTresNumeros(). Simplemente usamos sumar() y dejamos que el compilador elija el correcto.


    2. Reglas de Oro 

    Para que el compilador de Java no se confunda, debe cumplirse al menos una de estas condiciones:

    1. Diferente número de parámetros.
    2. Diferentes tipos de datos en los parámetros.
    3. Diferente orden de los tipos de parámetros.

    3. Ejemplo Práctico: Clase LiquidacionNomina

    Imagina un sistema que calcula el pago de un empleado. El pago puede variar según los bonos o deducciones.

    java

    public class CalculadoraNomina {

     

        // 1. Pago básico: Solo salario mensual

        public double calcularPago(double salarioBase) {

            return salarioBase;

        }

     

        // 2. Sobrecarga: Salario + un bono fijo

        public double calcularPago(double salarioBase, double bono) {

            return salarioBase + bono;

        }

     

        // 3. Sobrecarga: Salario + bono + porcentaje de deducción (ej. salud/pensión)

        public double calcularPago(double salarioBase, double bono, int porcentajeDeduccion) {

            double deduccion = salarioBase * (porcentajeDeduccion / 100.0);

            return (salarioBase + bono) - deduccion;

        }

    }


     

    5. Ejercicio de Reto para el Estudiante

    Reto: El Buscador de Precios
    Crea una clase llamada Catalogo que tenga un método sobrecargado buscarPrecio():

    1. Si se recibe un String (nombre del producto), devuelve el precio de una lista interna.
    2. Si se recibe un int (código de barras), busca por código.
    3. Si se recibe un String (nombre) y un boolean (esMayorista), devuelve el precio con un 20% de descuento.

    __________________________________________________________________________________________________________

    __________________________________________________________________________________________________________

    Métodos de Instancia (Instance Methods)

    • Asociación: Ligados a una instancia (objeto) particular de la clase.
    • Uso: Modifican o acceden al estado específico del objeto (this en Java/C#, self en Python).
    • Invocación: Requieren crear primero el objeto: Objeto obj = new Objeto(); obj.metodo();.
    • Ejemplo: factura1.calcularIVA(). 

     

    Métodos Estáticos (Static Methods / Class Methods)

    • Asociación: Ligados a la clase, no a instancias. Se crea una sola copia.
    • Uso: Operaciones que no dependen del estado de un objeto, ideales para funciones de utilidad o métodos "fábrica".
    • Invocación: Se llaman directamente desde la clase: NombreClase.metodo();.
    • Restricciones: No pueden acceder a variables o métodos de instancia directamente.
    • Ejemplo: Math.sqrt(16) o Utilidades.convertirMoneda(). 

     

     

    Diferencias Clave

    Característica 

    Métodos de Instancia

    Métodos Estáticos (de Clase)

    Requiere Instancia

    Sí (new)

    No

    Acceso al Estado

    Sí (a this/self)

    No (solo datos estáticos)

    Uso principal

    Comportamientos específicos del objeto

    Funciones de utilidad/auxiliares

    Ejemplo (Java)

    void setNombre() {}

    static void print() {}

    Los Getters y Setters en Java

    son métodos públicos utilizados para acceder (get) y modificar (set) el valor de atributos privados de una clase, facilitando el encapsulamiento y la protección de datos. Un getter devuelve el valor, mientras que un setter actualiza el valor del atributo.

    public class Persona {

        // Atributos privados (encapsulamiento)

        private String nombre;

        private int edad;

     

        // Constructor

        public Persona(String nombre, int edad) {

            this.nombre = nombre;

            this.edad = edad;

        }

     

        // Getter para nombre

        public String getNombre() {

            return nombre;

        }

     

        // Setter para nombre

        public void setNombre(String nombre) {

            this.nombre = nombre;

        }

     

        // Getter para edad

        public int getEdad() {

            return edad;

        }

     

        // Setter para edad con validación

        public void setEdad(int edad) {

            if (edad > 0) {

                this.edad = edad;

            } else {

                System.out.println("La edad no puede ser negativa.");

            }

        }

    }

     

    // Uso de la clase

    public class Main {

        public static void main(String[] args) {

            Persona p = new Persona("Ana", 25);

           

            // Uso de getters

            System.out.println(p.getNombre()); // Imprime: Ana

           

            // Uso de setters

            p.setNombre("Pedro");

            p.setEdad(30);

           

            System.out.println(p.getNombre() + " tiene " + p.getEdad() + " años."); // Pedro tiene 30 años.

        }

    }

    Beneficios y Características:

    • Encapsulamiento: Protege las variables de instancia.
    • Validación: Los setters pueden validar datos antes de asignarlos (ej. evitar edades negativas).
    • Generación Automática: Los IDEs como Eclipse o NetBeans generan estos métodos automáticamente (clic derecho -> "Generate Getters and Setters").
    • Convención: Usan la estructura getNombreAtributo() y setNombreAtributo().

    Actividades: 0
  • SEMANA DE PARCIALES

    ESTUDIANTES DIURNOS   ATENCION - ATENCION  - IS02D4  

    El parcial se aplicara el Jueves 19 de Marzo a partir de la 2:00 pm en punto.  tendrá una duración de 120 minutos,  Dicho parcial tendrá como objetivo, identificar el nivel de conocimiento que se tiene de la Programación Orientada a Objeto. y su incidencia en el contexto del estudiante.    El parcial será estilo Test, con preguntas tipo selección, además de ejercicios prácticos, donde podrá aplicar el conocimiento adquirido.

    ESTUDIANTES NOCTRUNO - ATENCION - ATENCION  - IS02N1

     El modelo de evaluación para estos estudiantes será la aplicación de luna RUBRICA PARA LOS ESTUDIANTES DEL CURSO NOCTURNO.

    Criterio

    Excelente (5.0)

    Bueno (4.0)

    Básico (3.0)

    Bajo (1–2.9)

    Comprensión de POO

    Explica claramente los conceptos de clase, objeto y método

    Comprende la mayoría de conceptos

    Presenta confusión parcial

    No reconoce los conceptos

    Identificación de clases y objetos

    Identifica correctamente clases y objetos en código

    Identifica la mayoría

    Presenta errores frecuentes

    No logra identificarlos

    Comprensión de métodos

    Reconoce correctamente estructura y uso

    Reconoce parcialmente

    Confunde parámetros o retorno

    No identifica métodos

    Sobrecarga de métodos

    Identifica correctamente sobrecarga en ejemplos

    Reconoce algunos casos

    Confunde con otros conceptos

    No reconoce sobrecarga

    Interpretación de código

    Analiza correctamente código Java

    Interpreta parcialmente

    Presenta errores frecuentes

    No logra interpretar

    Criterio

    Excelente (5.0)

    Bueno (4.0)

    Básico (3.0)

    Bajo

    Definición de clase

    Clase correctamente definida

    Pequeños errores

    Estructura incompleta

    Incorrecta

    Uso de atributos

    Atributos correctos y bien usados

    Algunos errores

    Uso limitado

    No funciona

    Implementación de métodos

    Métodos correctos y funcionales

    Funciona parcialmente

    Errores lógicos

    No funciona

    Sobrecarga de métodos

    Sobrecarga correcta

    Intento válido

    Implementación incorrecta

    No existe

    Ejecución del programa

    Programa ejecuta correctamente

    Errores menores

    Errores frecuentes

    No ejecuta

    Criterio

    Excelente (5.0)

    Bueno (4.0)

    Básico (3.0)

    Bajo

    Documento presentado

    Presentan un excelente documento con las normas APA

    Presentan un buen documento con las normas APA

    Presentan un aceptable documento con las normas APA

    NO Presentan un documento con las normas APA

    Presentación

    Utilizan una excelente herramienta digital para sustentar el proyecto

    Utilizan una buena herramienta digital para sustentar el proyecto

    Utilizan una aceptable herramienta digital para sustentar el proyecto

    NO Utilizan herramienta digital para sustentar el proyecto

    Definición de clase

    Clase correctamente definida

    Pequeños errores

    Estructura incompleta

    Incorrecta

    Uso de atributos

    Atributos correctos y bien usados

    Algunos errores

    Uso limitado

    No funciona

    Implementación de métodos

    Métodos correctos y funcionales

    Funciona parcialmente

    Errores lógicos

    No funciona

    Sobrecarga de métodos

    Sobrecarga correcta

    Intento válido

    Implementación incorrecta

    No existe

    Ejecución del programa

    Programa ejecuta correctamente

    Errores menores

    Errores frecuentes

    No ejecuta

    Presentación Personal

    Su presentación personal es excelente

    Su presentación personal es buena

    Su presentación personal es aceptable

    Deb mejorar la presentación personal

    Puntual

    Se presenta puntual a la sustentación

     

    Debe mejorar en su puntualidad

    No es puntual al llegar

    Coordinación

    El equipo demuestra excelente coordinación en la sustentación

    El equipo demuestra buena coordinación en la sustentación

    El equipo demuestra poca coordinación en la sustentación

    El equipo No demuestra coordinación en la sustentación

    Mejo del tiempo

    Utilizan el tiempo acordado para la sustentación

     

    Se les dificulta Utilizan el tiempo acordado para la sustentación

    NO Utilizan el tiempo acordado para la sustentación

     

     

     

     

     

    Actividades: 0
  • 23 de marzo - 29 de marzo

    Semana actual

    Java Encapsulamiento y reutilización

    En Java el concepto de encapsulamiento es de los primeros que aparece y hace referencia a limitar el acceso a las variables de nuestras clases Java de tal forma que podamos tener un mayor control sobre ellas. Normalmente utilizando métodos set/get.

    El encapsulamiento en Java es un principio de la programación orientada a objetos (POO) que agrupa datos (atributos) y métodos en una sola unidad (clase), restringiendo el acceso directo a los componentes internos. Se logra usando modificadores de acceso (privateprotected) y métodos getter/setter para proteger la integridad de los datos
     
    Aspectos Clave del Encapsulamiento:
    • Ocultamiento de datos: Los atributos de una clase se declaran como private para que no sean accesibles directamente desde fuera de la clase.
    •  
    • Métodos Getter y Setter: Se proporcionan métodos públicos para leer (get) o modificar (set) los valores de los atributos privados, permitiendo validar la información antes de cambiarla
      .
    Seguridad y Control: Evita la modificación accidental o incorrecta de los datos, mejorando la robustez del código
    .Flexibilidad: Permite cambiar la implementación interna de una clase sin afectar a las clases que la utilizan
     
     

    Ejemplo de encapsulación en Java

    A continuación se muestra un ejemplo que demuestra cómo lograr la encapsulación en Java:

    /* File name : EncapTest.java */ public class EncapTest { private String name; private String idNum; private int age; public int getAge() { return age; } public String getName() { return name; } public String getIdNum() { return idNum; } public void setAge( int newAge) { age = newAge; } public void setName(String newName) { name = newName; } public void setIdNum( String newId) { idNum = newId; } }
     

    Los métodos públicos setXXX() y getXXX() son los puntos de acceso a las variables de instancia de la clase EncapTest . Normalmente, estos métodos se denominan getters y setters. Por lo tanto, cualquier clase que desee acceder a las variables debe hacerlo a través de estos getters y setters.

    Se puede acceder a las variables de la clase EncapTest mediante el siguiente programa:

    /* File name : RunEncap.java */ public class RunEncap { public static void main(String args[]) { EncapTest encap = new EncapTest(); encap.setName("James"); encap.setAge(20); encap.setIdNum("12343ms"); System.out.print("Name : " + encap.getName() + " Age : " + encap.getAge()); } } public class EncapTest { private String name; private String idNum; private int age; public int getAge() { return age; } public String getName() { return name; } public String getIdNum() { return idNum; } public void setAge( int newAge) { age = newAge; } public void setName(String newName) { name = newName; } public void setIdNum( String newId) { idNum = newId; } }

     

     

    Beneficios de la encapsulación

    • Los campos de una clase pueden configurarse como de solo lectura o de solo escritura.

    • Una clase puede tener control total sobre lo que se almacena en sus campos.

    Encapsulación de Java: Clase de solo lectura

    Una clase de solo lectura solo puede tener métodos getter para obtener los valores de los atributos; no debe tener ningún método setter.

    Ejemplo: Creación de una clase de solo lectura

    En este ejemplo, definimos una clase Person con dos métodos getter: getName() y getAge() . Estos métodos se pueden usar para obtener los valores de los atributos declarados como privados en la clase.

     
     
    // Class "Person" class Person { private String name = "Robert"; private int age = 21; // Getter methods public String getName() { return this.name; } public int getAge() { return this.age; } } public class Main { public static void main(String args[]) { // Object to Person class Person per = new Person(); // Getting and printing the values System.out.println("Name of the person is: " + per.getName()); System.out.println("Age of the person is: " + per.getAge()); } }
    
    
     

    Encapsulación de Java: Clase de solo escritura

    Una clase de solo escritura solo puede tener métodos setter para establecer los valores de los atributos; no debe tener ningún método getter.

    Ejemplo: Creación de una clase de solo escritura

    En este ejemplo, definimos una clase Person con dos métodos setter: setName() y setAge() . Estos métodos se pueden usar para establecer los valores de los atributos declarados como privados en la clase.

     
     
    // Class "Person" class Person { private String name; private int age; // Setter Methods public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } } public class Main { public static void main(String args[]) { // Object to Person class Person per = new Person(); // Setting the values per.setName("Robert"); per.setAge(21); } }
    
    

    Encapsulación en Java: Más ejemplos

    Ejemplo 1: Clase Persona (totalmente encapsulada)

    Este ejemplo crea una clase completamente encapsulada llamada "Persona". Esta clase tiene atributos de clase privados, métodos setter y getter.

     
     
    // Class "Person" class Person { private String name; private int age; // Setter Methods public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } // Getter methods public String getName() { return this.name; } public int getAge() { return this.age; } } // The Main class to test encapsulated class "Person" public class Main { public static void main(String args[]) { // Objects to Person class Person per1 = new Person(); Person per2 = new Person(); // Setting the values per1.setName("Robert"); per1.setAge(21); per2.setName("Riyan"); per2.setAge(22); // Printing the values System.out.println("Person 1: Name : " + per1.getName() + " Age : " + per1.getAge()); System.out.println("Person 2: Name : " + per2.getName() + " Age : " + per2.getAge()); } }
    
    
     

    Ejemplo 2: Clase Empleado (Totalmente Encapsulada)

    Este ejemplo crea una clase completamente encapsulada llamada "Empleado". Esta clase tiene atributos de clase privados, métodos setter y getter.

     
     
    // Class "Employee" class Employee { private String emp_name; private String emp_id; private double net_salary; // Constructor public Employee(String emp_name, String emp_id, double net_salary) { this.emp_name = emp_name; this.emp_id = emp_id; this.net_salary = net_salary; } // Getter methods public String getEmpName() { return emp_name; } public String getEmpId() { return emp_id; } public double getSalary() { return net_salary; } // Setter methods public void setEmpName(String emp_name) { this.emp_name = emp_name; } public void setEmpId(String emp_id) { this.emp_id = emp_id; } public void setSalary(double net_salary) { this.net_salary = net_salary; } } // The Main class to test encapsulated class "Employee" public class Main { public static void main(String args[]) { // Objects to Employee class // First object - setting values using constructor Employee emp = new Employee("Robert", "EMP001", 75450.00); // Printing data System.out.println("Employee (Intial Values):"); System.out.println(emp.getEmpId() + " , " + emp.getEmpName() + " , " + emp.getSalary()); // Updating values using setter methods emp.setEmpName("Riyan"); emp.setEmpId("EMP002"); emp.setSalary(90500.00); // Printing data System.out.println("Employee (Updated Values):"); System.out.println(emp.getEmpId() + " , " + emp.getEmpName() + " , " + emp.getSalary()); } }
     
     

     

    ACTIVIDAD

    Tome el código que esta propuesto en este documento, e impleméntelo en Netbeans.

    Deberá presentarlo ya desarrollado en nuestro próximo encuentro académico (próxima clase)

    
    
    Actividades: 0
  • 30 de marzo - 5 de abril

    Actividades: 0
  • 6 de abril - 12 de abril

    Actividades: 0
  • 13 de abril - 19 de abril

    Actividades: 0
  • 20 de abril - 26 de abril

    Actividades: 0
  • 27 de abril - 3 de mayo

    Actividades: 0
  • 4 de mayo - 10 de mayo

    Actividades: 0
  • 11 de mayo - 17 de mayo

    Actividades: 0
  • 18 de mayo - 24 de mayo

    Actividades: 0
  • 25 de mayo - 31 de mayo

    Actividades: 0
  • 1 de junio - 7 de junio

    Actividades: 0
  • 8 de junio - 14 de junio

    Actividades: 0