-->

Menú principal

martes, 8 de noviembre de 2022

Computación y Robótica 3º ESO - Tema 1.- Introducción a la programación

 Tema 1.- Introducción a la programación

Índice

1.- Introducción
2.- Conceptos básicos de programación
   2.1.- Definición de algoritmo
   2.2.- Lenguaje pseudocódigo
   2.3.- Análisis de problemas
   2.4.- Diagramas de flujo
3.- Lenguajes de programación
   3.1.- Tipos de lenguajes de programación
   3.2.- Lenguaje SCRATCH
4.- Introducción al programa SCRATCH
   4.1.- Entorno de Scratch
   4.2.- Tipos de bloques
   4.3.- Primeros pasos con Scratch
   4.4.- Actividades a realizar con Scratch


1.- INTRODUCCIÓN

    Hoy día es de vital importancia conocer el funcionamiento de las nuevas tecnologías de la información y la comunicación. La mayoría de las profesiones y trabajos requieren el uso de ordenadores y conocer aplicaciones informáticas para realizar las tareas de una forma más eficaz y rápida.
    Saber programar es una habilidad que es cada día más importante. La expertos en educación consideran que las habilidades de programación serán tan importantes como la habilidad de hablar otros idiomas. Por ello en muchos países se está fomentando que los alumnos/as aprendan a programar desde una edad temprana.

2.- CONCEPTOS BÁSICOS DE PROGRAMACIÓN

Lenguaje de programación es el idioma utilizado para controlar el comportamiento de una máquina, particularmente un ordenador. Consiste en un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.

Lenguajes de bajos nivel: están enfocados a un microprocesador de un ordenador concreto. Ejemplos de lenguaje de bajo nivel: assembler

Lenguaje de medio nivel: Es un tipo de programación que se encuentra entre los lenguajes de bajo nivel y los de alto nivel. Un ejemplo es el lenguaje C, que permite acceder al hardware.

Lenguajes de alto nivel: están más próximos al lenguajes humano que al lenguaje de la máquina. Ejemplos de lenguajes de alto nivel: C++, Python, Java, Visual Basic, etc.

Código fuente, es el lenguaje escrito para ser entendido por el ser humano, pero no es comprendido por la máquina ya que esta solo maneja el lenguaje binario.

Compilación es el proceso de traducir un programa en código fuente a programa en código objeto (que usa el lenguaje binario) o código máquina.

Compilador es el programa encargado de compilar o realizar el proceso de compilación. La mayoría de software de programación trae su propio compilador.

2.1.- Concepto de algoritmo

Algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Por ejemplo, una receta de cocina con los pasos necesarios para preparar una comida determinada, es un algoritmo. Los algoritmos tienen un principio y un final, y como resultado dan la solución de un problema.


    Un programa puede tener varios algoritmos que realizan diferentes funciones y que se ejecutan según las necesidades del usuario.

2.2.- Lenguaje de pseudocódigo

El pseudocódigo es una forma de escribir los pasos que va a realizar un programa de la forma más cercana al lenguaje de programación que vamos a utilizar posteriormente. Es como un falso lenguaje, pero en nuestro idioma, en el lenguaje humano y en español o en el idioma del programador.


Aquí tenéis un ejemplo de pseudocódigo para dibujar un cuadrado en LOGO:

1 --> Inicio
2 --> Inicializar variables: lado=0, nlados=0
3 --> Pedir por pantalla la introducción de dos valores distintos
4 --> Leer los dos valores y asignarlos a las variables lado y nlados
5 --> Bajar el puntero del lápiz
6 --> Hacer avanzar el puntero la distancia indicada por la variable lado
7 --> Girar 90º la dirección de avance
8 --> Avanzar la distancia del lado
9 --> Girar 90º
10 --> Avanzar la distancia del lado
11 --> Girar 90º
12 --> Avanzar la distancia del lado hasta cerrar el cuadrado
13 --> Subir el puntero del lápiz
14 --> Finalizar


El siguiente paso sería transformar este pseudocódigo en un lenguaje de programación con sus instrucciones o sentencias correspondientes, lo cual daría lugar a un programa o algoritmo.

2.3.- Análisis de problemas


    El análisis de un problema es la parte mas importante para la resolución del mismo, es donde el programador debe imaginarse como plasmar el problema en el ordenador de forma que refleje el proceso real que se realiza, para ello debe secuenciar cada uno de los pasos que se realizan de forma manual y convertirlos en un proceso automatizado.


    Lo primero es definir el problema que queremos resolver, por ejemplo realzar un programa para calcular una ecuación de segundo grado. Primero hay que plantearse qué datos son necesarios y cómo las vamos a introducir en el programa. Luego habrá que realizar una serie de operaciones matemáticas, y por último obtener un resultado e imprimirlo o mostrarlo en pantalla.

    Todo problema debe tener datos de entrada, los cuales serán pedidos a los usuarios que van a usar el programa, luego de esta captura de datos el programa procesara dicha entrada y debe dar una salida que será de utilidad para el usuario; esta salida debe ser veraz, eficiente y confiable, esto se logra con pruebas exhaustivas y con ayuda de la experiencia.

En resumen, los pasos principales a seguir para analizar un problema son:

1.- Entrevistas con los usuarios para obtener información
2.- Recolectar los datos de partida que intervienen en el proceso a seguir.
3.- Dividir el problemas en partes más pequeñas e independientes.
4.- Establecer prioridades o secuencias de desarrollo que optimicen los tiempos necesarios para resolver el problema en conjunto, dando prioridad a las partes que son más complejas o que se necesitan para continuar con otros procesos.
5.- Recabar información sobre los datos de salida que debe ofrecer el programa
6.- Establecer un sistema de comprobación y corrección de errores.

2.4. Diagramas de flujo


    Un diagrama de flujo es una representación esquemática de los distintos pasos de un programa. Constituyen pues, otra forma de representar algoritmos distinta al pseudocódigo, pero que nos sirve de forma complementaria en el proceso de creación de la estructura del programa antes de ponernos delante del ordenador.

    Para la creación de diagramas de flujo utilizaremos unos símbolos y normas de construcción determinados. En nuestro caso, un modelo simplificado de los estándares internacionales, con el objeto de poder interpretar y ser interpretados por otros programadores.

Un ejemplo de diagrama de flujo para calcular la superficie de un rectángulo:

3.- Lenguajes de programación

    Los lenguajes de programación son un conjunto de símbolos y signos que se utilizan para generar una secuencia de instrucciones que permiten crear un algoritmo o un programa para realizar una determinada tarea.
    Existen muchos lenguajes de programación, cada una con sus características propias, otros orientados a un determinado sector, otros diseñados para el aprendizaje y la enseñanza, entre ellos tenemos lenguajes como Basic, Visual Basic, Scratch, Arduino, etc.


   3.1.- Tipos de lenguajes de programación

    Existen dos tipos de lenguajes de programación, los de texto donde se escriben los comandos o instrucciones que forman el programa, y los que usan bloques como Scratch.


   3.2.- Lenguaje SCRATCH

    Scratch es un lenguaje de programación por bloques que permite desarrollar habilidades como el pensamiento computacional, razonamiento lógico, creatividad, e inclusive, desarrollando habilidades artísticas y socioemocionales, y otras competencias tecnológicas para el futuro. Está especialmente diseña para que los niños aprendan a programar desde edades muy tempranas.

    Los bloque se clasifican por grupos y no todos pueden encajar con otros bloques, sino que hay que colocar los que se corresponden. La programación en bloques nos permite aprender la lógica de programación desde niños, mediante el uso de sencillas conexiones en forma de bloques. Cada bloque tiene una instrucción, condición o evento diferente. Para programar el paso a paso de una tarea, se deben de encajar los bloques de forma ordenada y lógica. Al juntarlos encajan como piezas de lego o rompecabezas y se van creando pilas o cadenas secuenciales de bloques, es decir, pequeños programas.

    La programación por bloques tiene también elementos como variables, condicionales, bucles, entre otros. Sin embargo, a diferencia de los lenguajes escritos de programación, los bloques se ordenan en grupos de distintos colores. Por ejemplo, tenemos un grupo para los bloques de movimiento en color azul, otro grupo en color verde para los operadores matemáticos, etc.

4.- Introducción al programa SCRATCH

    Antes de empezar a programar vamos a realizar el siguiente cuestionario:

   4.1.- Entorno de Scratch

    Para conocer mejor el entorno de Scratch vamos a realizar las siguientes actividades:

   4.2.- Tipos de bloques

    Para sacarle todo el provecho a este entorno de programación es necesario conocer las herramientas de las que dispone, para ello vamos a realizar estos ejercicios:

Ejercicio 3.-  Clasificar bloques en Scratch
  

Ejercicio 4.- Bloques de sensores en Scratch


   4.3.- Primeros pasos con Scratch



Ejercicio 7.- Propiedades de los objetos en Scratch



   4.4.-Actividades a realizar con Scratch

    Realiza estos ejercicios de la web REA -> Recursos Educativos Abiertos de la Junta de Andalucia.

Ejercicio 10.- Par o impar con Scratch


Ejercicio 11: Adivinar un número aleatorio en un intervalo (ej: entre 1 y 500)


Realiza el código mostrado en la figura y prueba que funciona correctamente.

Ejercicio 12: Dibujar polígonos de n lados con una longitud dada


Este ejercicio tiene varios objetos, el objeto1 es el gato y tiene el código indicado en la figura anterior.
El objeto bola dibuja el polígono al hacer clic sobre él. Su código se muestra en la siguiente figura:

El botón "Longitud+" incrementa la longitud del lado en una unidad, lo mismo para el botón "Longitud-" que disminuye la longitud del polígono. Hay otros dos botones para disminuir o aumentar el número de lados. Intenta replicar el código mostrado en la figuras y prueba el funcionamiento.