Salve e benvenuti al corso di programmazione C per principianti.
Mi chiamo Jason Fitton e sarò il vostro istruttore.
Voglio ringraziarvi per esservi iscritti a questo corso.
Sarà molto divertente e farò del mio meglio per motivarvi e per aiutarvi a imparare tutto sul linguaggio
di programmazione C.
Cominciamo.
Per prima cosa, voglio parlarvi un po' di me.
Ho conseguito un master in informatica presso la Binghamton University e un
bachelor in informatica presso la SUNY Oswego.
Ho conseguito il master nel 2001.
Sono uno sviluppatore di software da oltre 16 anni.
Sono un istruttore online da oltre 11 anni.
Ho tenuto oltre 20 corsi diversi, dalla programmazione orientata agli oggetti alla teoria
dei compilatori.
Ho una vasta esperienza nella programmazione e nell'informatica in generale.
Lavoro con il linguaggio di programmazione C da oltre 16 anni.
In pratica, non appena ho ottenuto il mio primo lavoro, ho iniziato a scrivere codice C.
Ho anche creato corsi di C per principianti e avanzati in diverse università, quindi ho una buona dose di esperienza
con i programmi di studio e la presentazione dei concetti di C agli studenti.
Sono stato sviluppatore di software presso Xerox Corporation per circa 10-12 anni.
Mentre lavoravo qui ho scritto principalmente codice C e anche un po' di codice C plus plus.
Eseguiamo il nostro intero repository di codice sorgente sulla piattaforma Linux e scriviamo codice in tempo reale.
Mi concentro principalmente sui linguaggi orientati agli oggetti e sulla programmazione mobile.
Questo è ciò che amo fare.
Quindi cose come C, Plus e Java, ma il linguaggio C è quello in cui sono più esperto.
Mi concentro anche sulla scrittura di codice di alta qualità.
Questo è un concetto vitale e importante che sottolineerò nel corso del corso.
Voglio che vi concentriate sulla scrittura di buon codice, non solo su quello che funziona, ma anche su
quello che aiuterà la manutenzione del programma a essere molto più semplice.
Tra gli argomenti che tratteremo in classe ci sono i seguenti.
E a proposito, quando tratteremo questi argomenti, forniremo.
Fornirò il materiale per le lezioni.
Fornirò esercizi pratici.
Fornirò delle valutazioni.
Vi illustrerò il codice e i concetti di programmazione mentre lo modifico in un ambiente di sviluppo integrato.
Quindi sarà un'esperienza molto concreta.
Per prima cosa parleremo di C in generale, dandovi una piccola panoramica su di esso.
Vi spiegherò come il linguaggio di programmazione C sia molto efficiente.
È anche portatile.
È possibile scrivere su più piattaforme.
Ha molta potenza e flessibilità ed è orientato ai programmatori.
Vi fornisco anche una breve storia di C, giusto per dare un po' di contesto.
A seguire descriveremo alcune delle caratteristiche comuni del linguaggio C.
Il C è un linguaggio imperativo.
È il tipo di linguaggio più moderno.
È organizzato per funzioni.
Ha un design a moduli, è un linguaggio di programmazione strutturato.
E si può anche avere una pianificazione dall'alto verso il basso quando si scrive il codice.
I vantaggi dell'uso del C si concentreranno sul fatto che il C è ottimo per programmi piccoli e veloci.
È molto affidabile, facile da imparare e da capire.
Se prendete un programma C da un collega coetaneo o da un altro sviluppatore, sarete in grado di seguirlo abbastanza
rapidamente.
Utilizzeremo un moderno ambiente di sviluppo integrato multipiattaforma.
Modificheremo il codice.
Utilizzeremo l'IDE anche per eseguire il debug del nostro codice, il che è molto importante.
E quindi questo sarà presentato come uno dei concetti.
Vi guiderò attraverso l'ambiente e vi mostrerò come utilizzare lo strumento.
Inizieremo con i concetti di base.
Vi descriverò l'aspetto di un programma C e vi darò un esempio.
Vi mostrerò la struttura di un programma C di base.
Parleremo di come si possono inserire commenti nel codice e anche dell'output di base utilizzando la funzione printf.
Verrà presentato un esempio di Hello World e verrà anche scritto il vostro primo programma in C.
A seguire parleremo di makefile.
Non ci addentreremo in molti dettagli sui makefile, ma voglio accennarvi per aiutarvi a capire come
potete usare questo strumento per costruire e compilare il vostro codice.
Parleremo del concetto di programmazione più elementare che esista, ovvero la creazione e l'uso delle
variabili.
Le variabili sono l'idea di associare a un nome la memoria, i dati e i ricordi del programma.
E si creeranno molte variabili e molte dichiarazioni diverse nel codice.
Parleremo dei tipi di dati, che comprendono i tipi float double e char.
Più avanti parleremo di tipi di dati più avanzati, come gli enum, e di come fornire
i propri tipi di dati utilizzando la parola chiave typedef.
Fornirò informazioni sugli operatori di base.
Si tratta di operazioni come l'addizione o la sottrazione, gli operatori matematici.
Include anche operatori logici come e o, o.
Si tratterebbe di una sorta di dichiarazioni decisionali.
Parleremo di come si possono assegnare dati a una variabile utilizzando un operatore di assegnazione.
Prendere decisioni nel codice.
Concetto di programmazione molto importante.
Ne parleremo.
Si tratta di dichiarazioni condizionali.
Si tratta di parole chiave come if e switch.
Forniremo degli esempi e analizzeremo i vari costrutti.
Seguite il discorso con la ripetizione del codice.
I principali costrutti di looping in C sono for while e do while.
Sono tutti uguali.
La loro sintassi è leggermente diversa.
Parleremo di come sia possibile memorizzare i dati e categorizzarli in due modi diversi utilizzando gli array.
Discuteremo quindi come definire gli array di inizializzazione e poi gli array multidimensionali,
che sono una sorta di foglio di calcolo a matrice.
Funzioni.
Le funzioni sono uno dei concetti più importanti legati al linguaggio di programmazione C.
Tutto non dovrebbe essere utilizzato e organizzato intorno a una funzione.
Si tratta di una programmazione di tipo modulare.
Imparerete come dichiarare una funzione, come usarla, come passarle i dati e come
restituirli.
Parleremo anche di concetti più avanzati come la chiamata per valore e la chiamata per riferimento.
Il debug è un concetto vitale ed essenziale per tutti i programmatori.
È l'idea di trovare e correggere i propri errori.
Parleremo dello stack delle chiamate, che può mostrare se il programma si blocca dove si è bloccato.
Concetto molto importante.
Vi fornirò gli errori più comuni che molti programmatori C commettono, in modo che, se li vedete, possiate
capire come risolverli.
E poi il compilatore, il compilatore controllerà il codice per assicurarsi che sia sintatticamente corretto.
E se non lo è, vengono visualizzati messaggi di errore o avvisi.
È necessario capire cosa ci dice il compilatore.
Parleremo quindi dei messaggi del compilatore e di come comprenderli.
Parleremo delle strutture.
Imparerete tutto sulle strutture, che sono simili agli array e che memorizzano i dati.
È una struttura di dati.
Parleremo di come si possono inizializzare le strutture, del concetto di strutture annidate.
Per chi ha familiarità con gli oggetti, può essere un po' simile, ma non è così
robusto come le stringhe di caratteri, che sono essenzialmente una stringa in caratteri alfanumerici C all'interno di doppi
apici.
Questo è uno dei tipi di dati di base, ma è pensato come un array e quindi è un concetto un po'
diverso.
Lo esamineremo.
Parleremo di alcune operazioni che si possono eseguire sulle stringhe e così via.
Suggerimenti.
I puntatori saranno probabilmente il concetto più importante di questo corso.
Quindi ci dedicheremo molto tempo.
I puntatori sono questo concetto e vedono la necessità di gestire la propria memoria.
Potrebbe essere un concetto non familiare per chi programma in altri linguaggi, perché di solito questo viene
fatto per voi.
In particolare, se si programma in Java o in C sharp, non ci si deve preoccupare dei puntatori.
In C, ci si deve preoccupare di gestire la propria memoria.
Quindi i puntatori sono una cosa importante.
Vi spiegherò come si possono definire e utilizzare i puntatori, come si possono usare con
le funzioni e gli array, come si possono richiamare diverse chiamate della libreria standard per creare memoria e anche come si possono dereferenziare
i puntatori.
È un concetto importante, come ho detto, e ci dedicheremo molto tempo a questo.
Vi fornirò molti esempi, molti scenari del mondo reale, in modo che i puntatori vi entrino davvero
nel cervello, perché non potete usare il linguaggio di programmazione C senza comprendere appieno i puntatori.
Dedicheremo molto tempo a questo aspetto.
Il preprocessore, che impareremo a conoscere, è un passaggio che avviene prima del compilatore.
In particolare, si tratta di direttive da comprendere, come define e include.
Lo esamineremo.
Passeremo in rassegna l'input e l'output, ovvero come leggere e scrivere dati nella console.
Abbiamo parlato di printf.
Approfondiremo l'argomento utilizzando il formato getchar e scanf, gli specificatori e cose
del genere.
Parleremo anche di come leggere e scrivere dati su un file.
Questo è un altro concetto importante quando si scrive codice: è un modo per memorizzare i dati.
Esistono diverse operazioni sui file in C e ne discuteremo alcune.
Il C è un linguaggio di livello molto basso e può fare molte cose in modo efficiente e veloce e la scrittura e la
lettura dei file sono a quel livello basso.
È possibile interagire con il sistema operativo in modo molto, molto piacevole.
Esiste una libreria C standard, fornita con il linguaggio di programmazione C, che contiene molte funzioni
diverse che possono essere utilizzate.
Ci sono funzioni di stringa, funzioni di manipolazione delle stringhe, funzioni matematiche, funzioni di utilità.
Passeremo in rassegna tutte queste funzioni di base che possono essere utilizzate per aiutare a scrivere codice in
modo più efficiente, proprio come le diverse librerie e gli altri linguaggi.
Il C vi fornirà di nuovo alcune nozioni di base, per scrivere e leggere da file manipolando stringhe.
Se si desidera ottenere coseno e tangente per le funzioni matematiche, il linguaggio lo fornisce.
Lo scopriremo.
Questi sono gli argomenti principali che tratteremo, quelli iniziali.
Non ci addentreremo ancora in argomenti avanzati, ma tratteremo le basi fondamentali.
Alla fine di questo corso, dovreste essere in grado di scrivere programmi C per principianti, comprendere gli aspetti
fondamentali del linguaggio C, sapere come fornire input e output.
Esaminare il concetto di puntatori, ecc.
Inoltre, nel corso di questo corso, vi concentrerete sulla scrittura di codice di alta qualità e di codice efficiente.
Questo è molto, molto importante.
Anche in questo caso, influisce sulle fasi di manutenzione del ciclo di vita del software.
Quindi, se volete trovare e correggere gli errori, è molto più facile farlo se avete un codice di alta qualità.
Perciò, man mano che si procede con gli esempi e con l'apprendimento di questi concetti, impareremo a farlo nel
modo giusto.
Impareremo a modulare le cose in modo che siano raggruppate in funzioni.
Ci assicureremo che nei nostri diversi file ci siano basse dipendenze, basso accoppiamento, in modo che
non si influenzino a vicenda.
Quando si hanno molte dipendenze nel codice, è possibile.
È molto più facile trovare e risolvere i bug.
E se si vuole aggiungere nuove funzioni o nuovo codice a un programma, è molto più facile farlo se è modularizzato,
se è organizzato per funzioni.
Quindi ci concentreremo sul concetto di scrittura di codice di alta qualità.
Non ci limiteremo a far funzionare le cose, ma le faremo nel modo giusto.
Alla fine del corso, sarete in grado di trovare e correggere i vostri errori.
Una parte essenziale per diventare un buon programmatore è la risoluzione dei problemi.
Ci concentreremo sulle tecniche di risoluzione dei problemi, su come eseguire il debug del codice e su come diventare un efficiente
risolutore di problemi.
Questo include la comprensione dei messaggi del compilatore.
Capisce come eseguire un debugger, come usare lo stack delle chiamate e tutte queste cose piacevoli.
Il problem solving verrà insegnato in tutte le lezioni.
Comprenderete gli aspetti fondamentali degli argomenti del linguaggio di programmazione C di cui ho parlato
in precedenza.
Si tratta di roba di base in C.
Infine, vi divertirete.
Farò del mio meglio per motivarvi.
Avrò esempi divertenti ed emozionanti.
Non voglio che vi addormentiate durante le lezioni o gli esercizi, quindi li renderò vivaci
e farò del mio meglio per motivarvi e aiutarvi durante il corso.
Quindi non vedo l'ora.
Sono davvero entusiasta e spero che tutti siano pronti a imparare molte cose sul linguaggio di programmazione C.
Grazie.