Struttura del corso
Introduzione
- Panoramica delle Funzionalità del C e delle Sue Applicazioni
Preparazione dell'Ambiente di Sviluppo
- Scelta di un IDE
- Configurazione del compilatore
Scrivere un Programma Esempio
- Definizione del problema
- Codifica in base ai requisiti
Definire l'Ambito delle Variabili e delle Funzioni
- Comprensione dell'ambito, della visibilità e della durata di vita
- Lavorare con le classi di archiviazione: auto, extern, register, static
Gestire i Dati in un Programma C
- Oltre ai tipi di dati primitivi
- Lavorare con tipi di dati avanzati: strutture, liste concatenate, ecc.
- Archiviare diversi tipi di dati nella stessa posizione di memoria
Modificare le Proprietà di una Variabile
- Oltre ai modificatori di tipo
- Lavorare con i qualificatori di tipo: constant, volatile, ecc.
Manipolare Bit in C
- Lavorare con dati più piccoli di un byte
- Lavorare con operatori di manipolazione bit a bit
Controllare il Flusso del Programma
- Oltre alla sequenziazione
- Utilizzare l'istruzione goto
Lettura e Scrittura di Dati
- Ripasso delle funzioni di Input/Output
- Migliorare la leggibilità dell'output
Sviluppare Codice Cross-Platform
- Comprendere le direttive del compilatore
- Compilare il codice in modo condizionale
Potenziale delle Prestazioni del Programma
- Macro vs funzioni
- Definire macro per eseguire frammenti di programma
Allocazione Dinamica della Memoria
- Vantaggi dell'uso dei puntatori: velocità di esecuzione
- Puntatori a funzioni
- Accesso alla memoria e manipolazione dell'indirizzo
Debugging di un Programma C
- Tecniche avanzate per la verifica, la rilevazione e la correzione degli errori
- Lavorare con gdb (Gnu Debugger)
Creare una Libreria Statica
- Come viene linkata una libreria statica nel file eseguibile
- Creazione di una libreria statica
Creare una Libreria Condivisa
- Librerie statiche vs librerie condivise (dinamiche)
- Come viene linkata e caricata in memoria una libreria condivisa durante l'esecuzione
- Creazione di una libreria condivisa
Astrazione dei Dati nel Programma
- Panoramica dell'interfaccia, della specifica e dell'implementazione
- Creazione di un tipo di dato astratto
- Test di regressione di un tipo di dato astratto
Ricerca e Ordinamento dei Dati
- Ricerca in array utilizzando ricerca lineare, binaria, ecc.
- Ordinamento degli array usando ordinamento per selezione, inserimento, a bolle
Comunicazione Interprocessuale e Segnali
- Comprensione dei processi, delle socket e dei segnali
- Implementare IPC utilizzando file condivisi, memoria condivisa, pipe, code di messaggi, socket, semafori, ecc.
Eseguire il Programma C in Parallelo
- Eseguire parti diverse del programma concorrentemente attraverso multithreading
- Scrivere un thread
Programmazione di Rete Avanzata
- Ripasso dei protocolli TCP, UDP, IP e altri principali protocolli
- Servire più porte, sopravvivere a interruzioni di rete brusche, ecc.
- Scrivere potenti API socket
Verso un Codice di Alta Qualità
- Ricodifica del codice da parte dei peer e programmazione parallela
- L'importanza della codifica iterativa (rifattorizzazione)
Sommario e Conclusioni
Requisiti
- Esperienza in programmazione C
Pubblico di Riferimento
- Programmatori
- Sviluppatori
Recensioni (2)
Gli esercizi e la metodologia
Javier MIllan Rios - si
Corso - Advanced C Programming
Traduzione automatica
An interesting and broad scope