Iniciación a la programación



Introducción

Con este curso pretendemos dar una primera idea sobre técnicas de programación a un nivel muy elemental y dirigido especialmente a personas que no han tenido nunca un contacto con este mundo. Si tú ya has trabajado con algún lenguaje de programación, este curso será muy sencillo para ti, pero no dejará de sorprenderte si no has trabajado nunca con lenguajes que derivan del LISP (cuya principal característica es el trabajo con listas).

Antes de empezar con la descripción del curso conviene aclarar algunos conceptos relativos a los lenguajes de programación para que sepamos de qué estamos hablando.


Volver al índice

Conceptos básicos

Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Es utilizado para controlar el comportamiento físico y lógico de una máquina.

Aunque muchas veces se usan los términos 'lenguaje de programación' y 'lenguaje informático' como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación).

Un lenguaje de programación permite a uno o más programadores especificar de manera precisa sobre qué datos debe operar una computadora, cómo estos datos deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas entre ellos para realizar la construcción del programa de forma colaborativa.

Los procesadores usados en las computadoras son capaces de entender y actuar según lo indican programas escritos en un lenguaje fijo llamado lenguaje de máquina. Todo programa escrito en otro lenguaje puede ser ejecutado de dos maneras:


Volver al índice

Clasificación de los lenguajes de programación

Lenguajes de Máquina 

Están escritos en lenguajes directamente legibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias (0 y 1). Da la posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior lo que supone una velocidad de ejecución superior, solo que con poca fiabilidad y dificultad de verificar y poner a punto los programas.

Lenguajes de bajo nivel 

Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel por excelencia es el código máquina. A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa. Ejemplo:

;Lenguaje ensamblador, sintaxis Intel para procesadores x86
mov eax,1 ;mueve a al registro eax el valor 1
xor ebx, ebx ;pone en 0 el registro ebx
int 80h ;llama a la interrupción 80h (80h = 128 sistema decimal)

Lenguajes de medio nivel 

Hay lenguajes de programación que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel. Ejemplo:
/*Lenguaje C*/

/*declaración de las funciones estandars de entrada y salida*/
#include <stdio.h>

int main(int argc, char **argv)
{
char *p; /*creamos un puntero a un byte*/
if(argc == 1){
printf("\nIngrese un argumento al programa\n");/*imprimimos el texto*/
return 1;
}
p = 0x30000 /*el puntero apunta a 0x30000 */
*p = argv[1][0] /*el primer caracter del primer argumento lo copiamos a la posición 0x30000 */
return 0;
}

El ejemplo es muy simple y muestra a los punteros de C, éstos no son muy utilizados en lenguajes de alto nivel, pero en C sí.

Lenguajes de alto nivel 

Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, uno de los lenguajes de alto nivel más conocidos, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si el CONTADOR es igual a 10. Esta forma de trabajar puede dar la sensación de que las computadoras parecen comprender un lenguaje natural; en realidad lo hacen de una forma rígida y sistemática, sin que haya cabida, por ejemplo, para ambigüedades o dobles sentidos. Ejemplo:
 {Lenguaje Pascal}
program suma;

var x,s,r:integer; {declaración de las variables}
begin {comienzo del programa principal}
writeln('Ingrese 2 números enteros');{imprime el texto}
readln(x,s); {lee 2 números y los coloca en las variables x y s}
r:= x + s; {suma los 2 números y coloca el resultado en r}
writeln('La suma es ',r); {imrpime el resultado}
readln;
end.{termina el programa principal}

Ese es el lenguaje Pascal, muy utilizado por principiantes al aprender a programar

Volver al índice

El curso de programación

Como primera aproximación a un lenguaje de programación he elegido un lenguaje de alto nivel y de tipo intérprete. Se trata del lenguaje LOGO, un lenguaje diseñado específicamente para educación que nos servirá para adquirir con facilidad hábitos saludables de programación.

El objetivo principal del curso no es terminar siendo un experto programador ni dominar todas las instrucciones de este lenguaje, sino aprender que programar consiste en enseñar al ordenador a hacer algo que tú ya sabes hacer pero que es laborioso y/o tedioso. Para ello el alumno tiene que asimilar una serie de técnicas que son las mismas sea cual sea el lenguaje de programación que se utilice.

Existen numerosas versiones de LOGO en la red y me he decantado por una denominada XLOGO. Todo lo que necesites saber sobre este programa y algunos de los materiales que vamos a utilizar en este curso se pueden consultar y/o descargar desde esta página:

http://xlogo.tuxfamily.org/


Materiales necesarios para el desarrollo del curso


Además en la página oficial de XLogo mencionada más arriba existe un completo curso de XLogo que puede consultarse si se quiere ampliar el conocimiento de este lenguaje. Pero nosotros no vamos a seguirlo.


Método de trabajo

  1. Descarga e instala si es necesario los materiales indicados en el apartado anterior.
  2. Lee el tutorial y ve realizando las actividades que se indican en él. Puedes utilizar el manual como guía de referencia y ayuda cuando lo necesites y también enviar mensajes al profesor para realizar cualquier tipo de consulta sobre las actividades que estás haciendo.
  3. Como actividad final debes realizar programas que resuelvan las tareas que se indican a continuación y, éstas sí debes enviarlas al profesor:
    1. Diseñar un programa que permita dibujar un polígono regular con el número de lados y longitud de cada lado que se desee en cada momento.
    2. Con ayuda del programa anterior diseñar un programa que dibuje un tablero de ajedrez. El programa debe estar diseñado en forma modular: es decir, debe descomponer el problema en problemas más simples, diseñar un pequeño procedimiento para cada uno de esos problemas simples y luego ensamblarlos todos en un procedimiento principal que ejecute la tarea completa.
    3. Diseñar un programa que escriba todos los divisores de un número entero cualquiera.
    4. Basado en el programa anterior diseñar un programa que nos diga si un cierto número es primo o no.
    5. Diseñar un programa que conjugue el presente de indicativo de cualquier verbo de la primera conjugación.
    6. Diseñar un programa que sirva para que un niño de primaria practique las tablas de multiplicar. El programa debe generar al azar la tabla de cualquier número entre 0 y 10 y a medida que va preguntando debe esperar a que el alumno responda desde el teclado, luego debe valorar si la respuesta es buena o mala e ir contando los aciertos y fallos. Después de preguntar la tabla entera de ese número debe indicar el número de aciertos y fallos y debe preguntar si se quiere volver a empezar.