Skip to content

Modelo: Curso, Sección y Clase (referencia Blackboard / Google Classroom)

Este documento define la lógica del dominio académico de la intranet y cómo se relacionan curso, sección y clase, tomando como referencia Blackboard y Google Classroom.


1. Cómo lo manejan Blackboard y Google Classroom

Blackboard (típico en universidades)

Concepto en BlackboardQué esEn nuestra intranet
CourseLa materia / oferta académica (ej. "Álgebra I - 2025"). Tiene contenido, programa, criterios.Course (tabla courses): la materia con nivel y grado (ej. Matemáticas 1° Secundaria).
SectionUn grupo concreto de ese curso: "Sección 001", "Sección 002". Mismo curso, distinto horario/grupo de alumnos/profesor.Section (tabla sections): el grupo/aula (ej. 1° Secundaria A, 1° Secundaria B).
Course + SectionLa “clase” que asistes: el curso en una sección específica, con un instructor y una lista de alumnos.Class (tabla classes): una materia (course) en una sección, con un profesor. Ej. Matemáticas en 1° Sec A.

En Blackboard: un curso tiene varias secciones. Cada sección es un grupo; el contenido del curso puede compartirse o cada sección tener su propia copia. En nuestra intranet es equivalente: un mismo curso (materia) se “dicta” en varias secciones; cada combinación curso+sección+profesor es una clase.

Google Classroom

Concepto en ClassroomQué esEn nuestra intranet
ClassUna “clase” = una materia para un grupo de alumnos, con un profesor. Ej. "Matemáticas 5°A".Equivale a nuestra Class (curso en una sección con un profesor). En Classroom no se separa explícitamente “sección” y “curso”; nosotros sí.
Contenido (tareas, materiales)Está asociado a esa Class.En nosotros: tasks, class_files, class_announcements están asociados a Class (no al curso global).

En resumen: en Classroom cada “Class” es ya la materia para un grupo. En nuestra intranet ese “grupo” es la Section y la materia es el Course; la Class es “este curso en esta sección con este profesor”.


2. Definición en esta intranet (reformulada)

2.1 Curso (Course)

  • Qué es: La materia / asignatura con nivel y grado. Ej. “Matemáticas 1° Secundaria”, “Comunicación 5° Primaria”, “Jardín 5 años”.
  • No tiene alumnos ni profesores directamente. Es la definición del “qué se enseña” y “para qué grado/nivel”.
  • Un curso no “tiene” secciones en la base de datos; se relaciona con las secciones a través de las clases (ver abajo).

2.2 Sección (Section)

  • Qué es: El grupo / aula de alumnos. Ej. “1° Secundaria A”, “1° Secundaria B”, “Jardín 5 años A”.
  • Identificada por: año académico + nivel (INICIAL/PRIMARIA/SECUNDARIA) + grado ("1°", "5 años") + nombre de sección ("A", "B", "C").
  • Un alumno se matricula en una sección (tabla section_enrollments). Esa sección tiene muchas clases (una por materia). El alumno asiste a todas esas clases.

2.3 Clase (Class / SchoolClass)

  • Qué es: Un curso dictado en una sección, con un profesor (y opcionalmente horario).
  • Es la “clase” a la que asistes: “Matemáticas 1° Sec A” = Course (Matemáticas 1° Sec) + Section (1° Sec A) + Teacher.
  • Sí: un curso “tiene” secciones en el sentido de que se ofrece en varias secciones. Cada oferta es una Class:
    • Matemáticas 1° Sec → en Sección A → Class (Mate 1° Sec A, prof. X).
    • Matemáticas 1° Sec → en Sección B → Class (Mate 1° Sec B, prof. Y).
  • Tareas, archivos y anuncios son por clase (por esa combinación curso+sección), no por “curso” global.

3. Relaciones (resumen)

Course (materia)
  └── no tiene alumnos ni secciones directamente

Section (grupo/aula, ej. 1° Sec A)
  ├── tiene muchas Classes (una por materia: Mate, Comunicación, etc.)
  └── tiene alumnos vía section_enrollments (matrícula por sección)

Class = Section + Course + Teacher
  ├── pertenece a UNA Section
  ├── pertenece a UN Course
  ├── tiene UN Teacher
  └── tiene: tasks, class_files, class_announcements, grades, attendance (por esta clase)
  • ¿Un curso tiene secciones?
    , en el sentido de que el mismo curso se dicta en varias secciones. Eso se modela con varias Classes: misma course_id, distinto section_id (y puede distinto teacher_id).

  • ¿Una sección tiene cursos?
    : una sección tiene varias Classes, y cada Class tiene un Course. Así la sección “tiene” todas las materias (Matemáticas, Comunicación, etc.) cada una como una Class.


4. Diagrama entidad-relación (Mermaid)

mermaid
erDiagram
    COURSE ||--o{ CLASS : "se dicta en"
    SECTION ||--o{ CLASS : "tiene"
    USER ||--o{ CLASS : "enseña"
    CLASS ||--o{ TASK : "tiene"
    CLASS ||--o{ GRADE : "tiene"
    CLASS ||--o{ ATTENDANCE : "tiene"
    CLASS ||--o{ CLASS_FILE : "tiene"
    CLASS ||--o{ CLASS_ANNOUNCEMENT : "tiene"
    SECTION ||--o{ SECTION_ENROLLMENT : "matrícula"
    USER ||--o{ SECTION_ENROLLMENT : "inscrito en"
    TASK ||--o{ TASK_SUBMISSION : "entrega"
    USER ||--o{ TASK_SUBMISSION : "entrega"

    COURSE {
        long id PK
        string name
        string education_level
        string grade_level
    }

    SECTION {
        long id PK
        int academic_year
        string education_level
        string grade_label
        string name
    }

    CLASS {
        long id PK
        long section_id FK
        long course_id FK
        long teacher_id FK
    }

    USER {
        long id PK
        string role
    }

    SECTION_ENROLLMENT {
        long id PK
        long section_id FK
        long student_id FK
    }

    TASK {
        long id PK
        long class_id FK
    }

    TASK_SUBMISSION {
        long id PK
        long task_id FK
        long student_id FK
    }

Cómo leer el diagrama

  • Course se relaciona con Class: un curso “se dicta en” varias clases (una por sección).
  • Section “tiene” muchas Class: en cada sección hay una clase por materia.
  • Class es el cruce: Section + Course + Teacher. De ahí cuelgan tasks, grades, attendance, etc.
  • Los alumnos (User con rol estudiante) se vinculan a la sección vía SectionEnrollment; no se matricula por clase.

Flujo “Un curso tiene secciones”

mermaid
flowchart LR
    subgraph Curso["Course (materia)"]
        C[Matemáticas 1° Sec]
    end

    subgraph Secciones["Secciones (grupos)"]
        SA[1° Sec A]
        SB[1° Sec B]
    end

    subgraph Clases["Class = curso en sección"]
        C1[Mate 1° Sec A]
        C2[Mate 1° Sec B]
    end

    C --> C1
    C --> C2
    SA --> C1
    SB --> C2

El mismo Course (Matemáticas 1° Sec) aparece en la Section A y en la Section B como dos Classes distintas (mismo curso, distinta sección y puede distinto profesor).


5. Tablas en la base de datos (referencia rápida)

TablaRol
coursesMateria + nivel + grado (ej. Matemáticas 1° Sec).
sectionsGrupo/aula (ej. 1° Sec A, 1° Sec B).
classesCurso en una sección con un profesor (section_id, course_id, teacher_id).
section_enrollmentsMatrícula: alumno en una sección (asiste a todas las clases de esa sección).
tasksTarea de una clase (no del curso global). Mate 1°A y Mate 1°B tienen tareas distintas.
task_submissionsEntrega de un alumno en una tarea.
gradesNota por alumno, clase y tipo de evaluación.
attendanceAsistencia por alumno, clase y fecha.
class_filesArchivo asociado a una clase.
class_announcementsAnuncio de una clase.

6. Ejemplo concreto

  • Courses: Matemáticas 1° Secundaria, Comunicación 1° Secundaria.
  • Sections: 1° Secundaria A (2025), 1° Secundaria B (2025).
  • Classes:
    • Class 1: Section 1° Sec A + Course Matemáticas 1° Sec + Prof. García.
    • Class 2: Section 1° Sec A + Course Comunicación 1° Sec + Prof. López.
    • Class 3: Section 1° Sec B + Course Matemáticas 1° Sec + Prof. Ruiz.
    • Class 4: Section 1° Sec B + Course Comunicación 1° Sec + Prof. López.
  • Alumno Juan inscrito en 1° Sec A → ve y asiste a Class 1 y Class 2 (todas las materias de su sección).
  • Tareas: las crea el profesor por clase. La tarea de Class 1 (Mate 1°A) no es la misma que la de Class 3 (Mate 1°B).

7. Confirmación final

  • Curso (Course) = materia + nivel + grado. No tiene secciones como columna; “tiene secciones” porque existen varias Classes con ese course_id y distintos section_id.
  • Sección (Section) = grupo/aula (A, B, C). Tiene muchas Classes (una por materia) y alumnos vía section_enrollments.
  • Clase (Class) = curso en una sección con un profesor. Es la unidad a la que se asocian tareas, archivos, anuncios, notas y asistencia.

Esto es coherente con Blackboard (curso con secciones; la “clase” que ves es curso+sección) y con Google Classroom (donde cada “Class” equivale a nuestra Class = curso en un grupo con un profesor).