Lenguajes de Programación: Aprender un Lenguaje Nuevo

cesareox » Docencia » DFSI » Lenguajes de Programación: Aprender un Lenguaje Nuevo

Objetivos

La metodología de aprendizaje de un lenguaje de programación es siempre la misma. A pesar de la gran variedad de lenguajes de programación que existen en la actualidad, en esta unidad didáctica se hará una introducción a los lenguajes de programación, cuales son sus características y establecer formas prácticas para aprenderlos. El alumno deberá realizar un programa ejemplo básico.

Introducción
Lenguaje de Programación
Comenzar a Programar
Aprender el Lenguaje

Contenidos de las Clases

  1. Aspectos a tener en cuenta para aprender y comenzar a programar
    • ¿Qué es un lenguaje de programación?
    • ¿Para qué sirve el software?: para resolver problemas
    • Arquitectura del Computador (Repaso)
      • Máquina de Von Neumann
      • Arquitecturas y Plataformas Hardware de desarrollo
    • Ciclo completo de compilación. Fase de Enlazado de Librerías
    • Programas Interpretados y Compilados
    • Organizar mi Entorno de Trabajo
      • Plataforma de Trabajo: Arquitectura Hardware y Software
      • Documentación: impresa, local y en Internet
      • Software de Desarrollo: Herramienta de Trabajo
    • Criterios para escoger un lenguaje de programación
    • Ejemplos de Lenguajes de Programación
  2. El Lenguaje de Programación
    • Clasificación de los Lenguajes
      • Según Cercanía a la Máquina (Nivel de Abstracción): máquina, ensamblador, alto nivel
      • Según la Evolución del Hardware: 1a (40-60), 2a (60-64), 3a (64-72), 4a (72-81), 5 (81-90), 6a (Internet)
      • Según su Estructura Gramatical: Imperativo (digo cómo hacerlo) y Declarativo (digo qué hacer)
      • Según el procesado: interpretados y compilados
      • Según el paradigma metodológico: estructurada, orientada a objetos, orientada a eventos, etc
      • Según el uso : lenguajes de descripción de datos
      • Según el componente gráfico: los lenguajes Visual
      • Según su grado de utilidad: Esotéricos (para divertirse)/ Complicados
    • Niveles del lenguaje:
    • Elementos del Lenguaje (palabras reservadas): Identificadores, Constantes, Operadores, Instrucciones y Comentarios
    • Características Generales de un Lenguaje
      • Qué es un programa
        • Programas Fuente: archivos de texto
        • Control y numeración de versiones
        • Documentación
      • Programación Modular y Estructurada
        • Funciones, Módulos y Librerías
        • Documentación y Conexión
      • Programación Orientada a Objetos
        • Descripción básica de un objeto: coche
        • Lenguajes Orientados a Eventos como un ejemplo simplificado de POO
      • Teorema de Dijkstra o ¿qué sentencias necesito conocer para programar?
        • Secuencia de Instrucciones
        • Sentencia Condicional: IF condicion THEN instruccion1 ELSE instruccion2
        • Sentencias Repetitivas: WHILE condicion DO instruccion (o DO..UNTIL)
      • Lenguaje y Recursos Extra (librerías). APIs de Programación
  3. Aprender el lenguaje (Programa Hola Mundo)
    • Preparar mi entorno de Desarrollo
      • Hardware: Plataforma Hardware disponible
      • Software: Sistema Operativo y Software especializado
    • Preparar Documentación Necesaria:
      • Para Aprender: Especificaciones y Tutorial
      • Para Programar: Especificaciones y comunidad de soporte
    • Preparar Entorno de Programación: edición programa
      • Tipos de Herramientas: básicas (editor de texto) y avanzadas (CASE y Entornos IDE)
      • Características de un Editor de Textos Avanzado ( Emacs / Ultraedit (sólo Windows) )
      • Para practicar con el editor de texto (Practicar con Emacs)
        • Gestionar Texto: añadir, quitar, modificar
        • Gestionar Archivos de Texto (abrir, cerrar, insertar, guardar como ...)
        • Hacer búsquedas y reemplazos
        • Gestión del lenguaje de programación: resaltado de palabras reservadas y sintaxis, control sintáctico (paréntesis, indentación) e integración con la documentación del lenguaje.
        • Soporte avanzado: varios archivos a la vez, soporte a control de versiones, conexión a consolas remotas, etc
    • Características de un programador (lo que NO debemos ser pero somos):
      • impaciente. Porque las cosas no salen a la primera
      • indisciplinado. Porque hay que tener hábitos de programación
      • petulante. Porque no se hacen programas para que nos alaben sino para ser útiles
    • Programa Hello World:
      • Cargar el software
      • Instrucción básica de entrada/salida
    • Ejemplos de Hola Mundo en diferentes lenguajes
  4. Ejemplo con un lenguaje: Descripción y Preparación del entorno
    1. Características comunes a los lenguajes
      1. Caracteres Básicos y Palabras Reservadas
      2. Sentencias de Asignación
      3. Operadores Aritméticos y Lógicos
      4. Sentencias de Control
      5. Sentencias de Repetición
    2. Cosas que tengo que ir controlando
      • Asignación de Variables y Valores. Estructuras de datos (escalares, listas, hash, etc)
      • Operaciones Aritméticas y Lógicas. Condiciones
      • Instrucciones de control de flujo y repetición
      • Programación modular: subrutinas, funciones, librerías
    3. Palabras Reservadas, Tipos de Datos, Asignación de Variables, Operadores Aritméticos y Lógicos, Herramientas de Control de Flujo, Iteraciones y Recursividad, Módulos (Procedimientos, Funciones), Parámetros y Estructura General
    4. Para aprender a programar:
      • Practicar (Hacer tu Hola Mundo)
      • Ver código
      • Practicar (Algunos ejercicios)
      • Ver Código
      • y ... practicar

Actividades de Aprendizaje

  1. Escoger un lenguaje de programación para desarrollar en el módulo
    1. Buscar algunas Alternativas de lenguajes (tres)
    2. Analizar Ventajas e Inconvenientes (4) y contrastar
    3. Tomar decisión por un lenguaje por lo que se lea en Internet
    4. Ver un ejemplo de programa
  2. Aproximación a un lenguaje de programación (Javascript o Perl)
    1. Arquitectura Hardware: en clase y en casa
    2. Sistema Operativo, versión del lenguaje y librerías necesarias
    3. Necesidades para programar: en clase y en casa
    4. Comenzar a trabajar con el lenguaje: historia, palabras reservadas, sintaxis más común, etc
  3. Comenzar a Programar
    1. Configurar entorno de desarrollo: programas que se necesita
    2. Tener Instalación Local de Documentación y Links (Bookmarks)
    3. Hacer el programa Hola Mundo
  4. Aprender Lenguaje (Javascript o Perl):
    • Manejo de Variables (escalares, listas, hash, etc)
    • Manejo de Estructuras de Control
    • Manejo de funciones y librerías (Programación Modular)
    • Ejemplos de Ejercicios
      1. Sustitución de Variables: Hola Mundo con sustitución de una variable
      2. Variables: imprimir una lista, un array o una tabla hash.
      3. Estructuras de Control: ejemplo de if/else y operadores de comparación
      4. Estructuras Repetitivas: ejemplo de while y condiciones en el bucle
      5. Entrada/Salida: realizar la suma de dos valores de entrada, o division con control de dividendo cero
      6. Manejo de Texto: intercambiar letras, o palabras, búsqueda de caracteres en palabras, validación de textos, etc
  5. Ejercicios para Practicar
    • Ejercicios Básicos (comunes)
      1. Dado un número N, escribir los números de 1 a N y después de N a 1
      2. En el anterior, cuando el número sea la mitad poner: Este es la mitad
      3. Dada una cadena de entrada, analizarla: Decir longitud total, las vocales que tiene (y contarlas) y escribir las palabras por separado. Sustituir espacios por signo menos - .
    • Ejercicios Avanzados Perl (o lenguaje similar):
      1. Conectarse a una base de datos y mostrar datos de una tabla
      2. Crear una página HTML (archivo) a partir de una tabla de la Base de Datos
      3. Mostrar el texto de los enlaces de una página Web Externa
    • Ejercicios Avanzados JavaScript (o lenguaje similar):
      1. Validar los datos de entrada a un formulario (por ejemplo un teléfono o dirección de correo o el NIF)
      2. Modificar el comportamiento de la página desde un formulario. Por ejemplo mostrar/ocultar texto, o cambiar estilo de la página, etc
      3. En un campo de codigo postal, sugerirle al usuario qué codigo postal poner

Tiempo Estimado

Unas 30 horas, equivalentes a un crédito ECTS

Recursos a Utilizar

Hay muchos lenguajes de programación y algunos típicos son:

pero ... hay muchos más (más de 2.500 documentados y no todos son tan utilizados)

Para los trabajos del curso nos centraremos en perl y javascript aunque vale cualquiera. Hay mucha información sobre los distintos lenguajes de programación, sobre todo en sus páginas principales de referencia. Algunos tutoriales que he ido recopilando (algunos en inglés) son los siguientes:

  1. Teach Yourself C++ in 21 Days
  2. JavaScrip Tutorial / Tutorial de Javascript
  3. PHP Tutorial
  4. TCL for Web Nerds
  5. Python Tutorial

Enviar un comentario


Cesareo