Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Trabajo Final de Grado Grado en Ingeniería Electrónica Industrial y Automática Proyecto de Robótica Educativa MEMÓRIA Autor: Victor Barbero Alcaide Directora: Maria Isabel Tarres Puertas Convocatória: Junio 2023 Escuela Politécnica Superior de Ingeniería de Manresa EPSEM Proyecto de Róbotica Educativa Pág. 2 Proyecto de Róbotica Educativa Pág. 3 Resumen /Abstract Catellano: Proyecto de Final de grado con el objetivo de introducir nuevos métodos de aprendizaje en los centros educativos Catalanes con la implementación del lenguaje Swift[1] de Apple y los productos de Apple en diferentes etapas educativas para mejorar el aprendizaje en clase y la introducción de la programación y la robótica en el Aula y en los hogares. English: Final Degree Project with the aim of introducing new learning methods in Catalan schools with the implementation of Apple's Swift[1] language and Apple products in different educational stages to improve classroom learning and the introduction of programming and robotics in the classroom and at home. Proyecto de Róbotica Educativa Pág. 4 Sumario RESUMEN………………………………………………………………………………………….. 3 SUMARIO……………………………………………………………………………………………4 1.- GLOSARIO……………………………………………………………………………………....5 2.- PREFACIO……………………………………………………………………………………….7 2.1. Origen del Proyecto……………………………………………………………………7 2.2. Motivación………………………………………………………………………………7 2.3. Requerimientos Previos………………………………………………………………7 3.- INTRODUCCIÓN………………………………………………………………………………...9 3.1. Objetivos del Proyecto……………………………………………………………….12 3.2. Alcance del Proyecto………………………………………………………………...13 3.2.1. Swift en la Robótica Educativa y LEGO Mindstorms…………………..13 3.2.2. Aplicación de Swift en el Sistema Educativo Catalán………………….16 3.2.3. Implementación de Swift en Escuelas e Institutos fuera de Cataluña..60 4.- EJEMPLOS COMPLEMENTARIOS DE SWIFT……………………………………………63 Ejemplo 1…………………………………………………………………………………..63 Ejemplo 2…………………………………………………………………………………..65 Ejemplo 3…………………………………………………………………………………..66 Ejemplo 4…………………………………………………………………………………..68 Ejemplo 5…………………………………………………………………………………..69 CONCLUSIONES………………………………………………………………………………….71 BIBLIOGRAFIA……………………………………………………………………………………72 Referencias Bibliográficas………………………………………………………………..73 Proyecto de Róbotica Educativa Pág. 5 1. Glosario • Apple: La empresa de Tecnología de Cupertino [3] es conocida por sus productos como el IPhone[4], iPad[5], Mac, etc. • Swift: Un lenguaje de programación creado por Apple [2] para crear dispositos de iOS, macOS[8], watchOS [7] y tvOS[10]. • Xcode: El entorno de desarrollo integrado (IDE) de Apple [2] que se utiliza para escribir y desarrollar aplicaciones Swift. • iOS: Es un sistema operarivo móvil desarrollado por Apple [2] para dispositivos como IPhone[4] y iPad[5]. • macOS: El sistema operativo de computadora de Apple [2] que usan los Macs. • UIKit: Framework de interfaz de usuario para crear aplicaciones de iOS. • AppStore: Tienda de Aplicaciones de Apple [2], donde los usuarios pueden descargar aplicaciones para sus dispositivos. • Playground: Un entorno de desarrollo interactivo en Xcode[11] para una rápida revisión y prueba de código. • API: Una estructura de programa de aplicación, un conjunto de reglas y protocolos para crear procesos que interactúan con un sistema o servicio. Proyecto de Róbotica Educativa Pág. 7 2. Prefacio 2.1. Origen del Proyecto En la actualidad, la programación, los sistemas TIC, la robótica y la electrónica están avanzando considerablemente, por lo que son necesarios nuevos métodos formativos, en las escuelas, institutos y universidades del sistema educativo catalán, adaptados a la utilización de las nuevas tecnologías en el día a día. Así, por ejemplo, es el caso del ecosistema de Apple [2] y su lenguaje Swift [1], accesible para todos y sin coste adicional para aquellos que utilizan los productos de la empresa de Cupertino[3]. 2.2. Motivación Mi admiración por la empresa Apple [2] y mi inquietud por el estudio del desarrollo de nuevos métodos educativos, me han llevado a realizar el presente proyecto. Deseo que el presente trabajo, pueda ayudar a que estos métodos sean viables de ser implantados en las aulas, con el fin de facilitar y hacer que sea más ameno adquirir conocimientos de programación, robótica, electrónica y colateralmente idioma Inglés. 2.3. Requerimientos previos Para empezar a programar, en Swift[1] se requiere previamente: 1. Descargar Xcode: Xcode[11] es el entorno de desarrollo integrado (IDE) oficial de Apple [2] para desarrollar aplicaciones para iOS[7], macOS[8], watchOS[9] y tvOS[10]. Se puede descargar de forma gratuita desde la Mac App Store y con la versión más reciente 14.3.1 en MacOS[8] Ventura. 2. Aprender los fundamentos de Swift: Antes de comenzar a crear aplicaciones, es importante que tener una comprensión sólida de los conceptos básicos de Swift[1]. Se puede encontrar muchos recursos en línea para aprender Swift[1], como tutoriales en video, cursos en línea, la app Swift Playgrounds [12] para iPadOS/macOS[8] y la documentación oficial de Apple [2]. 3. Crear una aplicación básica: Una vez adquiridos los fundamentos de Swift[1], es hora de comenzar a crear una aplicación básica. Xcode[11] aporta plantillas de proyectos que ayudan a comenzar rápidamente. Se puede elegir una plantilla, como "Single View App", y Proyecto de Róbotica Educativa Pág. 8 seguir las instrucciones para crear la primera aplicación. 4. Practicar y seguir aprendiendo: La mejor manera de mejorar las habilidades en Swift[1] es practicando y siguiendo aprendiendo. Se tiene que dedicar tiempo a explorar la documentación de Swift[1], leer blogs y participar en comunidades en línea. También será positivo unirse a grupos de desarrolladores locales o asistir a eventos de desarrollo para conocer a otros programadores y aprender de ellos. Para su inicialización en la robótica educativa, debemos explicar previamente la app de Swift Playgrounds [12] : Es una aplicación desarrollada por Apple [2] que permite a los usuarios aprender a programar utilizando el lenguaje Swift [1]. La aplicación utiliza un enfoque de aprendizaje interactivo y visual que hace que el proceso de aprendizaje sea más fácil y divertido. Es compatible con el iPad[5] y el Mac[6]. En Swift Playgrounds [12], los usuarios pueden escribir código Swift [1] en un entorno visualmente atractivo y colorido que incluye animaciones, gráficos y sonidos para ayudar a los usuarios a visualizar su código en acción. La aplicación también incluye una variedad de desafíos y juegos interactivos que ayudan a los usuarios a aprender y practicar los conceptos básicos de programación. Además, incluye un sistema de retroalimentación en tiempo real, que permite a los usuarios ver el resultado de su código en tiempo real, lo que facilita la comprensión de cómo funcionan los diferentes elementos del código. La aplicación también proporciona sugerencias útiles y mensajes deerror para ayudar a los usuarios a identificar y solucionar problemas en su código. En resumen, Swift Playgrounds [12] es una herramienta útil y divertida para que los usuarios, especialmente los niños, aprendan a programar en Swift[1] de una manera interactiva y visual. A la fecha de este proyecto, lo encontraremos en iPadOS 16 y MacOS[8] Ventura en su versión 4.3.1. Ilustración 2. Ejemplo Swift Playgrounds Ilustración 1.Estudiante usando Swift Playgrounds en casa Proyecto de Róbotica Educativa Pág. 9 3. Introducción Swift [1] es un lenguaje de programación de código abierto desarrollado por Apple Inc. para desarrollar aplicaciones tanto para iOS[7] como para macOS[8]. Fue lanzado en el año 2014 y ha ganado mucha popularidad en los últimos años debido a su fácil aprendizaje, su seguridad y su rendimiento. Es un lenguaje de programación multiparadigma, lo que significa que admite diferentes estilos de programación : • Programación orientada a objetos. • Programación funcional. • Programación imperativa. La sintaxis de Swift[1] es fácil de leer y escribir, lo que lo hace muy amigable para los programadores principiantes. Para escribir código Swift [1], se utiliza un IDE (Entorno de Desarrollo Integrado) llamado Xcode[11]. En Xcode[11], se pueden crear diferentes tipos de proyectos: • Proyectos de iOS[7]. • Proyectos de macOS[8]. • Proyectos de playgrounds de Swift [1], son un entorno de prueba que permite probar y experimentar con el lenguaje de programación Swift [1] de una manera interactiva y visual. Veamos un ejemplo simple de código Swift [1] que muestra cómo imprimir "Hola, mundo!" en la consola: print("Hola, mundo!") Otro Ejemplo de código simple en Swift[1] con sus definiciones: // Este es un comentario en Swift // Los comentarios son texto que no se ejecuta y se usan para explicar el código // Aquí definimos una constante llamada "mensaje" y le asignamos un valor de cadena let mensaje = "Hola, Swift!" // Aquí definimos una función llamada "saludar" que toma un parámetro de cadena // La función imprime un mensaje que incluye el valor del parámetro Proyecto de Róbotica Educativa Pág. 10 func saludar(nombre: String) { print("Hola, \(nombre)! \(mensaje)") } // Aquí llamamos a la función "saludar" y le pasamos un argumento de cadena saludar(nombre: "Juan") En este ejemplo, se define una constante llamada "mensaje" que contiene un mensaje de saludo y se define una función llamada "saludar" que toma un parámetro de cadena y utiliza la constante "mensaje" para imprimir un mensaje de saludo personalizado. La última línea llama a la función "saludar" y le pasa un argumento de cadena con el nombre "Juan". Pero para conocer la estructura general básica de Swift[1] se mostrará en el siguiente ejemplo: import UIKit // Importamos el framework UIKit para crear interfaces de usuario // Definimos una clase llamada "MiClase" que hereda de UIViewController class MiClase: UIViewController { // Definimos una función llamada "miFuncion" que no toma argumentos y no devuelve nada func miFuncion() { // Escribimos el código que queremos que se ejecute cuando se llame a esta función } // Definimos una propiedad llamada "miPropiedad" que es de tipo cadena y tiene un valor inicial var miPropiedad = "Hola, mundo!" Proyecto de Róbotica Educativa Pág. 11 // Definimos la función viewDidLoad que se llama automáticamente cuando la vista se carga por primera vez override func viewDidLoad() { super.viewDidLoad() // Aquí escribimos el código que queremos que se ejecute cuando se carga la vista } } La sección import importa cualquier marco o biblioteca que necesitemos para nuestro programa. En este ejemplo, estamos importando el marco UIKit [13] que se usa para crear interfaces de usuario para aplicaciones de iOS[7]. La sección de clase define una clase llamada MiClase que hereda de UIViewController. La clase contiene una o más funciones y propiedades que utilizamos para definir la funcionalidad de nuestra aplicación. La función miFuncion es una función simple que no toma argumentos ni devuelve nada. Esta función podría realizar cualquier tarea específica que necesitemos en nuestra aplicación. La propiedad miPropiedad es una propiedad simple que es de tipo cadena y tiene un valor inicial de "Hola, mundo!". Podemos utilizar propiedades para almacenar datos en nuestra aplicación. La función viewDidLoad es una función que se llama automáticamente cuando la vista se carga por primera vez. En esta función, podemos realizar cualquier configuración adicional que necesitemos en nuestra aplicación. Esta es solo una estructura básica de un programa Swift [1]. Dependiendo de la aplicación que estés desarrollando, es posible que se necesite agregar más funciones y propiedades para implementar la funcionalidad que deseas. Proyecto de Róbotica Educativa Pág. 12 3.1. Objetivos del proyecto Para llegar a todo lo anterior, se recomienda que se comience a trabajar desde la escuela, en los institutos y propongo lo siguiente: 1. Enseñar los conceptos básicos: Comenzar por enseñar los conceptos básicos de programación, como variables, funciones, ciclos y condicionales. Utiliza ejemplos simples para explicar cada concepto y pide a los estudiantes que creen programas utilizando estos conceptos. 2. Usar ejemplos del mundo real: Los niños aprenden mejor cuando pueden ver cómo se aplican los conceptos en el mundo real. Utilizar ejemplos del mundo real para enseñar cómo se pueden usar los conceptos de programación para resolver problemas cotidianos. 3. Utilizar herramientas interactivas: Utilizar herramientas interactivas para enseñar programación, como aplicaciones y juegos de programación. Estas herramientas pueden ayudar a los estudiantes a aprender de una manera más divertida e interactiva. 4. Desarrollar proyectos en equipo: Anima a los estudiantes a trabajar juntos en proyectos de programación. Esto no solo les ayudará a aprender programación, sino que también les enseñará habilidades de trabajo en equipo y colaboración. 5. Enseñar a través de proyectos creativos: Animar a los estudiantes a utilizar su creatividad para crear proyectos de programación. Pide a los estudiantes que creen juegos, historias interactivas o aplicaciones móviles. Esto les ayudará a desarrollar habilidades de pensamiento crítico y resolución de problemas. 6. Celebrar el éxito: Celebrar los logros de los estudiantes y el progreso que realizan en el aprendizaje de programación. Esto les motivará a seguir aprendiendo y mejorando sus habilidades de programación. Es decir, para enseñar programación en Swift [1] a niños de primaria y secundaria, es muy importante hacer que la experiencia de aprendizaje sea divertida y muy interactiva. Utilizar ejemplos del mundo real, herramientas interactivas y proyectos creativos para enseñar programación y celebra el éxito de los estudiantes para motivarlos a seguir aprendiendo. Proyecto de Róbotica Educativa Pág. 13 3.2. Alcance del proyecto 3.2.1.- Swift en la Robótica Educativa y Lego Mindstorms Para aplicar el código Swift [1] en la robótica actual, para que los niños puedan programarnos basaremos en lo siguiente: 1. Primero, se necesitaría un kit de robótica que sea compatible con Swift[1], como el kit de robótica Lego Mindstorms EV3 [14]. Este kit incluye un controlador, sensores y motores que se pueden programar para realizar tareas específicas. 2. Después, el alumno debería familiarizarse con el lenguaje de programación Swift[1] y la programación orientada a objetos. Se pueden utilizar recursos en línea, libros o cursos en línea para aprender los conceptos básicos de Swift[1]. 3. Una vez que el niño/a esté familiarizado con Swift[1], puede comenzar a programar el robot utilizando el kit de robótica. En Swift[1], se pueden utilizar las clases, funciones y estructuras para controlar los sensores y motores del robot. 4. Para programar el robot, el niño podría usar Xcode[11], el entorno de desarrollo integrado (IDE) de Apple[2] para Swift[1]. Xcode[11] incluye herramientas de depuración que ayudan a detectar errores en el código y mejorar la eficiencia del robot. 5. Finalmente, el niño puede experimentar con diferentes algoritmos y lógica de programación para hacer que el robot realice tareas más complejas y desafiantes. 6. En resumen, la robótica actual ofrece una gran oportunidad para que los niños de secundaria aprendan a programar con Swift[1] y apliquen sus conocimientos en un entorno práctico y emocionante. Será necesario conocer previamente el robot a programar y los diferentes sensores que Lego proporciona a su LEGO Mindstorms [13]. Lego Mindstorms [13] es una línea de productos de la marca Lego que combina ladrillos Lego tradicionales con componentes electrónicos y sensores para crear robots programables. Está diseñado para introducir a los más jóvenes en el mundo de la robótica, la programación y la ingeniería. Existen actualmente diferentes versiones de Lego Mindstorms[13], pero una de las más recientes y conocidas es Lego Mindstorms EV3[13]. Este conjunto incluye una combinación de ladrillos Lego, motores y una unidad central llamada EV3 Brick, que actúa como el cerebro del robot. La unidad EV3 Brick se puede programar para controlar los motores y procesar la información de los sensores. Proyecto de Róbotica Educativa Pág. 14 En cuanto a los sensores de que dispone esta gama, Lego Mindstorms EV3 [14] ofrece varios tipos que se pueden utilizar para detectar y medir diferentes variables. Estos son algunos de los sensores disponibles que ofrece: 1. Sensor de contacto: Detecta cuando se presiona o se libera. 2. Sensor de color: Permite detectar y distinguir diferentes colores. 3. Sensor de ultrasonidos: Mide la distancia hasta un objeto utilizando ondas de ultrasonido. 4. Sensor de infrarrojos: Detecta señales infrarrojas y se utiliza para el control remoto y la detección de objetos. 5. Sensor giroscópico: Mide la rotación y el movimiento angular del robot. 6. Sensor de tacto: Detecta cuando se presiona o se libera como el sensor de contacto, pero con una forma diferente. Una vez conocido sus sensores, hay que conocer como programar el robot utilizando el lenguaje Swift[1] en esta ocasión o en su formato oficial de LEGO, normalmente se utiliza el software oficial de Lego llamado "LEGO Mindstorms EV3 Software" o "LEGO Mindstorms EV3 Home Edition". Estas aplicaciones proporcionan una interfaz gráfica que permite programar los robots de manera visual mediante bloques de código. En el caso de Swift [1], se puede explorar alternativas como la librería de código abierto "EV3-Swift". Esta librería te permite controlar los robots de Lego Mindstorms EV3 [14] utilizando Swift [1] y Xcode[11], el entorno de desarrollo integrado de Apple [2]. Se puede encontrar más información y recursos en el repositorio oficial de EV3-Swift en GitHub. Hay que tener en cuenta que aunque Swift [1] es un lenguaje de programación poderoso, la programación de Lego Mindstorms EV3 [14] puede tener ciertas limitaciones y requerir conocimientos adicionales sobre la plataforma y sus componentes electrónicos comentados anteriormente a lo largo del aprendizaje. Ilustración 3. Lego Mindstorms EV3 en iPad con Swift y ejemplo de robot Proyecto de Róbotica Educativa Pág. 15 A continuación se muestran unas imágenes de como es Lego Mindstorms [13] con su EV3 brick y los diferentes sensores que existen actualmente en su versión de Kit Básico: Ilustración 5. Lego Mindstorms EV3 Education Kit Version iPad Ilustración 4. Lego Mindstorms EV3 brick con todos los sensores Ilustración 6 Kit Grafico del contenido basico de LEGO Mindstorms EV3 Proyecto de Róbotica Educativa Pág. 16 3.2.2.- Aplicación de Swift en el Sistema Educativo Catalán Para la aplicación de Swift [1] en las diferentes etapas del sistema educativo catalán, lo inicializaremos de la siguiente manera: 1.- Educación Básica : Donde se encuentran • Primaria. • Secundaria. • Ciclos Formativos de grado base. En la primera etapa de la Educación Básica , se podrían incorporar los primeros conceptos de programación Swift[1] en varias asignaturas como, Tecnología en donde dar los primeros pasos para aprender programación y adquirir experiencia. Facilitará al docente la impartición de los conocimientos básicos de la asignatura. Matemáticas facilitando su aprendizaje y su comprensión. También les servirá para agilizar su proceso de adquisición de la lógica en la programación. Inglés aportará de una forma natural un vocabulario básico. Asimilaran una buena base introductoria al conocimiento de un tercer idioma, incluyendo la necesidad de que el estudiante pueda entender los manuales oficiales en su lenguaje nativo. 2.- Estudios Post- Obligatorios: Como es el caso de • Bachillerato. • Ciclos Formativos de Grado Superior. • Universidad. La segunda etapa de Estudios Post Obligatorios, se podría profundizar más en el lenguaje y utilizar programas más profesionales, que muchos Apple Developers [15] los utilizan habitualmente. En el caso del Bachillerato, se aplicaría en las Ciencias y Tecnología, además en las Ciencias Sociales. Ciencias y Tecnología, se continuarían con las asignaturas de: • Matemáticas I. • Tecnología y Ingeniería I. • Matemáticas II. Proyecto de Róbotica Educativa Pág. 17 • Tecnología y Ingenieria II. • Inglés. Ciencias Sociales, se continuarían con las asignaturas, • Matemáticas I. • Economía. • Matemáticas Aplicadas a las ciencias Sociales. • Matemáticas II. • Matemáticas Aplicadas a las Ciencias Sociales II. • Inglés. Ilustración 7. Estudiantes de cursos Post Obligatorios Ilustración 8. Estudiantes Educación Básica Proyecto de Róbotica Educativa Pág. 18 Para desarrollar lo expuesto hasta ahora, procederemos a exponer varios ejemplos de la programación Swift[1] en las diferentes etapas educativas. I. Etapa Educación básica A. Etapa Educación básica Matemáticas, la programación es una herramienta muy poderosa y muy útil. Al usar la programación, podemos mostrar cómo se aplican los conceptos matemáticos en situaciones del mundo real y ayudar a los estudiantes en esta época a visualizar y entender mejor los problemasmatemáticos y la lógica empleada en su resolución. Enseñar matemáticas de primaria con Swift [1] de Apple [2], proporcionará al docente una poderosa arma de motivación hacia la asignatura. Se puede empezar con algunos conceptos básicos como la suma, la resta, la multiplicación y la división. Una vez que el estudiante asimile correctamente estos conceptos, se puede avanzar a problemas matemáticos más complejos. Mostramos un ejemplo de cómo enseñar sumas simples usando Swift[1]: // Este programa suma dos números enteros y muestra el resultado en la consola // Definimos dos números enteros let num1 = 5 let num2 = 3 // Sumamos los dos números y guardamos el resultado en una variable let resultado = num1 + num2 // Mostramos el resultado en la consola print("La suma de \(num1) y \(num2) es \(resultado)") En este ejemplo, definimos dos variables numéricas (num1, num2) y las sumamos usando el operador "+" de Swift [1]. Luego, guardamos el resultado en una tercera variable (resultado) y lo mostramos en la consola. Ilustración 9. Estudiantes Educación Básica aprendiendo Matemáticas Proyecto de Róbotica Educativa Pág. 19 Mostramos a continuación otro ejemplo de cómo enseñar a multiplicar usando Swift [1]: func multiplicar(_ numero1: Int, por numero2: Int) -> Int { var resultado = 0 for _ in 1...numero2 { resultado += numero } return resultado } let numero1 = 5 let numero2 = 3 let resultado = multiplicar(numero1, por: numero2) print("El resultado de multiplicar \(numero1) por \(numero2) es \(resultado)") En este ejemplo de como realizar una multiplicación, lo explicaremos de la siguiente manera: o Definiremos una función llamada `multiplicar` que tomara los dos parámetros de tipo `Int`, `numero1` y `numero2`, y devolvera un valor de tipo `Int`. o Dentro de la función, inicializamos una variable que lo nombramos como `resultado` con el valor inicial de 0. Esta variable se usará para almacenar el resultado de la multiplicación. o Utilizamos un bucle `for` que se ejecuta `numero2` veces. Esto se realiza para sumar `numero1` a `resultado` `numero2` veces. o En cada iteración del bucle, sumamos `numero1` a `resultado`. o Una vez completa el bucle, la función devuelve el valor de `resultado`. o Cuando estamos fuera de la función, definimos dos variables `numero1` y `numero2` con los valores que queremos multiplicar. o Llamamos a la función `multiplicar` pasando `numero1` y `numero2` como argumentos y almacenamos el resultado en la variable `resultado`. o Para finalizar, imprimimos en la consola un mensaje que muestra los números que estamos multiplicando y el resultado obtenido. En este ejemplo de multiplicación, si ejecutamos el código, mostrará en la consola el siguiente mensaje: "El resultado de multiplicar 5 por 3 es 15", ya que 5 multiplicado por 3 es igual a 15. Una forma muy intuitiva para aprender a multiplicar en esta etapa educativa. Proyecto de Róbotica Educativa Pág. 20 Y finalmente acabaríamos esta etapa con el aprendizaje de la división usando Swift[1]: func dividir(_ dividendo: Int, por divisor: Int) -> (cociente: Int, residuo: Int) { let cociente = dividendo / divisor let residuo = dividendo % divisor return (cociente, residuo) } let dividendo = 15 let divisor = 4 let resultado = dividir(dividendo, por: divisor) print("El resultado de dividir \(dividendo) por \(divisor) es \(resultado.cociente) con un residuo de \(resultado.residuo)") A continuación, explicamos la división por Swift [1] de la siguiente manera: o Definiremos la función llamada `dividir` que toma dos parámetros de tipo `Int`: `dividendo` y `divisor`. La función devuelve una tupla que contiene el cociente y el residuo. o Dentro de la misma función, utilizamos el operador de división `/` para calcular el cociente de la división y lo asignamos a la constante `cociente`. o Posteriormente, utilizamos el operador de módulo `%` para calcular el residuo de la división y lo asignamos a la constante `residuo`. o Seguidamente, retornamos una tupla que contiene el cociente y el residuo. o Una vez, fuera de la función, definimos dos variables llamadas `dividendo` y `divisor` con los valores que queremos dividir. o Llamamos a la función `dividir` pasando `dividendo` y `divisor` como argumentos y almacenamos el resultado en la constante `resultado`. o Para mostrar el resultado en la consola, utilizamos la función `print` y generamos un mensaje que muestra los números que estamos dividiendo, el cociente obtenido y el residuo. En este ejemplo de la división , si ejecutamos el código, mostrará en la consola el siguiente mensaje: "El resultado de dividir 15 por 4 es 3 con un residuo de 3", ya que el cociente de la división de 15 por 4 es 3 y el residuo es 3. Proyecto de Róbotica Educativa Pág. 21 Estos solo son ejemplos básicos aplicado a las Matemáticas, pero lo puedes emplear para construir sobre él otros conceptos matemáticos que se enseñan en esta etapa educativa y además ayudara a los estudiantes a entender las matemáticas de otra manera y tener los primeros pasos a la programación. B. Etapa Educación básica Tecnología, es una excelente manera de ayudar a los niños a comprender cómo funciona la tecnología que utilizan en su vida diaria y cómo pueden crear cosas nuevas y útiles utilizando el poder de la programación. Aquí exponemos un ejemplo por etapas de cómo podrías enseñar tecnología de primaria utilizando la programación Swift [1] de Apple [2]: 1. Introducción a la programación: Primero, debes enseñar a los estudiantes los conceptos básicos de la programación, como variables, funciones, estructuras de control de flujo, etc. Para hacerlo, se puede utilizar un software de programación visual como Swift Playgrounds [12] de Apple [2], que proporciona una interfaz fácil de usar que puede ayudar a los estudiantes a comprender estos conceptos. 2. Crear un juego sencillo: Una vez que los estudiantes hayan aprendido los conceptos básicos de la programación, pueden comenzar a crear un juego simple utilizando Swift Playgrounds [12]. Por ejemplo, podrían crear un juego de memoria simple en el que se muestran varias imágenes y los jugadores deben recordar la ubicación de cada imagen. Aquí muestro un ejemplo de código que se podría utilitzar para crear un juego de memoria simple en Swift [1]: import UIKit class MemoryGameViewController: UIViewController { var cardButtons = [UIButton]() var emojiChoices = [" 🐶 ", " 🐱 ", " 🐭 ", " 🦊 ", " 🐻 "] override func viewDidLoad() { super.viewDidLoad() createCardButtons() } func createCardButtons() { for index in 0..<emojiChoices.count { let button = UIButton() button.setTitle(emojiChoices[index], for: .normal) button.addTarget(self, action: #selector(cardButtonTapped(_:)), for: .touchUpInside) Proyecto de Róbotica Educativa Pág. 22 view.addSubview(button) cardButtons.append(button) } } @objc func cardButtonTapped(_ sender: UIButton) { // Handle button tap here } } Este ejemplo de código crea una clase `MemoryGameViewController` que contiene una matriz de botones que representan las cartas en el juego. El método `createCardButtons()` crea los botones y los agregaa la vista del controlador. El método `cardButtonTapped(_:)` maneja los toques en los botones. 3. Mejorar el juego: Una vez que los estudiantes hayan creado el juego básico, pueden comenzar a mejorar el juego agregando nuevas características y funcionalidades. Por ejemplo, pueden agregar más niveles, agregar sonidos y efectos visuales, etc. A continuación muestro otro ejemplo de como enseñar Tecnología: // Ejemplo: Clase sobre tipos de dispositivos tecnológicos // Definición de la clase DispositivoTecnologico class DispositivoTecnologico { var nombre: String var tipo: String init(nombre: String, tipo: String) { self.nombre = nombre self.tipo = tipo } func encender() { print("\(nombre) encendido.") } func apagar() { print("\(nombre) apagado.") } } // Creación de objetos y uso de la clase Proyecto de Róbotica Educativa Pág. 23 let celular = DispositivoTecnologico(nombre: "Celular", tipo: "Smartphone") celular.encender() celular.apagar() let computadora = DispositivoTecnologico(nombre: "Computadora", tipo: "Portátil") computadora.encender() computadora.apagar() Este código de ejemplo nos muestra una clase llamada `DispositivoTecnologico` que representa un dispositivo tecnológico genérico. Tiene propiedades como `nombre` y `tipo`, y métodos como `encender()` y `apagar()`. Explicamos a continuación como se realiza el codigo: o Definiremos la clase `DispositivoTecnologico` que tiene dos propiedades: `nombre` y `tipo`, ambas de tipo `String`. o La clase tiene un inicializador `init(nombre: String, tipo: String)` que asigna los valores de `nombre` y `tipo` a las propiedades correspondientes. o La clase tiene dos métodos: `encender()` y `apagar()`, que imprimen mensajes indicando si el dispositivo se ha encendido o apagado. o Creamos objetos de la clase `DispositivoTecnologico` para representar diferentes dispositivos tecnológicos de Apple [2], como un iPhone[4] o un Mac[6]. o Utilizamos los métodos `encender()` y `apagar()` en cada uno de los objetos creados para simular el encendido y apagado de los dispositivos. Es decir, al ejecutarlo, se mostrarán los mensajes correspondientes en la consola, indicando si los dispositivos se han encendido o apagado. Este código proporciona un ejemplo simple y claro de cómo se pueden modelar los dispositivos tecnológicos utilizando una clase en Swift[1]. En conclusión, para enseñar tecnología a estudiantes de primaria utilizando la programación Swift [1] de Apple[2], debes comenzar con los conceptos básicos de la programación, crear un proyecto simple como un juego y luego mejorar el proyecto agregando nuevas características y funcionalidades. Proyecto de Róbotica Educativa Pág. 24 C. Etapa Educación básica Inglés Enseñar a estudiantes de primaria utilizando la programación Swift [1] puede ser una tarea desafiante, pero muy efectiva si se hace de la manera correcta. Un ejemplo de aplicación para enseñar inglés a un estudiante de primaria utilizando la programación Swift[1]: 1. Introducción a la programación: Primero, se debe enseñar a los estudiantes los conceptos básicos de la programación, como variables, funciones, estructuras de control de flujo, etc. Para hacerlo, se puede emplear un software de programación visual como Swift Playgrounds [12] de Apple [2], que proporciona una interfaz fácil de usar que puede ayudar a los estudiantes a comprender estos conceptos. 2. Crear una aplicación de vocabulario: Una vez que los estudiantes hayan asimilado los conceptos básicos de la programación, pueden comenzar a crear una aplicación simple de vocabulario utilizando Swift [1]. Por ejemplo, podrían crear una aplicación que muestre imágenes de diferentes objetos y palabras en inglés que correspondan a esas imágenes. Este sería un ejemplo de código que se podría usar para crear una aplicación de vocabulario en Swift [1]: ``` Ilustración 10. Estudiantes Educación Básica utilizando iPads en el Aula Proyecto de Róbotica Educativa Pág. 25 import UIKit class VocabularyViewController: UIViewController { var vocabWords = ["apple", "banana", "carrot", "dog", "elephant"] var vocabImages = ["apple.jpg", "banana.jpg", "carrot.jpg", "dog.jpg", "elephant.jpg"] override func viewDidLoad() { super.viewDidLoad() showVocabWords() } func showVocabWords() { for index in 0..<vocabWords.count { let label = UILabel() label.text = vocabWords[index] let imageView = UIImageView(image: UIImage(named: vocabImages[index])) view.addSubview(label) view.addSubview(imageView) } } } ``` Este ejemplo de código crea una clase `VocabularyViewController` que contiene dos matrices: `vocabWords` y `vocabImages`. El método `showVocabWords()` crea etiquetas y vistas de imagen para cada elemento de la matriz y los agrega a la vista del controlador. 3. Mejorar la aplicación: Una vez que los estudiantes hayan creado la aplicación básica de vocabulario, pueden comenzar a mejorarla agregando nuevas características y funcionalidades. Por ejemplo, pueden agregar una opción para escuchar la pronunciación de las palabras, agregar juegos de vocabulario como crucigramas o juegos de memoria, etc. A continuación muestro otro ejemplo de como enseñar Inglés: // Diccionario de palabras en inglés y sus traducciones let palabras = [ "gato": "cat", "perro": "dog", "árbol": "tree", Proyecto de Róbotica Educativa Pág. 26 "sol": "sun" ] // Función para mostrar una palabra en inglés y solicitar la traducción al usuario func practicarIngles() { // Seleccionar una palabra aleatoria del diccionario let palabrasIngles = Array(palabras.values) let indiceAleatorio = Int.random(in: 0..<palabrasIngles.count) let palabraIngles = palabrasIngles[indiceAleatorio] // Obtener la traducción en español de la palabra seleccionada let palabraEspanol = palabras.first { $0.value == palabraIngles }?.key // Mostrar la palabra en inglés y solicitar la traducción al usuario print("Traduce la palabra al español: \(palabraIngles)") let respuesta = readLine() // Comprobar si la traducción es correcta if respuesta == palabraEspanol { print("¡Correcto!") } else { print("Respuesta incorrecta. La traducción correcta es: \(palabraEspanol ?? "")") } } // Llamar a la función para practicar inglés practicarIngles() Para realizar el siguiente código, primero definimos un nuevo diccionario llamado `palabras`, donde las claves son las palabras en español y los valores son sus traducciones en inglés. Posteriormente, tenemos una función llamada `practicarIngles` que elige aleatoriamente una palabra en inglés del diccionario y le dice al estudiante que escriba la traducción correcta en español. El código utiliza la función `random(in:)` para seleccionar un índice aleatorio y obtener la palabra en inglés correspondiente. Luego, busca la clave correspondiente en el diccionario para obtener la traducción en español. Después de mostrar la palabra en inglés, el código utiliza `readLine()` para leer la entrada del estudiante. Luego, compara la respuesta del usuario con la traduccióncorrecta y muestra un mensaje de "¡Correcto!" si la respuesta es correcta, o muestra la traducción Proyecto de Róbotica Educativa Pág. 27 correcta si la respuesta es incorrecta. Finalmente, llama a la función `practicarIngles` para iniciar la práctica de inglés. Acabamos esta sección con un último ejemplo de aprendizaje de Inglés con Swift [1]: // Diccionario para almacenar las palabras en español y sus traducciones en inglés var palabras: [String: String] = [:] // Función para agregar una palabra y su traducción al diccionario func agregarPalabra() { print("Ingresa una palabra en español:") let palabraEspanol = readLine() ?? "" print("Ingresa la traducción de \(palabraEspanol) en inglés:") let palabraIngles = readLine() ?? "" palabras[palabraEspanol] = palabraIngles print("Palabra agregada correctamente.") } // Función para practicar inglés func practicarIngles() { if palabras.isEmpty { print("No hay palabras en el diccionario. Agrega algunas palabras primero.") return } let palabrasEspanol = Array(palabras.keys) let indiceAleatorio = Int.random(in: 0..<palabrasEspanol.count) let palabraEspanol = palabrasEspanol[indiceAleatorio] let palabraIngles = palabras[palabraEspanol] print("Traduce la palabra al inglés: \(palabraEspanol)") let respuesta = readLine() ?? "" if respuesta.lowercased() == palabraIngles?.lowercased() { print("¡Correcto!") } else { print("Respuesta incorrecta. La traducción correcta es: \(palabraIngles ?? "")") } } // Bucle principal para que el alumno pueda agregar palabras y practicar inglés var salir = false while !salir { Proyecto de Róbotica Educativa Pág. 28 print("--- Menú ---") print("1. Agregar palabra") print("2. Practicar inglés") print("3. Salir") print("Ingrese el número de opción:") let opcion = readLine() ?? "" switch opcion { case "1": agregarPalabra() case "2": practicarIngles() case "3": salir = true default: print("Opción inválida.") } } print("¡Hasta luego!") En este código, hemos creado dos funciones principales: `agregarPalabra()` y `practicarIngles()`. Además, he agregado un bucle principal que muestra un menú con opciones para que el alumno pueda agregar palabras y practicar inglés. La función `agregarPalabra()` solicita al alumno que ingrese una palabra en español y su traducción en inglés, y luego las agrega al diccionario `palabras`. La función `practicarIngles()` selecciona una palabra aleatoria del diccionario y la muestra en español, solicitando al alumno que ingrese la traducción en inglés. Luego, compara la respuesta del alumno con la traducción correcta y muestra un mensaje de "¡Correcto!" o la traducción correcta. El bucle principal muestra el menú y permite al alumno elegir entre agregar palabras, practicar inglés o salir del programa. Dependiendo de la opción seleccionada, se llamará a la función correspondiente. El alumno puede usar este código como base y agregar palabras al diccionario a medida que aprendiendo en la asignatura. Proyecto de Róbotica Educativa Pág. 29 En resumen, para enseñar inglés a estudiantes de primaria utilizando la programación Swift [1] de Apple[2], debes comenzar con los conceptos básicos de la programación, crear una aplicación simple de vocabulario y luego mejorarla agregando nuevas características y funcionalidades. Es importante recordar que el enfoque debe estar en la enseñanza del idioma, y la programación es simplemente una herramienta para lograr ese objetivo y seria opcional para los centros educativos. Ilustración 11. Estudiantes de la Educación Básica usando el iPad con los libros de Aprendizaje en Inglés Proyecto de Róbotica Educativa Pág. 30 2. Etapa Post Obligatoria Al llegar a esta etapa se supone que ya se ha asimilado un conocimiento básico del lenguaje Swift[1] y de las anteriores asignaturas comentadas, se podrán utilizar estos conocimientos como base para las asignaturas de esta nueva etapa. A. Etapa Educación Post Obligatoria Matemáticas I y II, Aplicadas al Bachillerato de Ciencias y Tecnología, utilizando el lenguaje de programación Swift[1] de Apple [2], será una excelente manera de combinar dos temas muy relevantes e importantes en la educación moderna. Aquí hay algunos consejos sobre cómo puedes enseñar matemáticas utilizando Swift[1]: 1. Enseña la sintaxis básica de Swift: Para enseñar matemáticas utilizando Swift[1], es importante que los estudiantes comprendan la sintaxis básica del lenguaje de programación. Esto les permitirá escribir programas simples y manipular los datos de manera efectiva. 2. Enseña los conceptos matemáticos básicos: Antes de que los estudiantes puedan comenzar a aplicar las matemáticas en un programa de Swift[1], deben tener una sólida comprensión de los conceptos matemáticos básicos, como álgebra, geometría, trigonometría y cálculo. Hay que asegurarse de repasar previamente estos conceptos y de proporcionarles ejemplos concretos. 3. Aplica los conceptos matemáticos utilizando Swift: Una vez que los estudiantes presenten una comprensión sólida de los conceptos matemáticos básicos, se podrá comenzar su aplicación utilizando Swift[1]. Por ejemplo, enseñarles a escribir programas que resuelvan ecuaciones algebraicas o calculen el área y el perímetro de una figura geométrica. 4. Utiliza ejemplos concretos: Para que los estudiantes comprendan mejor cómo se pueden aplicar las matemáticas en la programación, es importante que se les proporcionen ejemplos concretos. Por ejemplo, mostrarles cómo se puede utilizar Swift[1] para calcular la trayectoria de un proyectil o para modelar la propagación de una enfermedad. 5. Usa herramientas de programación interactivas: Para que los estudiantes aprendan de manera efectiva, es importante que se utilicen herramientas de programación interactivas que les permitan experimentar con Swift[1] y observar los resultados de sus programas en tiempo real. Por ejemplo, utilizar Xcode Playgrounds [16], que es una herramienta de programación interactiva que permite a los estudiantes escribir y probar programas en un entorno seguro y Proyecto de Róbotica Educativa Pág. 31 controlado. Por ejemplo, si quisieras enseñar a tus estudiantes cómo calcular la derivada de una función utilizando el lenguaje Swift[1], podrías seguir los siguientes pasos: 1. Explica el concepto de derivada: Antes de comenzar a escribir código, es importante que tus estudiantes comprendan el concepto de derivada. Puedes utilizar gráficos y ejemplos para ayudarles a entender cómo se define y se calcula una derivada. 2. Escribe el código para calcular la derivada de una función: Una vez que tus estudiantes entiendan el concepto de derivada, puedes comenzar a escribir el código para calcularla utilizando Swift[1]. Aquí hay un ejemplo de cómo podrías escribir este código: ```swift func f(_ x: Double) -> Double { return x * x // función f(x) = x^2 } func df(_ x: Double, h: Double) -> Double { return (f(x + h) - f(x)) /h // definición de la derivada } let x = 2.0 // punto en el que se calcula la derivada let h = 0.0001 // tamaño del paso let d = df(x, h: h) // valor de la derivada en x print("La derivada de f(x) en x = \(x) es \(d)") ``` En este ejemplo de código, hemos definido la función `f(x)` que representa la función `f(x) = x^2`. Luego, definimos la función `df(x, h)` que calcula la derivada de `f(x)` en un punto `x` utilizando la definición de la derivada (`df(x) = (f(x+h) - f(x)) / h`). Finalmente, hemos definido el punto `x` en el que se calcula la derivada y el tamaño del paso `h`, y hemos calculado el valor de la derivada en `x` utilizando la función `df(x, h)`. Proyecto de Róbotica Educativa Pág. 32 3. Prueba el código y haz ajustes: Después de escribir el código, es importante que lo pruebes para asegurarte de que funciona correctamente. Puedes hacer ajustes y modificar el código según sea necesario para corregir errores y mejorar su funcionamiento. 4. Aplica el concepto a un problema real: Para ayudar a los estudiantes a comprender mejor cómo se puede aplicar el cálculo de la derivada en un contexto real, puedes plantear un problema que involucre el cálculo de la derivada. Por ejemplo, podrías preguntarles cuál es la velocidad instantánea de un objeto en un momento dado si se conoce su posición en función del tiempo. A continuación mostraremos un código para que aprendan a integrar: En este código, los alumnos de bachillerato pueden ingresar una función y los límites de integración para obtener el resultado de la integral. // Función para integrar una función dada en un intervalo dado func integrarFuncion() { print("Ingresa la función a integrar:") let funcion = readLine() ?? "" print("Ingresa el límite inferior de integración:") let limiteInferior = Double(readLine() ?? "") ?? 0.0 print("Ingresa el límite superior de integración:") let limiteSuperior = Double(readLine() ?? "") ?? 0.0 // Cálculo de la integral utilizando el método de los rectángulos (aproximación básica) let numRectangulos = 1000 let anchoRectangulo = (limiteSuperior - limiteInferior) / Double(numRectangulos) var sumaAreas = 0.0 var x = limiteInferior for _ in 0..<numRectangulos { let alturaRectangulo = evaluarFuncion(funcion: funcion, x: x) let areaRectangulo = alturaRectangulo * anchoRectangulo sumaAreas += areaRectangulo x += anchoRectangulo } print("El resultado de la integral de \(funcion) en el intervalo [\(limiteInferior), \(limiteSuperior)] es: \(sumaAreas)") Proyecto de Róbotica Educativa Pág. 33 } // Función para evaluar una función dada en un punto dado func evaluarFuncion(funcion: String, x: Double) -> Double { // Aquí se puede implementar la evaluación de la función según las reglas de sintaxis y semántica que desees permitir // Por ejemplo, podríamos permitir operaciones básicas (+, -, *, /), potencias, funciones trigonométricas, etc. // Aquí asumiremos que la función es simplemente una expresión aritmética válida let expresion = NSExpression(format: funcion) let resultado = expresion.expressionValue(with: nil, context: nil) as? Double ?? 0.0 return resultado } // Bucle principal para que el alumno pueda integrar funciones var salir = false while !salir { print("--- Menú ---") print("1. Integrar función") print("2. Salir") print("Ingrese el número de opción:") let opcion = readLine() ?? "" switch opcion { case "1": integrarFuncion() case "2": salir = true default: print("Opción inválida.") } } print("¡Hasta luego!") ``` En este código Swift[1] hemos programado una función principal llamada `integrarFuncion()` que le pide al alumno que ingrese una función y los límites de integración. Utilizando el conocido método de los rectángulos (una aproximación muy básica), calculamos la integral de la función en el intervalo dado dividiendo el área bajo la curva en rectángulos y sumando sus áreas. Proyecto de Róbotica Educativa Pág. 34 También hemos creado una función auxiliar llamada `evaluarFuncion()` que permite evaluar una función dada en un punto dado. Esta función utiliza la clase `NSExpression` de Foundation para evaluar la expresión de la función. En este caso , asumimos que la función es simplemente una expresión aritmética válida, pero puedes expandir esta función para admitir operaciones y funciones más avanzadas según las necesidades del alumno. El bucle principal muestra un menú con opciones para integrar una función o salir del programa. El alumno puede elegir una opción ingresando el número correspondiente. Dependiendo de la opción seleccionada, se llamará a la función correspondiente. Y finalmente, explicaremos un código para que los alumnos de bachillerato puedan crear sus propios problemas matemáticos de la asignatura y se les sea más fácil aprender las lecciones que realicen en esta etapa: // Función para generar un problema matemático aleatorio func generarProblema() { print("Ingresa el enunciado del problema:") let enunciado = readLine() ?? "" print("Ingresa la solución del problema:") let solucion = readLine() ?? "" print("Resuelve el siguiente problema:") print(enunciado) let respuesta = readLine() ?? "" if respuesta == solucion { print("¡Correcto!") } else { print("Respuesta incorrecta. La solución es: \(solucion)") } } // Bucle principal para que los alumnos puedan generar problemas y resolverlos var salir = false while !salir { print("--- Menú ---") print("1. Generar problema") print("2. Salir") print("Ingrese el número de opción:") let opcion = readLine() ?? "" Proyecto de Róbotica Educativa Pág. 35 switch opcion { case "1": generarProblema() case "2": salir = true default: print("Opción inválida.") } } print("¡Hasta luego!") Aquí he creado una función llamada `generarProblema()` que permite al alumno generar un problema matemático. El alumno ingresa el enunciado del problema y su solución. Seguidamente se muestra el enunciado del problema y el alumno debe ingresar su respuesta. Después de que el alumno haya ingresado su respuesta, se compara con la solución dada. Si la respuesta es correcta, se muestra "¡Correcto!". De lo contrario, se muestra "Respuesta incorrecta" junto con la solución correcta. El bucle principal muestra un menú con opciones para generar problemas o salir del programa. El alumno elige una opción ingresando el número deseado. Dependiendo de la opción seleccionada, se llamará a una función o a la otra. En resumidas cuentas, enseñar matemáticas aplicadas a las ciencias y la tecnología utilizando Swift[1] es una excelente manera de ayudar a tus estudiantes a comprender cómo se pueden aplicar los conceptos matemáticos en la programación. Siguiendo estos pasos y proporcionando ejemplos concretos, podrás ayudar a tus estudiantes a desarrollar habilidades valiosas en programación y matemáticas. Ilustración 12. Ejemplo Matemáticas en la Educación Post Obligatoria Proyecto de Róbotica EducativaPág. 36 B. Etapa Educación Post Obligatoria Tecnologia y Ingenieria I y II, puedes seguir estos pasos para que apliquen Swift[1] en esta asignatura: 1. Introduce el concepto de la tecnología: Hay que comenzar por explicar a los alumnos qué es la tecnología y cómo se utiliza en diferentes campos de la ciencia y la ingeniería. 2. Presenta el lenguaje de programación Swift: Explica nuevamente qué es Swift[1] y por qué es importante para la tecnología. Puedes mostrarles algunos ejemplos de aplicaciones populares que utilizan Swift[1], como iOS[7] y macOS[8]. 3. Enseña a tus estudiantes a escribir código Swift: A continuación, enseña a los estudiantes cómo escribir código Swift[1]. Puedes comenzar con conceptos básicos como variables, operadores, condicionales y bucles, y luego avanzar a conceptos más avanzados como funciones, estructuras de datos y clases. 4. Aplica los conceptos a problemas reales de la tecnología: Después de que hayan aprendido los conceptos básicos de Swift[1], puedes presentarles problemas reales de la tecnología que puedan resolver utilizando Swift[1]. Por ejemplo, pueden escribir una aplicación para realizar cálculos de ingeniería, una aplicación de reconocimiento de voz o una aplicación para controlar un dispositivo de Internet de las cosas (IoT). Aquí mostramos un ejemplo de cómo se podría enseñar a los estudiantes a escribir código Swift[1] para un problema de tecnología: Supongamos que deseamos crear una aplicación para calcular el área de un triángulo. Podemos hacerlo utilizando la siguiente fórmula: Área = 1/2 * base * altura ``` Para hacer esto en Swift[1], podemos escribir el siguiente código: ``` // Definimos las variables de entrada let base = 10.0 let altura = 5.0 // Calculamos el área let area = 0.5 * base * altura // Mostramos el resultado print("El área del triángulo es: \(area)") ``` Proyecto de Róbotica Educativa Pág. 37 Este código define las variables de entrada (base y altura), calcula el área utilizando la fórmula dada y luego muestra el resultado utilizando la función `print()`. Este es solo un ejemplo simple, pero puedes presentar problemas más complejos a tus estudiantes a medida que avancen en su aprendizaje de Swift[1] y la tecnología. Otro ejemplo que se podría utilizar Swift[1] es para que los estudiantes puedan calcular su propio promedio de notas sin la utilización de una hoja de cálculo: import Foundation // Definir una función para calcular el promedio func calcularPromedio(calificaciones: [Double]) -> Double { let totalCalificaciones = Double(calificaciones.count) var sumaCalificaciones = 0.0 for calificacion in calificaciones { sumaCalificaciones += calificacion } let promedio = sumaCalificaciones / totalCalificaciones return promedio } // Solicitar al usuario las calificaciones print("Ingrese las calificaciones separadas por comas:") if let input = readLine() { let calificaciones = input.components(separatedBy: ",").compactMap { Double($0) } // Calcular y mostrar el promedio let promedio = calcularPromedio(calificaciones: calificaciones) print("El promedio es: \(promedio)") } else { print("Entrada inválida.") } A diferencia del código anterior, en este caso el código solicitará al estudiante de bachiller que ingrese las notas separadas por comas (por ejemplo, "7.5, 5.0, 9.5") y luego calculará y mostrará el promedio de esas calificaciones para saber si ha superado la asignatura. Y finalmente acabamos con un ejemplo de código muy simple para que los estudiantes entiendan como funcionan los bucles y las estructuras de control condicional en Swift[1], es decir, el programa pide al estudiante un número y luego le muestra si el numero indicado es par o impar: Proyecto de Róbotica Educativa Pág. 38 import Foundation // Solicitar al usuario un número print("Ingrese un número:") if let input = readLine(), let numero = Int(input) { // Verificar si el número es par o impar if numero % 2 == 0 { print("El número es par.") } else { print("El número es impar.") } } else { print("Entrada inválida.") } Es un código simple que ayuda al estudiante a entender las estructuras de control condicional (if-else) y el operador de módulo (%) para saber si un número es par o impar. A partir de este código se puede motivar al alumno a que entienda línea por línea lo que hace el código y que experimente con el con diferentes valores y condiciones para mejorar su comprensión de los conceptos de programación y dar un gran salto en el aprendizaje del lenguaje Swift[1]. Es decir, enseñar Tecnología de Bachillerato utilizando Swift[1] puede ser una excelente manera de ayudar a los estudiantes a comprender cómo se puede aplicar la programación en la tecnología y la ingeniería. Siguiendo estos pasos y proporcionando ejemplos concretos, podrás ayudar a tus estudiantes a desarrollar habilidades valiosas en programación y tecnología. Ilustración 13. Swift en Mac Proyecto de Róbotica Educativa Pág. 39 C. Etapa Educación Post Obligatoria Inglés, puede parecer un poco complicado a primera vista, pero existen diferentes herramientas y recursos que pueden ser útiles para hacerlo: 1. Introducir vocabulario técnico: El inglés técnico es importante en muchas áreas de la tecnología y la programación, por lo que es importante que los estudiantes aprendan algunos términos clave en inglés. Puedes comenzar con términos básicos como "variable", "función", "clase" y "objeto" y avanzar hacia términos más complejos a medida que avancen en su aprendizaje. 2. Utilizar recursos en línea: Hay muchas herramientas en línea que pueden ayudar a los estudiantes a aprender inglés de una manera más interactiva y práctica. Algunos ejemplos incluyen aplicaciones de aprendizaje de idiomas como Duolingo, Memrise y Rosetta Stone, así como videos y tutoriales en línea. 3. Crear ejercicios prácticos: Es importante que los estudiantes tengan la oportunidad de practicar el inglés técnico en un contexto práctico. Puedes crear ejercicios que involucren escribir código en Swift[1], resolver problemas de programación y diseñar aplicaciones. 4. Utiliza proyectos en equipo: Trabajar los proyectos en equipo puede ayudar a los estudiantes a mejorar sus habilidades de comunicación y colaboración en inglés. Puedes asignar proyectos que involucren diseñar y construir una aplicación, resolver un problema de programación o presentar una solución a un problema técnico. Aquí hay un ejemplo de cómo podrías enseñar inglés utilizando Swift[1]: Supongamos que deseamos crear una aplicación para realizar conversiones de unidades de medida. Podemos hacerlo utilizando el siguiente código: ``` // Definimos las variables de entrada let millas = 5.0 // Convertimos millas a kilómetros let kilometros = millas * 1.60934 // Mostramos el resultado print("\(millas) millas son \(kilometros) kilómetros") ``` Proyecto de Róbotica Educativa Pág. 40 Este código define la variable "millas", la convierte a kilómetros utilizando una constante de conversión y luego muestra el resultado utilizando la función `print()`. Puedes utilizar este ejemplo para enseñar a tus estudiantes sobre la conversión de unidades de medida en inglés, o incluso pedirlesque modifiquen el código para realizar conversiones adicionales. Otro ejemplo para ayudarles con el idioma es seguir profundizando en la traducción de palabras del castellano al inglés, seria parecido al de la etapa básica pero dándole una dificultad más: import Foundation // Definir un diccionario de palabras let palabras = [ "cereza": "cherry", "codificacion": "coding", "fisica": "physics", "piso": "floor", // Puedes agregar más palabras aquí ] // Obtener una palabra aleatoria del diccionario let palabraEspanol = palabras.randomElement()!.key // Solicitar la traducción al estudiante print("Traduce la palabra al inglés: \(palabraEspanol)") if let traduccionEstudiante = readLine() { let traduccionCorrecta = palabras[palabraEspanol]! // Verificar la respuesta del estudiante if traduccionEstudiante.lowercased() == traduccionCorrecta { print("¡Correcto!") } else { print("Incorrecto. La traducción correcta es: \(traduccionCorrecta)") } } else { print("Entrada inválida.") } Tal y como se ha comentado, el código muestra una palabra en español y el estudiante que escriba la traducción en inglés. A continuación el programa verifica si la traducción del estudiante es correcta y le brinda una retroalimentación en consecuencia. Proyecto de Róbotica Educativa Pág. 41 En este código pueden agregar más palabras al diccionario como palabras más técnicas del Inglés Técnico y les permite practicar de una forma más fácil y ampliar su vocabulario. Además les dará la opción de personalizar el código para incluir más funcionalidades, como puntuaciones o pistas, según el nivel de conocimientos y habilidades. Y finalmente acabamos esta etapa con un código que les ayude en la gramática inglesa que es de lo más complejo de esta etapa, es decir, es un programa que muestra una oración en inglés con un espacio en blanco y exige al estudiante que ingrese la palabra correcta para completar la oración, veamos el código: import Foundation // Definir una lista de oraciones con espacios en blanco let oraciones = [ "I _______ to the park yesterday.", "She _______ a book for her birthday.", "They _______ dinner at a restaurant.", // Puedes agregar más oraciones aquí ] // Definir las respuestas correctas let respuestas = [ "went", "received", "had", // Asegúrate de que las respuestas estén en el mismo orden que las oraciones ] // Obtener una oración aleatoria let indice = Int.random(in: 0..<oraciones.count) let oracion = oraciones[indice] let respuestaCorrecta = respuestas[indice] // Solicitar la respuesta al estudiante print("Completa la siguiente oración:") print(oracion) if let respuestaEstudiante = readLine() { let respuestaFormateada = respuestaEstudiante.trimmingCharacters(in: .whitespacesAndNewlines) // Verificar la respuesta del estudiante if respuestaFormateada.lowercased() == respuestaCorrecta { print("¡Correcto!") Proyecto de Róbotica Educativa Pág. 42 } else { print("Incorrecto. La respuesta correcta es: \(respuestaCorrecta)") } } else { print("Entrada inválida.") } Tal y como se ha comentado antes, es una programa que muestra una oración en inglés con un espacio en blanco y se le pide al estudiante que escriba la palabra correcta para que pueda completar la oración. A continuación el programa revisa si la palabra puesta es correcta y le da una retroalimentación en consecuencia. Lo bueno de este código es que se le puede agregar más oraciones y respuestas al programa para ampliar los conocimientos de la gramática inglesas. Se puede personalizar el programa añadiendo por ejemplo funcionalidades, como es el caso de pistas o explicaciones de gramática para que se le sea más fácil aprender gramática y lograr los objetivos del aprendizaje del Inglés. En conclusión, enseñar inglés de bachillerato utilizando Swift[1] puede ser un desafío, pero es posible utilizando herramientas en línea, ejercicios prácticos y proyectos en equipo. Al proporcionar a tus estudiantes experiencias prácticas utilizando el inglés técnico, podrás ayudarles a desarrollar habilidades valiosas en inglés y programación. Proyecto de Róbotica Educativa Pág. 43 E. Etapa Educación Post Obligatoria Matemáticas Aplicadas a las ciencias Sociales I y II, puede parecer un desafío utilizar Swift[1] , ya que las matemáticas y las ciencias sociales a menudo se perciben como disciplinas separadas. Sin embargo, el uso de la tecnología y la programación puede ayudar a conectar estas áreas haciendo que las matemáticas sean más accesibles y relevantes para los estudiantes de ciencias sociales. 1. Utiliza ejemplos relevantes para las ciencias sociales: Es importante que los ejemplos y ejercicios que utilices en tus lecciones sean relevantes para los estudiantes de ciencias sociales. Puedes utilizar ejemplos que involucren estadísticas, encuestas, análisis de datos, etc. 2. Enseña estadística descriptiva: La estadística descriptiva es una herramienta fundamental para el análisis de datos en ciencias sociales. Puedes enseñar a los estudiantes cómo utilizar Swift[1] para calcular medidas de tendencia central, dispersión y otros indicadores estadísticos. 3. Crea visualizaciones de datos: Las visualizaciones de datos pueden ayudar a los estudiantes a comprender mejor los patrones y tendencias en los datos. Puedes enseñarles cómo utilizar Swift[1] para crear gráficos de barras, gráficos de líneas y otros tipos de visualizaciones. 4. Utiliza proyectos en equipo: Los proyectos en equipo pueden ayudar a los estudiantes a aplicar las matemáticas y la programación en un contexto práctico. Puedes asignar proyectos que involucren recopilar y analizar datos, diseñar encuestas y presentar hallazgos en una visualización. Aquí se muestra un ejemplo de cómo podrías enseñar matemáticas aplicadas a las ciencias sociales utilizando Swift[1]: Supongamos que deseamos calcular la media y la mediana de un conjunto de datos de ingresos anuales de una muestra de personas. Podemos hacerlo utilizando el siguiente código: Proyecto de Róbotica Educativa Pág. 44 ``` // Definimos los datos de ingresos anuales let ingresos = [20000, 30000, 35000, 40000, 50000, 60000, 70000, 80000, 90000, 100000] // Calculamos la media de los ingresos let media = ingresos.reduce(0, +) / ingresos.count // Calculamos la mediana de los ingresos let sortedIngresos = ingresos.sorted() let mediana = sortedIngresos[sortedIngresos.count / 2] // Mostramos el resultado print("La media de los ingresos anuales es \(media)") print("La mediana de los ingresos anuales es \(mediana)") ``` Este ejemplo de código define el conjunto de datos de ingresos anuales utilizando un arreglo, calcula la media y la mediana utilizando las funciones `reduce()` y `sorted()`, y luego muestra los resultados utilizando la función `print()`. Se puede utilizar este ejemplo para enseñar a los estudiantes cómo calcular medidas de tendencia central en inglés, o incluso pedirles que modifiquen el código para calcular otras estadísticas descriptivas. Otro ejemplo a exponer seria el de un código donde el estudiante le permita realizar operaciones básicas y calcular algunos cálculos de indicadores estadísticos:import Foundation // Función para calcular el promedio de un conjunto de números func calcularPromedio(numeros: [Double]) -> Double { let suma = numeros.reduce(0, +) return suma / Double(numeros.count) } // Función para calcular la desviación estándar de un conjunto de números func calcularDesviacionEstandar(numeros: [Double]) -> Double { let promedio = calcularPromedio(numeros: numeros) let sumaCuadrados = numeros.reduce(0) { $0 + pow($1 - promedio, 2) } let varianza = sumaCuadrados / Double(numeros.count) return sqrt(varianza) } Proyecto de Róbotica Educativa Pág. 45 // Función principal func main() { print("Bienvenido al programa de Matemáticas para Ciencias Sociales de Bachillerato") var numeros: [Double] = [] while true { print("1. Agregar número") print("2. Calcular promedio") print("3. Calcular desviación estándar") print("4. Salir") if let opcion = readLine(), let seleccion = Int(opcion) { switch seleccion { case 1: print("Ingrese un número:") if let numeroString = readLine(), let numero = Double(numeroString) { numeros.append(numero) } else { print("Número inválido. Inténtelo nuevamente.") } case 2: let promedio = calcularPromedio(numeros: numeros) print("El promedio es: \(promedio)") case 3: let desviacionEstandar = calcularDesviacionEstandar(numeros: numeros) print("La desviación estándar es: \(desviacionEstandar)") case 4: print("¡Hasta luego!") return default: print("Opción inválida. Inténtelo nuevamente.") } } else { print("Opción inválida. Inténtelo nuevamente.") } print("---------------------") Proyecto de Róbotica Educativa Pág. 46 } } // Ejecutar el programa main() Tal y como se ha comentado anteriormente, el código utiliza funciones para calcular el promedio y la desviación estándar de un conjunto de números ingresados por el estudiante. Además, ofrece un menú interactivo que permite añadir números, calcular el promedio, calcular la desviación estándar y finalmente salir del programa. Y acabamos esta parte explicando el último ejemplo de como les ayudaría aprender conceptos básicos de geometría como es el caso de calcular áreas de un triángulo o un cuadrado y además el perímetro de un cuadrado: import Foundation // Función para calcular el área de un triángulo func calcularAreaTriangulo(base: Double, altura: Double) -> Double { return (base * altura) / 2 } // Función para calcular el área de un cuadrado func calcularAreaCuadrado(lado: Double) -> Double { return lado * lado } // Función para calcular el perímetro de un cuadrado func calcularPerimetroCuadrado(lado: Double) -> Double { return 4 * lado } // Función principal func main() { print("Bienvenido al programa de Cálculos de Areas y Perimetros para estudiantes de Bachillerato a las Ciencias Sociales ") var opcion: Int = 0 while opcion != 4 { print("1. Calcular área de un triángulo") print("2. Calcular área de un cuadrado") print("3. Calcular perímetro de un cuadrado") print("4. Salir") if let opcionString = readLine(), let seleccion = Int(opcionString) { Proyecto de Róbotica Educativa Pág. 47 opcion = seleccion switch opcion { case 1: print("Ingrese la base del triángulo:") if let baseString = readLine(), let base = Double(baseString) { print("Ingrese la altura del triángulo:") if let alturaString = readLine(), let altura = Double(alturaString) { let area = calcularAreaTriangulo(base: base, altura: altura) print("El área del triángulo es: \(area)") } else { print("Altura inválida. Inténtelo nuevamente.") } } else { print("Base inválida. Inténtelo nuevamente.") } case 2: print("Ingrese el lado del cuadrado:") if let ladoString = readLine(), let lado = Double(ladoString) { let area = calcularAreaCuadrado(lado: lado) print("El área del cuadrado es: \(area)") } else { print("Lado inválido. Inténtelo nuevamente.") } case 3: print("Ingrese el lado del cuadrado:") if let ladoString = readLine(), let lado = Double(ladoString) { let perimetro = calcularPerimetroCuadrado(lado: lado) print("El perímetro del cuadrado es: \(perimetro)") } else { print("Lado inválido. Inténtelo nuevamente.") } case 4: print("¡Hasta luego!") default: print("Opción inválida. Inténtelo nuevamente.") } } else { Proyecto de Róbotica Educativa Pág. 48 print("Opción inválida. Inténtelo nuevamente.") } print("---------------------") } } // Ejecutar el programa main() Como se ha comentado hace unas líneas, este código permite a los estudiantes seleccionar diferentes opciones para calcular el área de un triangulo, el área o el perímetro de un cuadrado. Se necesita poner los valores de base, altura y lado para que se puedan hacer los cálculos correspondientes. En conclusión, enseñar matemáticas aplicadas a las ciencias sociales utilizando Swift[1] puede ser un desafío, pero es posible utilizando ejemplos relevantes, estadística descriptiva, visualizaciones de datos y proyectos en equipo. Al proporcionar a tus estudiantes experiencias prácticas utilizando por ejemplo la inteligencia artificial. Proyecto de Róbotica Educativa Pág. 49 F. Etapa Educación Post Obligatoria Matemáticas Aplicadas a las ciencias Sociales I y II, finalmente para aplicar Swift[1] en la asignatura de Economía, puede ser de nuevas, un gran desafío, ya que la economía es una disciplina compleja y a menudo se basa en conceptos abstractos. Sin embargo, el uso de la tecnología y la programación puede ayudar a hacer que estos conceptos sean más accesibles y relevantes para los estudiantes. 1. Utilizar ejemplos relevantes: Es importante que los ejemplos y ejercicios que se utilicen en tus lecciones sean relevantes para los estudiantes de economía. Se pueden utilizar ejemplos que involucren conceptos económicos como la oferta y la demanda, la elasticidad, el costo de oportunidad, etc. 2. Enseñar modelos económicos: Los modelos económicos son una herramienta fundamental para entender la economía. Se puede enseñar a los estudiantes cómo utilizar Swift[1] para crear y simular
Compartir