Coding Giants
Introduzione alla programmazione con C#
13-15 anniI più scelti

Introduzione alla programmazione con C#

Questo corso offre un’introduzione alla programmazione “vera e propria”. Si affrontano gli elementi fondamentali di C#, un linguaggio moderno sviluppato da Microsoft. Lo studente, inoltre, impara a creare siti web e apprende le basi per un uso sicuro di Internet.

Introduzione

Ti stai chiedendo come lavorano i programmatori? In questo corso scopriremo come si utilizza il linguaggio C# lavorando con l’ambiente Visual Studio, come un vero programmatore! “Ciclo, metodo, istruzione condizionale”: pensi che sia un’antica formula magica? Da bravi programmatori scopriremo il significato di questi termini. Potrai poi utilizzarli per creare tanti programmi.

Programma del corso

1Introduzione a C#
L’obiettivo della lezione è creare il primo programma con C# e familiarizzare con l’ambiente Visual Studio.
2Variabili e costanti
L’obiettivo della lezione è presentare il concetto di variabili, costanti ed illustrare quali tipi vengono utilizzati più spesso.
3Le operazioni matematiche
L’obiettivo della lezione è illustrare il funzionamento delle operazioni matematiche.
4Gli operatori logici e casting
L'obiettivo della lezione è introdurre il casting, l'uso di operatori matematici e logici. Il secondo obiettivo è presentare l'incremento e il decremento nel linguaggio C#.
5L’istruzione condizionale IF pt. 1
L’obiettivo della lezione è presentare l’istruzione condizionale IF.
6L’istruzione condizionale IF pt. 2
Continuazione della lezione precedente.
7Switch
L’obiettivo della lezione è presentare l’istruzione condizionale Switch.
8Buone pratiche di programmazione
L'obiettivo della lezione è imparare come testare e correggere il tuo codice e utilizzare in modo efficace l'IDE (Integrated Development Environment) per facilitare il lavoro.
9Introduzione ai cicli
L’obiettivo della lezione è familiarizzare con il concetto di ciclo.
10I cicli
L’obiettivo della lezione è approfondire la tematica dei cicli.
11Gli arrays
L’obiettivo della lezione è illustrare le modalità di applicazione e di utilizzo degli array.
12I metodi pt. I
L’obiettivo della lezione è presentare i metodi.
13I metodi pt. II
L’obiettivo della lezione è approfondire la tematica dei metodi.
14Ripasso del materiale
L’obiettivo della lezione è riassumere quanto appreso nel corso del semestre.
15BrickGame
L'obiettivo di questa lezione è utilizzare le conoscenze acquisite finora nella preparazione di un gioco nel sistema di console, ispirato ai giochi delle console Brick Game.
16BrickGame pt. II
L'obiettivo della lezione è migliorare il gioco della lezione precedente. Il miglioramento consisterà, tra le altre cose, nell'accelerare il gioco, introdurre bonus collezionabili e implementare il sistema di nitro.
17Indovinelli
L'obiettivo di questa lezione è rafforzare le conoscenze acquisite attraverso l'esempio pratico di un gioco a indovinelli.
18NPC Chat
L'obiettivo di questa lezione è consolidare le conoscenze attraverso un esempio pratico di conversazione chatbot relativa a un gioco specifico, simile alla NPL (Natural Language Processing). Creeremo il nostro database AI di domande e risposte.
19Elaborazione delle immagini
Creeremo un progetto per imparare l'elaborazione delle immagini.
20Introduzione all'OOP
L’obiettivo della lezione è presentare agli alunni le informazioni di base e il concetto di programmazione ad oggetti, nonché come lavorare su Solution Explorer.
21L'ereditarietà
L’obiettivo della lezione è approfondire la tematica di programmazione ad oggetti. Verranno presentati alcuni concetti come l’ereditarietà, la sovrascrittura dei metodi e gli elementi statici nella programmazione.
22L’ereditarietà pt. II
L’obiettivo della lezione è ripetere e consolidare il materiale riguardante le basi della programmazione ad oggetti e conoscere elementi come l’overloading dei metodi, il ciclo foreach e le liste.
23Ripasso OOP - RPG
L’obiettivo della lezione è ripetere e consolidare il materiale riguardante le basi della programmazione ad oggetti.
24Introduzione a Raylib
L'obiettivo di questa lezione è familiarizzare i partecipanti con l'installazione e la configurazione di progetti utilizzando Raylib in base all'implementazione di un progetto entusiasmante.
25Snake pt. 1
L'obiettivo della lezione è iniziare a lavorare sul progetto del popolare gioco Snake, in cui creeremo le meccaniche di gioco di base, implementeremo il movimento del serpente, la generazione di cibo e la gestione delle collisioni.
26Snake pt. 2
La lezione è una continuazione dell'argomento della lezione precedente.
27Flappy Bird pt. 1
L'obiettivo della lezione è iniziare a lavorare sul gioco Flappy Bird. Gli studenti impareranno come controllare i movimenti dei personaggi, generare ostacoli e contare i punti per creare un gioco completamente funzionale.
28Flappy Bird pt. 2
L'obiettivo della lezione è continuare a lavorare sul gioco Flappy Bird.
29Compiti indipendenti
Lo scopo della lezione è utilizzare le conoscenze delle lezioni precedenti nel processo di risoluzione di compiti indipendenti.
30Space Invaders pt. 1
Lo scopo della lezione è iniziare a lavorare sul gioco Space Invaders. In questa parte ci siamo concentrati sulla creazione di un'astronave che possa muoversi a destra e a sinistra e sparare.
31Space Invaders pt. 2
Lo scopo della lezione è continuare a lavorare sul gioco Space Invaders. In questa parte ci concentreremo sull'aggiunta di astronavi aliene, sul loro movimento e sulle collisioni con il giocatore e sui proiettili.
32Pong
L'obiettivo della lezione è imparare a lavorare con codice scritto da altri e a sistemare il progetto del gioco Pong.
33Il gioco della vita pt. I
In questa e nelle prossime lezioni prepareremo la nostra implementazione del Gioco della Vita. Questa è una simulazione in cui non esiste un giocatore tipico e l'unica influenza sul gioco avviene durante l'impostazione delle condizioni iniziali. La simulazione coinvolge cellule che si evolvono e formano strutture diverse.
34Il gioco della vita pt. II
In questa lezione miglioreremo il nostro progetto Game of Life. Miglioreremo le prestazioni del programma e aggiungeremo diversi modi per eseguire la simulazione. Ciò ci consentirà di testare le prestazioni di un organismo pre-preparato.
35Metodi di Archiviazione dei Dati
L'obiettivo di questa lezione è discutere vari metodi di archiviazione dei dati in C#. Saranno presentati i concetti di record, dizionari, code e insiemi.
36Database in C#
L'obiettivo di questa lezione è spiegare come connettersi a un database MySQL in C# e dimostrare come recuperare dati da esso.
37Database in C# pt. II
L'obiettivo di questa lezione è discutere di come prevenire le SQL injection, spiegare cos'è una transazione e illustrare lo scopo di Entity Framework.
38Introduzione a LINQ
L'obiettivo di questa lezione è introdurre LINQ, le sue applicazioni, quando utilizzarlo e i suoi vantaggi.
39Test
L'obiettivo di questa lezione è scoprire come scrivere test unitari e di integrazione in C# e illustrare i vantaggi derivanti da tale pratica.
40LeetCode e HackerRank: Compiti di Programmazione di Base
L'obiettivo di questa lezione è mostrare i siti Web LeetCode e HackerRank. Vari compiti verranno eseguiti su LeetCode, utilizzando i concetti discussi in precedenza.
41LeetCode e HackerRank pt.II
Continuazione della risoluzione dei compiti. Dimostrare e risolvere in modo collaborativo compiti che possono apparire nei colloqui di lavoro aziendali.
42Interfacce e Classi Astratte
Lo scopo di questa lezione è discutere le differenze tra interfacce e classi astratte in C# e mostrarti come applicarle correttamente in progetti complessi. Impareremo a implementare interfacce e creare classi astratte utilizzando buone pratiche di progettazione.
43Singleton
Lo scopo di questa lezione è comprendere cosa sono i design pattern e perché sono importanti nella programmazione. Impareremo i principi di funzionamento e l’applicazione del pattern Singleton.
44Lettura di dati da file
L’obiettivo della lezione è imparare i metodi e le librerie in C# per leggere dati da diversi formati di file (PDF, JSON). Durante il corso verranno trattati aspetti legati alla gestione delle eccezioni in caso di file corrotti e pratiche di validazione dei dati.
45Intelligenza artificiale in C#, panoramica di ML.NET pt. 1
In questa lezione impariamo i concetti base dell’intelligenza artificiale e del machine learning nel contesto di C# e della libreria ML.NET. Impareremo anche a caricare facilmente i dati, addestrare un modello e fare previsioni di base partendo da esempi reali (es. classificazione dei film preferiti).
46Intelligenza artificiale in C#, panoramica di ML.NET pt. 2
In questa lezione esploreremo le principali metriche di valutazione dei modelli di Machine Learning (accuratezza, precisione, recall), impareremo a suddividere i dati in set di training e test, arricchiremo il modello con nuove feature come anno di rilascio e valutazione dell’utente, e introdurremo l’interazione con l’utente tramite la console.
47Giant Cinema pt. 1
48Giant Cinema pt. 2 e introduzione a Unity
Familiarizzazione con il motore grafico utilizzato per la realizzazione dei giochi per computer realizzati durante le lezioni e creazione del primo gioco.