Lecciones impartidas en clase (curso 23/24)

Introducción

Esta lección contiene un índice de las lecciones que estoy impartiendo en clase durante el curso 2022/23, así como los ejercicios que están realizando los alumnos.

Para elaborar este índice he utilizado como base las guías de estudio que ofrezco a mis alumnos de la modalidad semipresencial en la plataforma Moodle de la Conselleria de Educación.

La información se ofrece distribuida en quincenas, ya que es así como está organizada la modalidad semipresencial.

También se pueden consultar las lecciones impartidas en el curso 2022/23.

Quincena Q08: del 18/12/23 al 14/01/24

El objetivo de esta primera quincena es poner a punto el entorno de programación.

Estas son las lecciones a leer y las actividades a realizar durante esta quincena.

Presentación de los apuntes

  1. Leed la lección Presentación de los apuntes

Instalación de Python

⚠️Los apuntes presuponen que no tenéis Python instalado en vuestros ordenadores y por tanto podéis instalar todas las cosas que os pida y configurarlas de la manera específica que os pida. Si ya tenéis Python instalado y configurado a vuestra manera, lo que os pida puede interferir con vuestra instalación actual. En ese caso, enviadme un correo y os comento cómo podemos resolver la situación.

  1. Leed la lección Lenguajes de programación.

    Esta lección es una breve presentación de lo que son los lenguajes de programación.

  2. Leed la lección Historia de Python.

    Esta lección comenta las diferentes versión de Python que existen. La versión que vamos a utilizar nosotros es la más moderna, es decir, Python 3.12.

  3. Leed la lección Instalación de Python.

    Esta lección comenta la instalación del intérprete de Python que incluye un entorno de desarrollo bastante elemental llamado IDLE.

  4. Descargad e instalad Python 3.12.2 (o actualizad Python 3.12 o Python 3.12.1 si habíais instalado ya esas versiones)

[opcional] El editor IDLE

Aunque para editar los programas utilizaremos Visual Studio Code, es conveniente conocer también el editor IDLE, un editor muy elemental y limitado pero que se instala al instalar Python.

IDLE también resulta cómodo para probar instrucciones sueltas, como podéis hacer mientras leéis las lecciones, probando los ejemplos incluidos.

  1. Leed la lección IDLE, entorno de desarrollo.

    Esta lección comenta el funcionamiento básico de IDLE: el uso del prompt para probar instrucciones y la edición y ejecución de programas. Podéis leer toda la lección, pero tened en cuenta que esta semana no os pido que hagáis programas.

    Una de las ventajas de IDLE es que permite ejecutar directamente instrucciones de Python. Al leer las lecciones de teoría, es importante que probéis los ejemplos que se ofrecen y poder experimentar por vuestra cuenta las instrucciones.

  2. Leed la lección El entorno interactivo de Python.

    En principio, cuando haya que utilizar el entorno interactivo, os aconsejo utilizar IDLE, pero debéis saber que se puede utilizar el entorno interactivo también en un terminal.

Conceptos básicos de programación

Antes de hacer los ejercicios, tenéis que leer unas lecciones que introducen los conceptos necesarios. Os aconsejo que probéis los ejemplos en el prompt del IDLE para comprobar y que intentéis variaciones de los ejemplos para comprobar que entendéis cómo funciona Python.

  1. Leed la lección Elementos de un programa.

    Esta lección comenta brevemente los elementos que componen un programa de Python, que se abordarán con más detalles en temas posteriores. Lo importante es que os vayáis familiarizando con el vocabulario (palabras reservadas, funciones, operadores, delimitadores, literales, etc.).

  2. Leed la lección Números y operaciones aritméticas.

    Los números son el tipo de dato más simple. En esta lección se comentan los diferentes tipos de números de Python y las operaciones aritméticas elementales.

  3. Leed la lección Cadenas de texto (1).

    Las cadenas de texto (es decir, fragmentos de texto) es otro tipo básico que se utiliza en cualquier programa. En esta lección se comenta cómo se escriben las cadenas en Python.

  4. Leed la lección Variables (1).

    Para guardar información (números o letras) durante la ejecución de un programa, se utilizan variables. En esta lección se explica cómo se gastan las variables en Python.

  5. Leed la lección Cadenas de texto (2).

    Esta lección completa la lección Cadenas de texto (1), pero como en los ejemplos se utilizan variables he dividido las explicaciones en dos partes. El apartado más importante de esta lección son las cadenas "f", que utilizaremos ampliamente.

  6. En la lección Programa básico de Python. tenéis un ejemplo de programa básico que debéis utilizar. Las instrucciones de vuestros programas debéis escribirlas dentro de la función main(), sangradas cuatro espacios.

Configuración de Visual Studio Code

  1. Leed la lección Visual Studio Code. Configuración recomendada para el curso Introducción a la programación con Python, que detalla la configuración de VSC que quiero que utilicéis. NO debéis hacer la instalación manualmente, sino mediante perfiles, como se comenta a continuación.
  2. Configurad VSCode importando el perfil recomendado y creando el área de trabajo, como se explica en la lección Perfil recomendado para Python..

Instalación de mclibre Python Testing Client

En el campo del desarrollo del software, la prueba de programas, y especialmente las pruebas automatizadas, tienen cada vez más importancia. En este curso no vamos a tratar este tema, pero sí que os puede venir muy bien poder probar vuestros programas. Para ello, hace unos años programé una herramienta llamada MPTC (mclibre Python Testing Client) que espero que os resulte útil y fácil de utilizar. Al margen de las pruebas que realicéis vosotros a vuestros programas, esta herramienta realiza a cada programa una batería de pruebas para que podáis confiar en que vuestros programas resuelven correctamente los ejercicios (incluso los ejercicios de los exámenes).

Os recomiendo que, una vez familiarizados con ella, paséis la herramienta a todos vuestros programas. Y si os salen resultados "raros", comentadmelo no vaya a ser un fallo de la herramienta.

Un detalle que quizás os interese por el tema de la privacidad es que la única información que se envía al servidor es el número de ejercicio que queréis comprobar, pero en ningún caso el programa que estáis probando. Y por otro lado, el servidor no conserva ninguna estadística de uso de la herramienta, por lo que no queda absolutamente ningún rastro del uso que hagáis.

  1. Instalad mclibre Python Testing Client de acuerdo con la lección Instalación de mclibre Python Testing Client

    Si habéis instalado Python para seguir este curso, es decir, si antes de empezar este curso no utilizábais Python para nada, quiero que hagáis la instalación en Windows que se comenta en el primer apartado de esta lección. Los apartados dedicados a la instalación en entornos virtuales son para situaciones especiales en la que hay que compatibilizar Python para distintos usos. Enviadme un correo o mensaje si pensáis que estáis en esa situación.

  2. Leed la lección Uso de mclibre Python Testing Client
  3. Por favor, comentad en el foro los problemas que encontréis utilizando MPTC. Espero que la mayoría de errores sean culpa vuestra 😀, pero otras veces serán limitaciones o bugs de MPTC y vuestros comentarios me servirán para ir mejorando la herramienta.
  4. Tened en cuenta también que de vez en cuando puedo actualizar MPTC. Por el momento, para comprobar si hay una nueva versión disponible se deben ejecutar las órdenes:
    python -m pip install --upgrade pip
    pip install --upgrade mclibre-python-testing-client
    

    La primera orden actualiza pip y la segunda actualiza mptc.

Ejercicios de puesta en marcha

  1. Haced los ejercicios 1, 2 y 3 de puesta en marcha Puesta en marcha

    Estos ejercicios son para comprobar que habéis configurado correctamente Python y Visual Studio Code. Podéis intentar hacer los ejercicios 4, 5 y 6 pero los podréis hacer mejor la próxima quincena después de leer las lecciones iniciales sobre el lenguaje.

Quincena Q09: del 22/01/24 al 04/02/24

El objetivo de esta quincena es que empecéis a escribir programas que pidan valores al usuario, hagan cálculos sencillos y muestren resultados al usuario. Para ello se necesitan combinar varias instrucciones y utilizar variables.

Estas son las lecciones a leer y las actividades a realizar durante esta quincena.

Entrada y salida, Variables y Operaciones aritméticas

  1. Leed la lección Salida por pantalla.

    Para hacer programas interactivos hace falta mostrar mensajes al usuario. En esta lección se explica cómo hacerlo. Los ejemplos de esta lección de una sola línea se pueden probar en el entorno interactivo de IDLE. Los ejemplos de varias líneas se pueden probar también en el entorno interactivo de IDLE escribiendo y ejecutando una detrás de otra, pero resulta más cómodo hacerlo en programas que hay que guardar y ejecutar. Si lo hacéis en IDLE, la salida por pantalla se muestra en la ventana de IDLE.

  2. En la lección Configuración recomendada de VSCode. tenéis las instrucciones para ejecutar los programas.
  3. Leed la lección Entrada por teclado.

    Para hacer programas interactivos hace falta que el programa solicite datos al usuario y trabaje con ellos. En esta lección se explica cómo hacerlo. Los ejemplos de esta lección sería mejor probarlos programas que hay que guardar y ejecutar.

  4. Haced los ejercicios 4, 5 y 6 de puesta en marcha Puesta en marcha
  5. Haced los ejercicios Variables, E/S y Operaciones aritméticas.
  6. En la página de soluciones Variables, E/S y Operaciones aritméticas podéis consultar soluciones de los ejercicios.
  7. Haced los primeros ejercicios de la página Ejemplos de MPTC.

    Estos ejercicios es para que practiquéis el funcionamiento de MPTC.

Variables y expresiones booleanas (lógicas)

Las variables y expresiones booleanas son aquellas que pueden tomar dos valores: Verdadero (True) o Falso (False). Estas expresiones son necesarias para expresar condiciones y se utilizan en las estructuras de selección o repetición.

  1. Leed la lección Tipos de datos booleanos
  2. Haced los ejercicios: Expresiones lógicas (1)

    Estos ejercicios son ejercicios tipo test para practicar expresiones booleanas. Repetidlos las veces que sea necesario, hasta que veáis que no cometéis errores. Las expresiones se generan al azar, así que pueden repetirse.

    Nota: Estos ejercicios y los siguientes utilizan una biblioteca que se llama Brython que traduce código de Python a código JavaScript, lo que permite incluir programas de Python (con ciertas limitaciones) en una página web y ejecutarlos en el navegador. Si os sale un ejercicio incorrecto o que evalúe incorrectamente vuestra respuesta, haced una captura de la pantalla y enviadla al foro.

  3. Haced los ejercicios: Expresiones lógicas (2)

    Estos ejercicios son ejercicios tipo test para practicar comparaciones. Repetidlos las veces que sea necesario, hasta que veáis que no cometéis errores.

Quincena Q10: del 05/02/24 al 18/02/24

Sentencias condicionales

Las sentencias condicionales if ... elif ... else ... es la primera estructura de control del flujo del programa que vamos a ver. Permiten que un programa haga una cosa u otra en función de que se cumplan o no las condiciones que queramos.

  1. Leed la lección Sentencias condicionales if ... elif ... else ...
  2. Haced los ejercicios if ... elif ... else ... (1)
  3. Consultad las soluciones de los ejercicios if ... elif ... else ... (1)
  4. Haced los ejercicios if ... elif ... else ... (2)
  5. Consultad las soluciones de los ejercicios if ... elif ... else ... (2)

    Si al principio no sabéis cómo realizar los ejercicios, consultad las soluciones. En algunos casos, tenéis pistas para realizar los programas. Estos ejercicios se pueden resolver siempre de varias maneras. Una vez escrito el programa completamente, tenéis que probar el programa manualmente, probando con todos los casos posibles (es decir, al menos un ejemplo de cada caso) y comprobar que la respuesta de vuestro programa es correcta. También podéis probar los programas con la herramienta mptc. Aunque hayáis escrito un programa correcto, mirad las soluciones para ver otras formas de resolver el problema e intentad entender por qué otras soluciones también funcionan.

Valores aleatorios

Para poder simular acontecimientos al azar, Python dispone de generadores de valores aleatorios (en realidad, pseudo-aleatorios), que utilizaremos para simular partidas de juegos de azar.

  1. Leed la lección Valores aleatorios.

    De todas las funciones que se comentan en la lección, usaremos básicamente la función randrange().

  2. Leed el apartado "Otras funciones integradas" de la lección Números y operaciones aritméticas elementales.

    Las funciones max() y min() os vendrán bien para los ejercicios que os propongo a continuación.

  3. Haced los ejercicios Minijuegos (1)
  4. Consultad las soluciones de los ejercicios: Minijuegos 1)

[optativo] Ejercicios adicionales

Quincena Q11: del 19/02/24 al 03/03/24

El tipo range

  1. Leed la lección El tipo range

    Python dispone de un tipo de datos que no es habitual en otros lenguajes de programación, el tipo range. En una variable de tipo de tipo range se pueden almacenar varios números (concretamente números enteros en progresión aritmética), pero estos valores no se pueden modificar.

    En la primera parte de esta lección hay una referencia a las listas, otro tipo de datos de Python que permite agrupar varios datos en una sola variable. Lo he puesto porque el tipo range se puede entender como un caso particular de lista, pero lo importante en esta lección es que tengáis claro lo que es range, ya veremos las listas más adelante.

  2. Haced los ejercicios El tipo range

    Los tres primeros ejercicios son ejercicios tipo test para tener claro cómo se crean tipos range, con uno, dos o tres argumentos. Los podéis repetir las veces que sea necesario. El resto de ejercicios son programas en los que se pide un dato al usuario y se muestra un resultado en forma de range().

  3. Consultad las soluciones de los ejercicios El tipo range

Bucle for

  1. Leed la lección Bucle for

    La sentencia for ... es otra estructura de control del flujo del programa, que permite definir iteraciones (repeticiones). Permiten que un programa repita un conjunto de instrucciones un número definido de veces.

    Para establecer el número de repeticiones, utilizaremos el tipo range.

  2. Haced los ejercicios Bucle for Minijuegos (2)
  3. Consultad las soluciones de los ejercicios Bucle for Minijuegos (2).
  4. Haced los ejercicios Bucle for (1).
  5. Consultad las soluciones de los ejercicios Bucle for (1).

Quincena Q12: del 05/03/24 al 17/03/24

Bucle while

El bucle while es el tipo de bucle que se utiliza cuando no sabemos cuántas veces va a ser necesario realizar el bucle.

  1. Leed la lección Bucle while
  2. Haced los ejercicios Bucle while (1).
  3. Consultad las soluciones de los ejercicios Bucle while (1).
  4. Haced los ejercicios Bucle while (2).
  5. Consultad las soluciones de los ejercicios Bucle while (2).
  6. Leed la lección Biblioteca fecha y hora (necesarios para algunos ejercicios Bucle while (3)).
  7. [opcional] Haced los ejercicios Bucle while (3).
  8. [opcional] Consultad las soluciones de los ejercicios Bucle while (3).