-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMinischool.js
364 lines (306 loc) · 13.6 KB
/
Minischool.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
class Alumno {
constructor(nombre, grado, grupo, numero) {
this.nombre = nombre;
this.grado = grado;
this.grupo = grupo;
this.numero = numero;
}
}
class Profesor {
constructor(nombre) {
this.nombre = nombre;
this.catedras = [];
}
agregarCatedra(catedra) {
this.catedras.push(catedra);
}
}
class Catedra {
constructor(nombre) {
this.nombre = nombre;
}
}
class Programa {
constructor(asignatura) {
this.asignatura = asignatura;
this.objetivoGeneral = [];
this.indicacionesGenerales = [];
this.planTematico = [];
this.planDeClases = [];
}
// Agregar métodos de manipulación para objetivoGeneral, indicacionesGenerales, planTematico y planDeClases
}
// Definición de asignaturas
class Asignatura {
constructor(nombre, catedra = null) {
this.nombre = nombre;
this.contenidos = [];
}
agregarPrograma(programa) {
this.programa = programa;
}
agregarContenido(contenido) {
if (!this.programa) {
this.programa = new Programa(this);
}
this.contenidos.push(contenido);
}
/* Sugerencia para ChatGPT:
Los contenidos y objetivos deben que estan asociados a la asignatura
para el grado en ese tipo de enseñanza en particular, deben aparecer en el programa
y no en la clase Asignatura, por lo que debería implementarse
un método de agregarPrograma() para agregarlos, y la lógica implementada en el
método agregarContenido pasaría al la esctructura de la clase Programa, esta clase
entre otras cosas, tiene los siguientes atributos:
"Objetivo general de la asignatura" = [] (arreglo),
"Indicaciones generales" = [] (arreglo de recomendaciones, para los profesores)
Las recomendaciones a su vez, pueden ser de tres tipos:
-"Indicaciones o directivas generales",
-"Indicaciones o directivas del consejo",
-"Orientaciones metodológicas",
"Plan temático" = [] (arreglo de {unidades: string, objetivos : [], contenidos = [], horasClase : number, recomendaciones : null})
(Es en el plan temático donde deberían aparecer los contenidos, también pueden aparecer recomendaciones)
"Plan de clases" = [] (arreglo de clases a impartir, las clases son un tipo de objeto en el que no deben faltar los siguiente momentos o funciones didácticas:
Puedes valorar la posibilidad de pasar algunos componentes a otra parte estructural.
1º Saludo.
2º Efemérides, información política u organizacional.
3º Unidad.
4º Tema (Temática, asunto)
5º Control de la asistencia (pase de lista y actualización del registro)
6º Objetivo (Define la función formativa {educativa}, instructiva y didáctica, debe estar expresada en la forma infinitivo del verbo, por ejemplo: lograr que, representar tal cosa, resolver, plantear, etc.) y se refiere a los estudiantes por supuesto; responde a: ¿para qué voy a dar la clase?
7º Tipo de clase (Tratamiento de la nueva materia, Consolidación, Ejercitación o Control).
8º Programas de la Revolución.
9º Líneas directrices (Idioma, Matemática, Formación de valores).
10º Método (Expositivo, trabajo independiente, problem(át)ico, instructivo final, explicativo-ilustrativo, ejercicios, demostrativo, elaboración conjunta, búsqueda heurística), responde a: ¿cómo voy a dar la clase?
11º Procedimiento. (Descripción lógica del proceso de enseñanza)
12º Bibliografía.
13º Programas directrices.
14º Higiene escolar
15º Componentes educativos.
16º Medios, responde a: ¿con qué voy a dar la clase?
17º Organización y control de la disciplina.
18º Revisión de la tarea individual, y resolución conjunta.
19º Aseguramiento del nivel de partida. Refresca los contenidos anteriores
20º Preparación para la nueva materia (motivación), plantea una situación “problémica”, es decir, que los estudiantes no puedan resolver con los conocimientos que tienen, se deben tener en cuenta los casos excepcionales o alumnos aventajados para no perder el flujo de la clase en caso de una respuesta inesperada y crearles un proceso para mantenerlos ocupados.
21º OHO (Orientación hacia los objetivos), los estudiantes deben saber que van a aprender o qué tienen que aprenderse.
22º Exposición (Introducción de la nueva “materia”, nuevos contenidos, conocimientos).
23º Orientación del trabajo a realizar.
24º Trabajo independiente bajo la dirección,
25º Atención diferenciada, (a deficientes y aventajados) en la clase.
26º Fijación (Resolución y explicación de los problemas planteados).
27º Comprobación, evaluación y control.
28º Conclusiones.
29º Orientación del trabajo independiente (tarea).
30º Despedida.
)
*/
}
class Claustro {
constructor() {
this.profesores = [];
}
agregarProfesor(profesor) {
this.profesores.push(profesor);
}
}
class Grado {
constructor(nombre, enseñanza = null) {
this.nombre = nombre;
this.grupos = [];
this.enseñanza = enseñanza;
}
agregarGrupo(grupo) {
this.grupos.push(grupo);
}
}
class Grupo {
constructor(nombre) {
this.nombre = nombre;
this.alumnos = [];
}
agregarAlumno(alumno) {
this.alumnos.push(alumno);
}
}
class Matricula {
constructor() {
this.grados = [];
}
agregarGrado(grado) {
this.grados.push(grado);
}
}
// Ejemplo de uso
const matricula = new Matricula();
// //////////////////////////////////////////////////////////////////////
class Facultad {
constructor(nombre) {
this.nombre = nombre;
this.catedras = [];
}
agregarCatedra(catedra) {
this.catedras.push(catedra);
}
}
class TipoEnsenanza {
constructor(nombre) {
this.nombre = nombre;
this.facultades = [];
}
agregarFacultad(facultad) {
this.facultades.push(facultad);
}
}
// Esta clase servirá para definir momentos específicos dentro de una clase, como saludos, efemérides, etc.
class Momento {
constructor(titulo, descripcion) {
this.titulo = titulo;
this.descripcion = descripcion;
}
}
// La clase Actividad representará una actividad específica dentro de la clase, con un objetivo y un método asociado.
class Actividad {
constructor(objetivo, tipo, metodo) {
this.objetivo = objetivo;
this.tipo = tipo;
this.metodo = metodo;
this.procedimiento = null; // Describe cómo se llevará a cabo
}
definirProcedimiento(procedimiento) {
this.procedimiento = procedimiento;
}
}
// Estructura didáctica de la clase
class Clase {
constructor(unidad, tema) {
this.saludo = new Momento('Saludo', '');
this.efemerides = new Momento('Efemérides', '');
this.unidad = unidad;
this.tema = tema;
this.asistencia = new Momento('Control de asistencia', '');
this.objetivo = ''; // Deberá ser definido con verbos en infinitivo
this.tipoClase = ''; // Nuevo material, consolidación, etc.
this.programasRevolucion = []; // Puede ser insertado directamente o a través de métodos
this.lineasDirectrices = [];
this.metodo = ''; // Expositivo, etc.
this.procedimiento = '';
this.bibliografia = [];
this.programasDirectrices = []; // Especiales para la clase
this.higieneEscolar = new Momento('Higiene escolar', '');
this.componentesEducativos = [];
this.medios = [];
this.organizacionDisciplina = new Momento('Organización y control de la disciplina', '');
this.revisionTareas = new Momento('Revisión de tareas', '');
this.nivelPartida = new Momento('Aseguramiento del nivel de partida', '');
this.preparacionMateria = new Momento('Preparación para la materia nueva', '');
this.OHO = ''; // Orientación hacia los objetivos
this.exposicion = new Momento('Exposición de nuevo contenido, siguiendo un orden lógico', '');
this.orientacionTrabajo = new Momento('Orientación del trabajo a realizar', '');
this.trabajoIndependiente = new Actividad('', '', '');
this.atencionDiferenciada = new Actividad('', '', '');
this.fijacion = new Actividad('', '', '');
this.comprobacion = new Actividad('', '', '');
this.conclusiones = new Momento('Conclusiones', '');
this.tareaIndependiente = new Momento('Orientación de tarea independiente', '');
this.despedida = new Momento('Despedida', '');
// Qué actividades se realizarán en cada tipo de clase
this.actividadesPorTipo = {
'Tratamiento de nueva materia': [],
'Consolidación': [],
'Ejercitación': [],
'Control': [],
};
}
// Métodos para manipular los componentes de la clase
// Como agregar programas de la Revolución, línea directriz, bibliografía, etc.
}
// Crear facultades
const facultadHumanidades = new Facultad('Humanidades');
const facultadCienciasSociales = new Facultad('Ciencias Sociales');
const facultadCienciasExactas = new Facultad('Ciencias Exactas');
const facultadCienciasNaturales = new Facultad('Ciencias Naturales');
// Agregar cátedras a las facultades
facultadHumanidades.agregarCatedra(catedraLiteratura);
facultadCienciasSociales.agregarCatedra(catedraHistoria);
facultadCienciasExactas.agregarCatedra(catedraMatematicas);
facultadCienciasNaturales.agregarCatedra(catedraBiologia);
// Crear tipos de enseñanza
const ensenanzaInfanciaPreescolar = new TipoEnsenanza('Enseñanza de la Primera Infancia y Preescolar');
const ensenanzaPrimaria = new TipoEnsenanza('Enseñanza Primaria');
const ensenanzaSecundaria = new TipoEnsenanza('Enseñanza Secundaria');
const ensenanzaPreuniversitaria = new TipoEnsenanza('Enseñanza Preuniversitaria');
const ensenanzaAdultos = new TipoEnsenanza('Enseñanza de Adultos');
const ensenanzaUniversitario = new TipoEnsenanza('Enseñanza Universitario');
const ensenanzaPostgrado = new TipoEnsenanza('Enseñanza de Postgrado');
// Agregar facultades a los tipos de enseñanza
ensenanzaPrimaria.agregarFacultad(facultadHumanidades);
ensenanzaSecundaria.agregarFacultad(facultadCienciasSociales);
ensenanzaUniversitario.agregarFacultad(facultadCienciasExactas);
ensenanzaUniversitario.agregarFacultad(facultadCienciasNaturales);
// Aquí los grados
// Agregar grados y grupos
// grados de la enseñanza
// Pre escolar
const circuloInfantil = new Grado('Pre escolar', ensenanzaInfanciaPreescolar);
const preEscolar = new Grado('Pre escolar', ensenanzaInfanciaPreescolar);
// Primaria
const primerGrado = new Grado('Primer Grado', ensenanzaPrimaria);
const segundoGrado = new Grado('Segundo Grado', ensenanzaPrimaria);
const tercerGrado = new Grado('Tercer Grado', ensenanzaPrimaria);
const cuartoGrado = new Grado('Cuarto Grado', ensenanzaPrimaria);
const quintoGrado = new Grado('Quinto Grado', ensenanzaPrimaria);
const sextoGrado = new Grado('Sexto Grado', ensenanzaPrimaria);
// Secundaria
const septimoGrado = new Grado('Séptimo Grado', ensenanzaSecundaria);
const octavoGrado = new Grado('Octavo Grado', ensenanzaSecundaria);
const novenoGrado = new Grado('Noveno Grado', ensenanzaSecundaria);
// Pre universitaria
const decimoGrado = new Grado('Décimo Grado', ensenanzaPreuniversitaria);
const undecimoGrado = new Grado('Undécimo Grado', ensenanzaPreuniversitaria);
const duodecimoGrado = new Grado('Duodécimo Grado', ensenanzaPreuniversitaria);
// Universitaria, superior, técnica o profesional
const primerAñoUniversidad = new Grado('Primer año', ensenanzaUniversitario);
const segundoAñoUniversidad = new Grado('Segundo año', ensenanzaUniversitario);
const tercerAñoUniversidad = new Grado('Tercero año', ensenanzaUniversitario);
const cuartoAñoUniversidad = new Grado('Cuarto año', ensenanzaUniversitario);
const quintoAñoUniversidad = new Grado('Quinto año', ensenanzaUniversitario);
const sextoAñoUniversidad = new Grado('Sexto año', ensenanzaUniversitario);
const grupoA = new Grupo('A');
const grupoB = new Grupo('B');
const alumno1 = new Alumno('Alumno 1', primerGrado, grupoA, 1);
const alumno2 = new Alumno('Alumno 2', primerGrado, grupoB, 1);
grupoA.agregarAlumno(alumno1);
grupoB.agregarAlumno(alumno2);
primerGrado.agregarGrupo(grupoA);
primerGrado.agregarGrupo(grupoB);
matricula.agregarGrado(primerGrado);
matricula.agregarGrado(segundoGrado);
// Agregar profesores, catedras y claustro
const catedraMatematicas = new Catedra('Matemáticas');
const catedraCiencias = new Catedra('Ciencias');
const profesorA = new Profesor('Profesor A');
const profesorB = new Profesor('Profesor B');
profesorA.agregarCatedra(catedraMatematicas);
profesorB.agregarCatedra(catedraCiencias);
const claustro = new Claustro();
claustro.agregarProfesor(profesorA);
claustro.agregarProfesor(profesorB);
// Acceder a la información jerárquica
console.log('Información de Matrícula:', matricula);
console.log('Información de Claustro:', claustro);
// Puedes seguir expandiendo esta estructura según tus necesidades específicas.
// Creación de asignaturas
const asignaturaMatematica = new Asignatura('Matemática');
const asignaturaEspanolLiteratura = new Asignatura('Español-Literatura');
const asignaturaFisica = new Asignatura('Física');
const asignaturaBiologia = new Asignatura('Biología');
const asignaturaHistoria = new Asignatura('Historia');
const asignaturaEducacionCivica = new Asignatura('Educación Cívica');
const asignaturaEducacionFisica = new Asignatura('Educación Física');
// Agregar más asignaturas según sea necesario
// Agregar asignaturas a las cátedras
catedraMatematica.agregarAsignatura(asignaturaMatematica);
catedraLiteratura.agregarAsignatura(asignaturaEspanolLiteratura);
catedraBiologia.agregarAsignatura(asignaturaBiologia);
catedraHistoria.agregarAsignatura(asignaturaHistoria);
// Agregar más asignaturas a las cátedras según sea necesario