Introducción a Lenguajes de Programación
Los estudiantes exploran la historia y evolución de los lenguajes de programación, entendiendo su propósito y tipos.
Acerca de este tema
Las variables y los tipos de datos son los contenedores fundamentales de la información en cualquier sistema digital. En este tema, los estudiantes de primer año de preparatoria exploran cómo las computadoras clasifican y almacenan datos, desde números enteros y decimales hasta cadenas de texto y valores lógicos. Bajo el marco de la SEP, este conocimiento es crucial para entender la eficiencia en el uso de recursos tecnológicos y la integridad de la información.
Comprender que un nombre no puede sumarse a una edad parece obvio, pero en programación requiere una definición técnica estricta. Este tema permite a los alumnos reflexionar sobre cómo la tecnología representa la realidad mexicana, como el uso de caracteres especiales (ñ, acentos) en bases de datos. El aprendizaje activo, mediante la clasificación física de objetos y datos, ayuda a los estudiantes a internalizar estas categorías antes de enfrentarse a la sintaxis de un lenguaje de programación.
Preguntas Clave
- ¿Cómo ha influido la evolución de los lenguajes de programación en el desarrollo tecnológico?
- ¿Qué criterios utilizamos para seleccionar el lenguaje de programación adecuado para un proyecto?
- ¿De qué manera los lenguajes de alto nivel facilitan la creación de software?
Objetivos de Aprendizaje
- Identificar las principales etapas en la evolución histórica de los lenguajes de programación, desde los de bajo nivel hasta los de alto nivel.
- Comparar las características y aplicaciones de diferentes paradigmas de programación (imperativo, declarativo, orientado a objetos) para seleccionar el más adecuado.
- Explicar la función y propósito de los lenguajes de programación en la creación de software y aplicaciones.
- Analizar cómo la abstracción en los lenguajes de alto nivel facilita el desarrollo de software complejo.
- Evaluar la importancia de la elección del lenguaje de programación en función de los requisitos de un proyecto tecnológico específico.
Antes de Empezar
Por qué: Los estudiantes deben tener una comprensión fundamental de qué es una computadora y cómo procesa información para entender el propósito de los lenguajes de programación.
Por qué: Es necesario distinguir entre los componentes físicos y los programas para comprender cómo los lenguajes de programación actúan como intermediarios entre ambos.
Vocabulario Clave
| Lenguaje de programación | Conjunto de reglas, símbolos y palabras clave que permiten a los programadores escribir instrucciones que una computadora puede entender y ejecutar. |
| Lenguaje de bajo nivel | Lenguajes de programación que interactúan directamente con el hardware de la computadora, como el lenguaje ensamblador. Requieren un conocimiento profundo de la arquitectura de la máquina. |
| Lenguaje de alto nivel | Lenguajes de programación que utilizan una sintaxis más cercana al lenguaje humano y ofrecen un mayor nivel de abstracción del hardware, facilitando la escritura y lectura del código. |
| Compilador | Programa que traduce el código fuente escrito en un lenguaje de alto nivel a lenguaje de máquina, permitiendo su ejecución por la computadora. |
| Intérprete | Programa que ejecuta el código fuente línea por línea, traduciendo y ejecutando cada instrucción de forma inmediata, sin necesidad de una compilación previa completa. |
| Paradigma de programación | Estilo o forma de pensar sobre la programación y la estructura del código, como la programación imperativa, declarativa u orientada a objetos. |
Cuidado con estas ideas erróneas
Idea errónea comúnUna variable puede guardar cualquier cosa al mismo tiempo.
Qué enseñar en su lugar
En la mayoría de los lenguajes, una variable tiene un tipo definido y solo guarda un valor a la vez. Usar analogías de contenedores físicos (una caja de zapatos no es para guardar agua) ayuda a clarificar este concepto mediante la discusión grupal.
Idea errónea comúnLos números en un texto se pueden usar para operaciones matemáticas.
Qué enseñar en su lugar
Si un número está guardado como 'String', la computadora lo trata como un símbolo, no como un valor. Los ejercicios de 'error de tipo' en clase muestran por qué '2' + '2' puede dar '22' en lugar de 4.
Ideas de aprendizaje activo
Ver todas las actividadesStation Rotations: El Almacén de Datos
Se colocan cajas etiquetadas como 'Integer', 'String', 'Float' y 'Boolean'. Los estudiantes deben clasificar tarjetas con datos reales (ej. la población de CDMX, el precio del kilo de tortilla, si un alumno aprobó o no) en la caja correcta.
Pensar-Emparejar-Compartir: Nombrando el Mundo
Los alumnos proponen nombres de variables para un sistema de registro escolar. En parejas, discuten cuáles nombres son descriptivos y siguen las reglas de nomenclatura, rechazando nombres ambiguos como 'dato1' o 'x'.
Círculo de Investigación: El Costo de la Memoria
Los equipos investigan cuánta memoria ocupa un tipo de dato simple frente a uno complejo (como una imagen). Deben presentar una breve conclusión sobre por qué elegir el tipo de dato correcto ahorra energía y espacio en servidores.
Conexiones con el Mundo Real
- Los desarrolladores de videojuegos utilizan lenguajes como C++ para crear motores gráficos complejos y experiencias interactivas, aprovechando la eficiencia de los lenguajes de bajo nivel para el rendimiento y la abstracción de los de alto nivel para la productividad.
- En el desarrollo de aplicaciones móviles, lenguajes como Swift (para iOS) y Kotlin (para Android) permiten a los ingenieros de software de empresas como Google y Apple crear interfaces intuitivas y funcionalidades avanzadas, abstraiéndose de las complejidades del hardware específico del dispositivo.
- Científicos de datos en instituciones como el INEGI (Instituto Nacional de Estadística y Geografía) emplean lenguajes como Python o R para analizar grandes volúmenes de información, utilizando bibliotecas especializadas que facilitan tareas complejas de estadística y visualización de datos.
Ideas de Evaluación
Entregar a cada estudiante una tarjeta con el nombre de un lenguaje de programación (ej. Python, Ensamblador, Java). Pedirles que escriban una oración explicando si es de alto o bajo nivel y una razón por la cual se podría elegir ese lenguaje para un proyecto específico.
Plantear la siguiente pregunta al grupo: 'Si tuvieran que crear una aplicación muy sencilla para sumar dos números, ¿qué características buscarían en un lenguaje de programación y por qué?'. Guiar la discusión hacia la facilidad de uso, la legibilidad y la rapidez de desarrollo.
Mostrar una lista de tareas de programación (ej. controlar un robot, crear una página web, analizar datos científicos). Pedir a los estudiantes que asocien cada tarea con el tipo de lenguaje (alto o bajo nivel) que sería más apropiado, justificando brevemente su elección.
Preguntas frecuentes
¿Por qué existen tantos tipos de datos numéricos?
¿Qué es una variable constante?
¿Cómo afectan los tipos de datos a la ciberseguridad?
¿Cómo beneficia el aprendizaje activo la enseñanza de variables?
Más en Desarrollo de Software y Lenguajes de Programación
Sintaxis Básica y Entornos de Desarrollo
Los estudiantes se familiarizan con la sintaxis básica de un lenguaje de programación y configuran un entorno de desarrollo.
2 methodologies
Variables y Tipos de Datos
Los estudiantes gestionan la información dentro de un programa mediante el uso correcto de tipos de datos y variables.
2 methodologies
Operadores y Expresiones
Los estudiantes utilizan operadores aritméticos, relacionales y lógicos para construir expresiones y realizar cálculos.
2 methodologies
Entrada y Salida de Datos
Los estudiantes implementan funciones para interactuar con el usuario, recibiendo datos y mostrando resultados.
2 methodologies
Funciones y Modularidad
Los estudiantes organizan el código en bloques reutilizables (funciones) para mejorar la legibilidad y el mantenimiento.
2 methodologies
Estructuras de Datos Básicas: Arreglos
Los estudiantes aprenden a almacenar y manipular colecciones de datos del mismo tipo utilizando arreglos.
2 methodologies