Figura professionale
Il corso Programming Essentials in C è un percorso introduttivo che forma un tecnico entry level in ambito sviluppo software in possesso dei fondamenti di programmazione in C. Linguaggio presente ovunque in device di uso quotidiano e nonostante la diffusione di linguaggi di programmazione di alto livello, C continua ad essere utilizzato in diversi settori: dalla costruzione della maggior parte dei sistemi operativi e compilatori in commercio alla produzione di software di uso quotidiano tra cui diversi browser, software e player multimedia, sistemi per la gestione di basi di dati, pacchetti di office automation, fino al computer gaming e a diversi gaming engines.
Vicino al linguaggio macchina, oltre ad essere un ottimo linguaggio di programmazione da apprendere, C è stato la colonna vertebrale per molti linguaggi come C++, Java e Python da cui ereditano le principali funzionalità.
In analogia con gli altri corsi Cisco e in linea con il Programma Academy, il corso Programming Essentials in C forma competenze richieste in diversi ambiti professionali come software development, network engineering, system administration ed IoT.
Il corso Programming Essentials in C prevede la comprensione dei fondamenti della programmazione, apprendendo la sintassi, la semantica e i fondamenti dei data type in C ed applicando in attività di laboratorio le competenze acquisite. Il percorso aiuta inoltre a sviluppare competenze logiche e di pensiero algoritmico.
Il percorso ha i seguenti obiettivi:
- Introduzione alla compilazione e allo sviluppo del software,
- Basic scalar data types e loro operatori,
- Flow control,
- Complex data types: array, strutture e puntatori,
- Gestione della memoria,
- Funzioni,
- File e flussi,
- Strutturare il codice: funzioni e moduli,
- Direttive al preprocessore e dichiarazioni complesse .
Al percorso è associata la certificazione CLA Programming Language Certified Associate del C++ International Institute.
Struttura e durata
Il corso Programming Essentials in C ha una durata di 70 ore ed è pensato per essere erogato in modalità non intensiva, in un periodo di media-lunga durata per garantire alti tassi di apprendimento, soprattutto se in contesto education.
Destinatari e requisiti
Destinatari del corso sono aspiranti programmatori, anche alla prima esperienza. E’ richiesta la conoscenza della lingua inglese e conoscenze di base di informatica.
Non è richiesta la conoscenza di un linguaggio di programmazione.
Contenuti del corso Programming Essentials in C
Introduzione alla programmazione
- languages: natural and artificial,
- machine languages,
- high-level programming languages,
- obtaining the machine code: compilation process,
- writing simple programs,
- variables,
- integer values in real life and in C,
- integer literals
Data types
- floating point values in real life and in C,
- float literals,
- arithmetic operators,
- priority and binding,
- post- and pre-incrementation and decrementation,
- operators of type op=,
- char type and ASCII code,
- char literals,
- equivalence of int and char data,
- comparison operators,
- conditional execution and if keyword,
- printf() and scanf() functions.
Flow Control
- conditional execution: the “else” branch,
- integer and float types,
- conversions,
- typecast and its operators,
- loops – while, do and for,
- controlling the loop execution – break and continue,
- logical and bitwise operators.
Arrays
- switch: different faces of ‘if’,
- arrays (vectors),
- sorting in real life and in a computer memory,
- initiators,
- pointers,
- an address, a reference, a dereference and the sizeof operator,
- simple pointer and pointer to nothing (NULL),
- & operator,
- pointers arithmetic
- pointers vs. arrays: different forms of the same phenomenon,
- using strings,
- basic functions dedicated to string manipulation.
Memory management and structures
- array indexing,
- the usage of pointers: perils and disadvantages,
- void type,
- arrays of arrays and multidimensional arrays,
- memory allocation and deallocation: malloc() and free() functions,
- arrays of pointers vs. multidimensional arrays,
- structures,
- declaring, using and initializing structures,
- pointers to structures and arrays of structures,
- basics of recursive data collections.
Functions
- functions,
- how to declare, define and invoke a function,
- variables’ scope, local variables and function parameters,
- pointers, arrays and structures as function parameters,
- function result and return statement,
- void as a parameter, pointer and result,
- parameterizing the main function,
- external function and the extern declarator,
- header files and their role.
Files and streams
- files vs. streams,
- header files needed for stream operations,
- FILE structure,
- opening and closing a stream, open modes, errno variable,
- reading and writing to/from a stream,
- predefined streams: stdin, stdout and stderr,
- stream manipulation: fgetc(), fputc(), fgets() and fputs() functions,
- raw input/output: fread() and fwrite() functions.
Preprocessor and complex declarations
- preprocessor,
- #include: how to make use of a header file,
- #define: simple and parameterized macros,
- #undef directive,
- predefined preprocessor symbols,
- macrooperators: # and ##,
- conditional compilation: #if and #ifdef directives,
- avoiding multiple compilations of the same header files,
- scopes of declarations, storage classes,
- user –defined types,
- pointers to functions,
- analyzing and creating complex declarations