Obiettivi dell'esame 030
Esame 030: Web Development Essentials
Versione degli Obiettivi d'Esame: 1
Codice esame: 030-100
Pesi degli Obiettivi: A ogni Obiettivo viene assegnato un valore di "Peso". I Pesi indicano l'importanza relativa di ciascun Obiettivo d'Esame. Gli Obiettivi con peso più elevato sono trattati nell'Esame con un maggior numero di domande.

031 Sviluppo Software e Tecnologie Web
031.1 Fondamenti di Sviluppo Software (peso: 1)
Peso |
1 |
Descrizione |
Il candidato dovrebbe avere familiarità con i concetti più essenziali dello sviluppo del software e conoscere i principali linguaggi di programmazione. |
Aree di Conoscenza Chiave:
- Comprendere cos'è il codice sorgente
- Comprendere i principi dei compilatori e degli interpreti
- Comprendere il concetto di librerie
- Comprendere i concetti di programmazione funzionale, procedurale e orientata agli oggetti
- Conoscenza delle caratteristiche comuni degli editor di codice sorgente e degli ambienti di sviluppo integrati (IDE)
- Conoscenza dei sistemi di controllo della versione
- Conoscenza dei test del software
- Conoscenza dei principali linguaggi di programmazione
031.2 Architettura di un'Applicazione Web (peso: 2)
Peso |
2 |
Descrizione |
Il candidato dovrebbe comprendere gli standard comuni delle tecnologie e delle architetture dello sviluppo web. |
Aree di Conoscenza Chiave:
- Comprendere il principio dell'informatica client e server
- Comprendere il ruolo dei browser web ed conoscere i browser web comunemente usati
- Comprendere il ruolo dei server web e dei server di applicazioni
- Comprendere le tecnologie e gli standard di sviluppo web comuni
- Comprendere i principi delle API
- Comprendere i fondamenti dei database relazionali e non relazionali (NoSQL)
- Conoscenza dei sistemi di gestione di database Open Source comunemente usati
- Conoscenza di REST e GraphQL
- Conoscenza delle applicazioni a pagina singola
- Conoscenza del packaging delle applicazioni web
- Conoscenza di WebAssembly
- Conoscenza dei sistemi di gestione dei contenuti
File, termini e utilità:
- Chrome, Edge, Firefox, Safari, Internet Explorer
- HTML, CSS, JavaScript
- SQLite, MySQL, MariaDB, PostgreSQL
- MongoDB, CouchDB, Redis
031.3 Nozioni Base sull'HTTP (peso: 3)
Peso |
3 |
Descrizione |
Il candidato dovrebbe avere familiarità con i concetti base dell'HTTP. Questo include la comprensione delle intestazioni HTTP, dei tipi di contenuto, del caching e dei codici di stato. Inoltre, il candidato dovrebbe comprendere i principi dei cookie e il loro ruolo nella gestione delle sessioni ed essere consapevole delle caratteristiche HTTP avanzate. |
Aree di Conoscenza Chiave:
- Comprendere i metodi HTTP GET e POST, i codici di stato, le intestazioni e i tipi di contenuto.
- Comprendere la differenza tra contenuto statico e dinamico
- Comprendere le URL HTTP
- Comprendere come le URL HTTP sono mappate nei percorsi del file system
- Caricare file nella root dei documenti di un server web
- Comprendere il caching
- Comprendere i cookie
- Conoscenza delle sessioni e il dirottamento delle sessioni
- Conoscenza dei server HTTP comunemente usati
- Conoscenza di HTTPS e TLS
- Conoscenza dei web socket
- Conoscenza degli host virtuali
- Conoscenza dei server HTTP comuni
- Conoscenza dei requisiti e delle limitazioni della larghezza di banda e della latenza della rete
File, termini e utilità:
- GET, POST
- 200, 301, 302, 401, 403, 404, 500
- Apache HTTP Server ("httpd"), NGINX
032 Marcatura di un Documento HTML
032.1 Anatomia di un Documento HTML (peso: 2)
Peso |
2 |
Descrizione |
Il candidato dovrebbe capire l'anatomia e la sintassi di un documento HTML. Questo include la creazione di documenti HTML di base. |
Aree di Conoscenza Chiave:
- Creare un semplice documento HTML
- Comprendere il ruolo dell'HTML
- Comprendere la struttura dell'HTML
- Comprendere la sintassi HTML (tag, attributi, commenti)
- Comprendere l'intestazione dell'HTML
- Comprendere i meta tag
- Comprendere la codifica dei caratteri
File, termini e utilità:
- <!DOCTYPE html>
- <html>
- <head>
- <body>
- <meta>, incluso charset (UTF-8), nome e contenuto degli attributi
032.2 Semantica HTML e Gerarchia del Documento (peso: 2)
Peso |
2 |
Descrizione |
Il candidato dovrebbe essere in grado di creare documenti HTML con una struttura semantica. |
Aree di Conoscenza Chiave:
- Creare marature per i contenuti in un documento HTML
- Comprendere la struttura gerarchica del testo HTML
- Differenziare tra elementi HTML a blocchi e in linea
- Comprendere importanti elementi strutturali HTML semantici
File, termini e utilità:
- <h1>, <h2>, <h3>, <h4>, <h5>, <h6>
- <p>
- <ul>, <ol>, <li>
- <dl>, <dt>, <dd>
- <pre>
- <blockquote>
- <strong>, <em>, <code>
- <b>, <i>, <u>
- <span>
- <div>
- <main>, <header>, <nav>, <section>, <footer>
032.3 Riferimenti HTML e Risorse Integrate (peso: 2)
Peso |
2 |
Descrizione |
Il candidato dovrebbe essere in grado di collegare un documento HTML ad altri documenti e incorporare contenuti esterni, come immagini, video e audio in un documento HTML. |
Aree di Conoscenza Chiave:
- Creare link a risorse esterne e collegamenti di pagina
- Aggiungere immagini ai documenti HTML
- Comprendere le proprietà chiave dei comuni formati di file multimediali, inclusi PNG, JPG e SVG.
- Conoscenza degli iframe
File, termini e utilità:
- attributo id
- <a>, inclusi gli attributi href e target (_blank, _self, _parent, _top)
- <img>, inclusi gli attributi src e alt
032.4 Moduli HTML (peso: 2)
Peso |
2 |
Descrizione |
Il candidato dovrebbe essere in grado di creare semplici moduli HTML contenenti elementi di input di vario tipo. |
Aree di Conoscenza Chiave:
- Creare semplici moduli HTML
- Comprendere i metodi dei moduli HTML
- Comprendere gli elementi e i tipi di input HTML
File, termini e utilità:
- <form>, inclusi metodo (get, post), azione e attributi enctype
- <input>, inclusi i tipi di attributo (text, email, password, number, date, file, range, radio, checkbox, hidden)
- <button>, inclusi i tipi di attributo (submit, reset, hidden, button)
- <textarea>
- comuni attributi degli elementi dei moduli (name, value, id)
- <label>, incluso l'attributo for
033 Stile dei Contenuti con i CSS
033.1 Concetti Base dei CSS (peso: 1)
Peso |
1 |
Descrizione |
Il candidato dovrebbe capire i vari modi per dare stile ad un documento HTML usando i CSS. Questo include la struttura e la sintassi delle regole CSS. |
Aree di Conoscenza Chiave:
- Incorporare i CSS in un documento HTML
- Comprendere la sintassi CSS
- Aggiungere commenti ai CSS
- Conoscenza delle caratteristiche e dei requisiti di accessibilità
File, termini e utilità:
- Attributi di stile e tipo HTML (text/css)
- <style>
- <link>, inclusi gli attributi rel (stylesheet), type (text/css) e src
- ;
- /*,*/
033.2 Selettori CSS e Applicazione di Stili (peso: 3)
Peso |
3 |
Descrizione |
Il candidato dovrebbe essere in grado di usare i selettori nei CSS e capire come le regole CSS sono applicate agli elementi all'interno di un documento HTML. |
Aree di Conoscenza Chiave:
- Utilizzare i selettori per applicare le regole CSS agli elementi
- Comprendere le pseudo-classi CSS
- Comprendere l'ordine delle regole e la precedenza nei CSS
- Comprendere l'ereditarietà nei CSS
File, termini e utilità:
- element; .class; #id
- a, b; a.class; a b;
- :hover, :focus
- !important
033.3 Stili nei CSS (peso: 2)
Peso |
2 |
Descrizione |
Il candidato dovrebbe usare i CSS per aggiungere semplici stili agli elementi di un documento HTML. |
Aree di Conoscenza Chiave:
- Comprendere le proprietà fondamentali dei CSS
- Comprendere le unità comunemente usate nei CSS
File, termini e utilità:
- px, %, em, rem, vw, vh
- color, background, background-*, font, font-*, text-*, list-style, line-height
033.4 Modellazione e Disposizione dei Contenitori nei CSS (peso: 2)
Peso |
2 |
Descrizione |
Il candidato dovrebbe capire la modellazione dei contenitori nei CSS. Questo include la definizione della posizione degli elementi su un sito web. Inoltre, il candidato dovrebbe capire il flusso del documento. |
Aree di Conoscenza Chiave:
- Definire la dimensione, la posizione e l'allineamento degli elementi in un layout CSS
- Specificare come il testo scorre intorno ad altri elementi
- Comprendere il flusso del documento
- Conoscenza della griglia CSS
- Conoscenza del responsive web design
- Conoscenza delle media query CSS
File, termini e utilità:
- width, height, padding, padding-*, margin, margin-*, border, border-*
- top, left, right, bottom
- display: block | inline | flex | inline-flex | none
- position: static | relative | absolute | fixed | sticky
- float: left | right | none
- clear: left | right | both | none
034 JavaScript Programming
034.1 Esecuzione e Sintassi in JavaScript (peso: 1)
Peso |
1 |
Descrizione |
Il candidato dovrebbe essere in grado di eseguire file JavaScript e codice inline da un documento HTML e comprendere la sintassi JavaScript di base. |
Aree di Conoscenza Chiave:
- Eseguire JavaScript all'interno di un documento HTML
- Comprendere la sintassi di JavaScript
- Aggiungere commenti al codice JavaScript
- Accedere alla console JavaScript
- Scrivere nella console JavaScript
File, termini e utilità:
- <script>, inclusi gli attributi type (text/javascript) e src
- ;
- //, /* */
- console.log
034.2 Strutture di Dati in JavaScript (peso: 3)
Peso |
3 |
Descrizione |
Il candidato dovrebbe essere in grado di usare le variabili nel codice JavaScript. Questo include la comprensione dei valori e dei tipi di dati. Inoltre, il candidato dovrebbe capire gli operatori di assegnazione e la conversione dei vari tipi ed essere consapevole dello scopo delle variabili. |
Aree di Conoscenza Chiave:
- Definire e usare variabili e costanti
- Comprendere i tipi di dati
- Comprendere la conversione/coerenza dei tipi
- Comprendere gli array e gli oggetti
- Conoscenza dell'ambito delle variabili
File, termini e utilità:
- =, +, -, *, /, %, --, ++, +=, -=, *=, /=
- var, let, const
- boolean, number, string, symbol
- array, object
- undefined, null, NaN
034.3 Strutture di Controllo e Funzioni in JavaScript (peso: 4)
Peso |
4 |
Descrizione |
Il candidato dovrebbe essere in grado di usare strutture di controllo nel codice JavaScript. Questo include l'uso degli operatori di confronto. Inoltre, il candidato dovrebbe essere in grado di scrivere semplici funzioni e capire i parametri delle funzioni e i valori di ritorno. |
Aree di Conoscenza Chiave:
- Comprendere i valori veri e falsi
- Comprendere gli operatori di confronto
- Comprendere la differenza tra confronto libero e rigido
- Usare i condizionali
- Usare i cicli
- Definire funzioni personalizzate
File, termini e utilità:
- if, else if, else
- switch, case, break
- for, while, break, continue
- function, return
- ==, !=, <, <=, >, >=
- ===, !==
034.4 Manipolazione con JavaScript del Contenuto e dello Stile di un Sito Web (peso: 2)
Peso |
2 |
Descrizione |
Il candidato dovrebbe comprendere il DOM HTML. Questo include la manipolazione degli elementi HTML e delle proprietà CSS attraverso il DOM usando JavaScript, così come l'uso degli eventi DOM in scenari semplici. |
Aree di Conoscenza Chiave:
- Comprendere il concetto e la struttura DOM
- Cambiare il contenuto e le proprietà degli elementi HTML attraverso DOM
- Cambiare lo stile CSS degli elementi HTML attraverso DOM
- Attivare funzioni JavaScript dagli elementi HTML
File, termini e utilità:
- document.getElementById(), document.getElementsByClassName(), document.getElementsByTagName(),document.querySelector(), document.querySelectorAll()
- innerHTML, setAttribute(), removeAttribute() properties and methods of DOM elements
- Proprietà e metodi degli elementi DOM classList, classList.add(), classList.remove(), classList.toggle()
- Attributi di elementi HTML onClick, onMouseOver, onMouseOut
035 NodeJS Server Programming
035.1 Fondamenti di Node.js (peso: 1)
Peso |
1 |
Descrizione |
Il candidato dovrebbe comprendere le basi di NodeJS. Questo include l'esecuzione di un server di sviluppo locale e la comprensione del concetto di moduli NPM. |
Aree di Conoscenza Chiave:
- Capire i concetti di Node.js
- Eseguire un'applicazione NodeJS
- Installare i pacchetti NPM
File, termini e utilità:
- node [file.js]
- npm init
- npm install [module_name]
- package.json
- node_modules
035.2 Fondamenti di Node.js Express (peso: 4)
Peso |
4 |
Descrizione |
Il candidato dovrebbe essere in grado di creare un semplice sito web dinamico con il framework web Express. Questo include la definizione di semplici percorsi Express così come erogare file dinamici attraverso il motore di template EJS. |
Aree di Conoscenza Chiave:
- Definire percorsi verso file statici e modelli EJS
- Erogare file statici attraverso Express
- Erogare i modelli EJS attraverso Express
- Creare semplici modelli EJS non annidati
- Utilizzare l'oggetto request per accedere ai parametri HTTP GET e POST ed elaborare i dati inviati attraverso i moduli HTML
- Conoscenza della convalida dell'input dell'utente
- Conoscenza del cross-site scripting (XSS)
- Conoscenza del cross-site request forgery (CSRF)
File, termini e utilità:
- express e body-parser node module
- Express app object
- app.get(), app.post()
- res.query, res.body
- ejs node module
- res.render()
- <% … %>, <%= … %>, <%# … %>, <%- … %>
- views/
035.3 Fondamenti di SQL (peso: 3)
Peso |
3 |
Descrizione |
Il candidato dovrebbe essere in grado di creare tabelle individuali in un database SQLite e aggiungere, modificare e cancellare dati usando SQL. Inoltre, il candidato dovrebbe essere in grado di recuperare i dati dalle singole tabelle ed eseguire query SQL da NodeJS. Questo non include la referenziazione o la combinazione di dati tra più tabelle. |
Aree di Conoscenza Chiave:
- Stabilire una connessione al database da NodeJS
- Recuperare dati dal database in NodeJS
- Eseguire query SQL da NodeJS
- Creare semplici query SQL escludendo le join
- Comprendere le chiavi primarie
- Comprendere le variabili usate nelle query SQL
- Comprensione delle SQL injection
File, termini e utilità:
- sqlite3 NPM module
- Database.run(), Database.close(), Database.all(), Database.get(), Database.each()
- CREATE TABLE
- INSERT, SELECT, DELETE, UPDATE