EnlitHamster / exercise-1

First exercise of the CS project tutorial

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduzioni agli esercizi

Questo primo passaggio definisce la ragione e lo scopo di questi esercizi.

Definiremo nelle seguenti sezioni il pubblico e lo scopo di questi esercizi. Renderemo chiaro come questi sono stati preparati e come si consiglia di approcciarsi alla loro soluzione.

Perché

Uno dei problemi principali che programmatori con poca esperienza percepiscono è la propria difficoltà ad approcciarsi alla risoluzione dei problemi forniti.

Questo poi si presenta come lentezza nel comprendere il problema che si cerca di risolvere, difficoltà nel progettare il codice, lentezza nello sviluppo del codice, necessità di modificare e rivedere spesso il proprio codice.

Chiariamo innanzitutto che tali problemi persistono. La realtà è che persino gli sviluppatori professionisti riportano simili problemi, e non vi è da stupirsi.

Il mondo della programmazione è spesso affrontato dagli utenti come creativo, una forma di scrittura o di creazione. Ciò è vero, ma altresì è anche vero che la programmazione è anche un mondo composto da una catena di problemi e soluzioni. Tale catena è propriamente il codice, e come tale va concepito.

L'esperienza di un programmatore si misura non tanto nella sua capacità di prevedere problemi, o avere soluzioni pronte, quanto nella sua capacità di affrontare proprio quei problemi che non può prevedere. Conoscere i pattern è uno dei tanti in modi per allenarsi e prepararsi.

A tal fine, gli esercizi proposti mireranno a fornire all'utente una chiara descrizione del problema (specifica), delineando come esso si presenta, e come si propone di risolverlo.

La ragione di questa scelta cade sul fatto che le soluzioni proposte, e che l'utente è chiamato ad implementare, insegnano all'utente a quali sono le qualità importanti di un problema che vanno individuate prima di approcciarsi ad esso.

Spesso negli esercizi, questa parte viene saltata lasciando all'utente il compito di creare questo design. Purtroppo questa è una capacità che va acquisita e allenata, e non è innata. Dunque, nelle specifiche si andranno a presentare esempi di come un processo di Design del software porta a decostruire il problema che si risolve nell'esercizio.

All'interno delle specifiche, qualora si ritenga opportuno un commento dell'autore, questo verrà inserito coem quote, simile alla successiva:

Questo è un commento dell'autore

Obiettivi

Date le precedenti premesse, gli obiettivi sono quanto segue:

  1. Esporre l'utente ad esempi di risoluzione di problemi che presenta anche un processo pratico, applicabile non solo al Design del software, ma anche durante l'implementazione, e che l'utente, padronneggiandolo, potrà sfruttare per migliorare le proprie capacità da programmatore;

  2. guidare l'utente attraverso il processo di implementazione, fornendo specifiche adeguate a risolvere l'esercizio e presentare dei pattern utili alla risoluzione di problemi che si potranno affrontare in altre situazioni;

  3. e permettere all'utente di imparare, mediante un'ambiente guidato, a dare il giusto peso alle informazioni disponibili, e come utilizzarle per risolvere i problemi in questione.

Anche queste sezioni hanno un obiettivo ben chiaro: presentare all'utente un piano per il proprio apprendimento, e che permette ad esso di concentrarsi su ciò che è necessario permettergli di acquisire la conoscenza presentata.

Contenuti

Per ogni esercizio, l'utente verrà equipaggiato con i documenti e setup necessari per lavorare al progetto.

L'insieme di esercizi è presentato dal punto di vista di una piccola aziente. L'utente riveste il ruolo di sviluppatore, mentre il capo ingegnere gli fornisce le specifiche del progetto all'utente.

In quanto per sviluppare tali specifiche il capo ingegnere prepara dei prototipi esplorativi, viene già fornito all'utente un template del progetto con la conoscenza acquisita dal capo ingegnere con questi prototipi, anche mediante la documentazione.

Template

Ogni esercizio, oltre alle specifiche viene resentato con un template, che ha l'obiettivo di togliere all'utente le necessità di setup. Tutto ciò che vi è presente, è però documentato. Nelle specifiche tale documentazione verrà utilizzata, ma vi si farà riferimento, mentre i dettagli vengono lasciati all'utente.

Qualora non tutto venisse spiegato e simile documentazione, l'utente verrà informato mediante un commento dell'autore come segue:

I dettagli relativi alla licenza sono disponibili in LICENSE.md

Nei template sarà presente un documento readme nel quale viene velocemente presentato lo scopo dell'esercizio, e al fondo del quale viene rimandata la specifica relativa all'esercizio.

Specifiche

Le specifiche saranno strutturate come segue:

  • BACKGROUND: verrà presentato all'utente lo scenario per cui, nell'azienda, si è presentato il problema che si intende risolvere.

  • PROBLEMA: viene esposto chiaramente il problema presentatosi, già analizzato da un punto di vista informatico.

  • SOLUZIONE: viene dettagliata la soluzione che il capo ingegnere vuole implementata. Si fa ampio riferimento al template e viene data una panoramica di cosa ci si aspetta che il software diventi.

  • MODI D'USO: vengono infine presentate all'utente come l'azienda si aspetta di utilizzare il software. Questi possono essere immaginati come dei test di utilizzo che l'utente può replicare per determinare se l'implementazione raggiunge gli obiettivi previsti dallo scenario.

Esercizio

Siamo dunque giunti al primo esercizio. L'obiettivo di questo progetto è di preparare l'utente all'utilizzo dell'ambiente fornito nei template. La programmazione vera e propria sarà comunque presente, ma una maggiore attenzione viene data sia a specifiche che documentazione per introdurre l'utente ai focus principali di questi esercizi.

Prosegui alle specifiche

About

First exercise of the CS project tutorial

License:GNU General Public License v3.0


Languages

Language:Java 75.4%Language:Batchfile 13.9%Language:Makefile 10.7%