Coding Giants
Introducción a la programación en C# (Curso con contenido de IA)
12-16 años

Introducción a la programación en C# (Curso con contenido de IA)

Domina C#, el lenguaje detrás de los mayores éxitos actuales. Diseña programas, chats NPC y asistentes inteligentes con la ayuda de GitHub Copilot. Aprende la lógica del código y crea soluciones originales. Un comienzo sólido para aquellos que se toman en serio la programación. ¡Tu viaje comienza ahora!

Introducción

Aprenderemos C# en Visual Studio. Exploraremos variables, bucles, métodos y sentencias condicionales. Crearemos programas basados en consola y ventanas. Con ChatGPT, Gemini y GitHub Copilot, diseñaremos un juego de adivinanzas con IA, un asesor culinario y un chat NPC, y generaremos gráficos en arte ASCII.

Programa del curso

1Clase 1. Introducción a C#
El objetivo de la lección es crear el primer programa en C# y familiarizarse con el entorno Visual Studio Code.
2Clase 2. Variables y constantes
El objetivo de la lección es introducir el concepto de variables y constantes, y mostrar los tipos de variables más utilizados.
3Clase 3. Operaciones matemáticas
El objetivo de la lección es presentar las operaciones matemáticas más utilizadas.
4Clase 4. Operadores lógicos y conversión de tipos
El objetivo de la lección es introducir la lógica en el contexto de las matemáticas y la programación. Aprenderemos sobre el tipo lógico y los operadores que permiten el razonamiento.
5Clase 5. Conociendo el entorno de programación
El objetivo de la lección es conocer mejor el entorno de Visual Studio Code, aprender a reconocer y corregir errores comunes e integrar GitHub Copilot con el editor.
6Clase 6. Sentencias condicionales
El objetivo de la lección es introducir las sentencias condicionales. Aprenderemos cómo funcionan y veremos ejemplos de su aplicación.
7Clase 7. Switch y Enum
El objetivo de la lección es presentar la instrucción switch. Aprenderemos una alternativa a la instrucción if. Además, descubriremos qué es un tipo de enumeración (enum).
8Clase 8. Buenas prácticas de programación
El objetivo de la lección es introducir buenas prácticas de programación en C#, con especial énfasis en la depuración de código. Los estudiantes aprenderán a utilizar puntos de interrupción, analizar la ejecución del programa paso a paso y detectar y corregir errores en el código.
9Clase 9. Bucles
El objetivo de la lección es comprender el mecanismo de los bucles y adquirir la capacidad de utilizar en la práctica dos tipos de bucles en C#: while y for.
10Clase 10. Arrays (Arreglos)
El objetivo de la lección es aprender sobre los arrays (arreglos).
11Clase 11. Evaluación de habilidades en C# – Junior
El objetivo de la lección es repasar y consolidar los conocimientos adquiridos hasta el momento. Los estudiantes tendrán la oportunidad de enfrentarse a retos de programación y competir por puntos.
12Clase 12. Métodos
El objetivo de la lección es aprender sobre los métodos, que permiten dividir el código en partes y mejorar su legibilidad.
13Clase 13. Listas
El objetivo de la lección es comprender mejor los arrays (arreglos) y aprender sobre las listas.
14Clase 14. Juego de adivinanza
El objetivo de la clase es consolidar los conocimientos sobre métodos y listas.
15Clase 15. Estructuras de datos
El objetivo de la lección es aprender nuevas estructuras de datos que permitan implementar mecánicas sencillas de juegos populares.
16Clase 16. Chatbot con un NPC
El objetivo de la lección es aprender a crear un chatbot sencillo y comprender los conceptos básicos del procesamiento del lenguaje natural (NLP).
17Clase 17. Introducción a la Programación Orientada a Objetos
El objetivo de esta lección es introducir la programación orientada a objetos en C#.
18Clase 18. Programación Orientada a Objetos en la práctica
En esta lección, los alumnos aprenderán los paradigmas de la programación orientada a objetos: la abstracción, la herencia y el polimorfismo. Disenaremos la lógica de los héroes del juego definiendo tipos de personajes con diferentes habilidades, mediante el uso de objetos.
19Clase 19. Vectores y espacio 2D
El objetivo de esta lección es aprender qué son los vectores y cómo se utilizan, así como conocer formas de implementarlos mediante la programación orientada a objetos.
20Lección 20. Introducción a la POO
El objetivo de la lección es familiarizar a los participantes con los problemas básicos, el concepto de programación orientada a objetos y el trabajo en el Explorador de soluciones.
21Lección 21. Herencia (Parte I)
El objetivo de la lección es profundizar sus conocimientos de programación orientada a objetos. Se presentarán cuestiones como la herencia, la anulación de métodos y los elementos estáticos en la programación.
22Lección 22. Herencia (Parte II)
El objetivo de la lección es revisar y consolidar los conceptos básicos de la programación orientada a objetos y aprender sobre elementos como la sobrecarga de métodos, el bucle foreach y las listas.
23Lección 23. Revisión de programación orientada a objetos - RPG
El objetivo de la lección es revisar y consolidar el material desde los conceptos básicos de la programación orientada a objetos.
24Lección 24. Proyecto: Juego de memoria (Parte I)
Crearemos un juego de memoria en ventana en el que se dibujarán pares de imágenes durante su lanzamiento. Nuestra tarea será encontrar todas las parejas en el menor tiempo posible para sumar la mayor cantidad de puntos posibles. El juego tendrá un cronómetro y la posibilidad de reiniciarse una vez finalizado.
25Lección 25. Proyecto: Juego de Memoria (Parte II)
La lección es una continuación del tema realizado en la lección anterior.
26Lección 26. Proyecto: Juego de memoria (Parte III)
La lección es una continuación del tema de la lección anterior.
27Lección 27: Proyecto: Battleship (Parte 1)
28Lección 28: Proyecto: Battleship (Parte 2)
29Lección 29: Proyecto: Battleship (Parte 3)
30Lección 30: Proyecto: Battleship (Parte 4)
31Lección 31: Word
32Lección 32: Paint
33Lección 33. El juego de la vida (Parte I)
En esta y próximas clases prepararemos nuestra propia implementación del Juego de Vida. Se trata de una simulación en la que no existe un jugador típico y la única influencia en el juego se produce durante el establecimiento de las condiciones iniciales. La simulación involucra células que evolucionan y forman diferentes estructuras.
34Lección 34: El juego de la vida (Parte 2)
35Lección 35. Métodos de almacenamiento de datos
El objetivo de esta lección es analizar varios métodos de almacenamiento de datos en C#. Se presentarán los conceptos de registros, diccionarios, colas y conjuntos.
36Lección 36: Bases de datos en C# (Parte I)
El objetivo de esta lección es explicar cómo conectarse a una base de datos MySQL en C# y demostrar cómo recuperar datos de ella.
37Lección 37: Bases de datos en C# (Parte II)
El objetivo de esta lección es analizar cómo prevenir la inyección de SQL, qué son las transacciones y el propósito de Entity Framework.
38Lección 38: Introducción al LINQ
El objetivo de esta lección es presentar LINQ, sus aplicaciones, cuándo vale la pena utilizarlo y sus ventajas.
39Lección 39: Pruebas
El objetivo de esta lección es explicar cómo escribir pruebas unitarias y de integración en C#. Además, cubrirá por qué es beneficioso hacerlo.
40Lección 40: LeetCode y HackerRank: Tareas básicas de programación (Parte I)
El objetivo de esta lección es mostrar los sitios web LeetCode y HackerRank. Se realizarán varias tareas en LeetCode, utilizando conceptos discutidos previamente.
41Lección 41: LeetCode y HackerRank (Parte II)
Continuación de la resolución de tareas. Demostrar y resolver colaborativamente tareas que puedan aparecer en entrevistas de trabajo corporativas.
42Lección 42: Introducción a JavaScript (Parte I)
El objetivo de esta lección es analizar los conceptos básicos de la programación en JavaScript, como variables, bucles y declaraciones condicionales.
43Lección 43: Introducción al JavaScript (Parte II)
El objetivo de esta lección es analizar más a fondo el lenguaje JavaScript, en particular cómo invocar funciones escritas en C# desde JavaScript.
44Lección 44: Introducción a Angular (Parte I)
El objetivo de esta lección es cubrir los conceptos básicos del marco Angular. Explicará por qué vale la pena usarlo, el significado de varios archivos y qué componentes, módulos y servicios son.
45Lección 45: Introducción a Angular (Parte II)
El objetivo de esta lección es analizar más a fondo el marco Angular, incluido cómo ejecutar el frontend y el backend. También explicará la implementación de una aplicación.
46Lección 46: Gigantbook (Parte I)
Creando una versión simplificada de Facebook. Este proyecto implicará crear un perfil personal, explorar los perfiles de otros usuarios y enviar mensajes a otros usuarios. El proyecto utilizará C#, Angular y una base de datos SQL. Gigantbook será una aplicación web.
47Lección 47: Gigantbook (Parte II)
Esta lección continuará el tema tratado en la lección anterior.
48Lección 48: Gigantbook (Parte III)
Esta lección continuará el tema tratado en la lección anterior.