Corso Programming Essentials in C

Figura professionale

Il corso Programming Essentials in C è un percorso introduttivo che forma un tecnico entry level in ambito sviluppo software inCorso Programming Essentials in C 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