-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCurso de algoritmos para profesores.js
73 lines (62 loc) · 6.73 KB
/
Curso de algoritmos para profesores.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
/*
Para diseñar una asignatura que cumpla con los requisitos mencionados y que se adapte a un curso de 100 horas-clase de 2 años para profesores de matemáticas de escuelas primarias, secundarias y preuniversitarias, debemos considerar la importancia de los algoritmos en la informática y su aplicación práctica en la resolución de problemas cotidianos.
Nombre de la asignatura: Algoritmos y Programación para la Enseñanza Matemática
Objetivo general de la asignatura:
Proporcionar a los profesores de matemáticas de nivel primario, secundario y preuniversitario una comprensión sólida de los principios fundamentales de los algoritmos y la programación, utilizando Javascript, con el fin de que puedan aplicar estos conocimientos en la enseñanza y resolver problemas matemáticos y reales con un enfoque algorítmico.
A continuación, se presenta una propuesta esquemática de cómo podrían estructurarse las 100 horas-clase, las cuales están diseñadas para ir aumentando en complejidad y construir sobre los conocimientos previamente adquiridos:
### Clases 1-10: Introducción a Algoritmos y Programación Básica en Javascript
- Temáticas: Variables, operadores, estructuras de control, funciones.
- Objetivos: Comprender los fundamentos de la programación y escribir algoritmos simples en Javascript.
- Problemática que resuelve: Comprensión de la lógica de programación y la sintaxis básica de Javascript.
- Contenido: Conceptos básicos de programación; sintaxis y estructuras en Javascript moderno (ES6+); ejemplos de uso de JSDoc.
- Datos colaterales: Historia de Javascript, aplicaciones y relevancia actual.
- Ejercicios: Programas simples como cálculo de áreas, conversiones de unidades.
- Bibliografía: “Eloquent JavaScript” por Marijn Haverbeke; documentación de Mozilla Developer Network (MDN).
### Clases 11-20: Estructuras de Datos Básicas y Algoritmos de Ordenación
- Temáticas: Arreglos, objetos, algoritmos de ordenación como bubble sort, selection sort.
- Objetivos: Comprender y aplicar estructuras de datos y algoritmos de ordenación básicos.
- Problemática que resuelve: Organizar y manipular datos para su uso en cálculos y presentaciones matemáticas.
- Contenido: Estructuras de datos en Javascript; algoritmos de ordenación y su implementación.
- Datos colaterales: Importancia de la eficiencia algorítmica y el ordenamiento de datos.
- Ejercicios: Ordenamiento de listas de números, organización de datos de estudiantes.
- Bibliografía: “JavaScript: The Good Parts” por Douglas Crockford; “Algorithms” por Robert Sedgewick.
### Clases 21-40: Algoritmos de Búsqueda y Recursividad
- Temáticas: Búsqueda lineal, búsqueda binaria, conceptos de recursividad.
- Objetivos: Implementar y entender algoritmos de búsqueda eficientes y el concepto de recursividad.
- Problemática que resuelve: Localización rápida de datos y resolución de problemas que naturalmente se ajustan al paradigma recursivo.
- Contenido: Algoritmos de búsqueda; estructuras de datos recursivas; funciones recursivas.
- Datos colaterales: Historia de los algoritmos de búsqueda y su impacto en la computación.
- Ejercicios: Implementación de búsqueda binaria, ejercicios recursivos como cálculo de factorial.
- Bibliografía: “Introduction to Algorithms” por Thomas H. Cormen et al.
### Clases 41-60: Algoritmos sobre Grafos y Árboles
- Temáticas: Conceptos de grafos y árboles, algoritmos DFS (Depth-First Search) y BFS (Breadth-First Search).
- Objetivos: Entender la teoría de grafos y árboles y sus aplicaciones prácticas en la enseñanza y la solución de problemas.
- Problemática que resuelve: Modelado de situaciones complejas y resolución de problemas como la búsqueda de caminos mínimos.
- Contenido: Representación de grafos y árboles en Javascript; implementación de DFS y BFS.
- Datos colaterales: Aplicaciones de grafos y árboles en ciencias de la computación y matemáticas.
- Ejercicios: Traversal de grafos, construcción de árboles genealógicos.
- Bibliografía: “Graph Theory” por Reinhard Diestel.
### Clases 61-80: Paradigmas de Programación y Algoritmos Avanzados
- Temáticas: Programación dinámica, algoritmos voraces (greedy algorithms), backtracking.
- Objetivos: Aplicar paradigmas de programación avanzados para resolver problemas complejos.
- Problemática que resuelve: Búsqueda de soluciones óptimas y eficientes en problemas matemáticos y de optimización.
- Contenido: Paradigmas de programación en Javascript; ejemplos y aplicaciones de algoritmos avanzados.
- Datos colaterales: Evolución de los paradigmas de programación y su influencia en el desarrollo de algoritmos.
- Ejercicios: Resolución de problemas de mochila, cálculo de caminos óptimos.
- Bibliografía: “Algorithm Design” por Jon Kleinberg y Éva Tardos.
### Clases 81-100: Aplicaciones de Algoritmos y Proyecto Final
- Temáticas: Machine Learning, criptografía, algoritmos de compresión.
- Objetivos: Relacionar algoritmos con aplicaciones del mundo real e iniciar un proyecto que sintetice los conceptos aprendidos.
- Problemática que resuelve: Comprensión del impacto y la aplicación de los algoritmos en diferentes campos.
- Contenido: Introducción a algoritmos especializados; inicio y desarrollo de un proyecto final que involucre múltiples conceptos algorítmicos.
- Datos colaterales: Casos de estudio y análisis de la relevancia de los algoritmos en diversas industrias.
- Ejercicios: Proyecto final donde los estudiantes deben resolver un problema práctico usando los conceptos aprendidos.
- Bibliografía: “The Master Algorithm” por Pedro Domingos; “Data Structures and Algorithms in JavaScript” por Michael McMillan.
Este esquema es una guía general y flexible que puede ajustarse a las necesidades específicas de los participantes y a la profundidad con la que se quieran abarcar ciertos temas.
La asignatura debería estar acompañada de una plataforma en línea donde los profesores puedan acceder a recursos adicionales, discutir problemas y compartir soluciones.
El punto de partida para esta plataforma es la mini escuela virtual https://github.com/luisguillermobultetibles/Numeric-methods/blob/main/Minischool.js
Los mejores proyectos del curso seleccionados pueden integrarse con las proposiciones de los profesores para mejorar la mini escuela virtual.
Se incluirán las otras asignaturas.
El código fuente es abierto, libre y se basa en el principio de dirección colectiva y descentralizada.
El primer curso paralelo a este debe ser el de arquitectura o ingeniería de software cuyos datos aparecen en https://github.com/luisguillermobultetibles/Numeric-methods/blob/main/Computación.txt y cuyos contenidos deben ser horizontalizados con este para los aseguramientos de niveles de partida de las clases.
*/