Ciao a tutti cari amici di iProg, recentemente tramite un give-away ho avuto l’opportunita’ di vincere un libro molto interessante dal titolo classic computer science problems in swift scritto dal Professor David Kopec.
Dopo aver ascoltato il podcast di Inside iOS Dev dov’ era ospite l’autore del libro ero molto interessato a leggerlo anche poiche’ tratta dei topic che ho studiato all’universita’ ma che ero intenzionato a ripassare e magari approfondirli utilizzando il linguaggio swift.
Il libro e’ suddiviso in 8 Capitoli molto ben strutturati. La prima parte del li bro e’ intitolato small problems e tratta algoritmi del tipo quali: Fibonacci, compressione, cifratura e il problema delle torri Hanoi.
Personalmente ho trovato molto interessante la parte sulla compressione e quella sulla cifratura.
La seconda parte del libro affronta tutti i classici problemi di ricerca come ad esempio ricerca binaria, ricerca lineare, l’algoritmo del missionario etc.
Questo capitolo potrebbe ritornare molto utile durante i colloqui in quanto spesso chiedono d’implementare algoritmi di questo genere.
Il Terzo capitolo tratta vari algoritmi su come risolvere i problemi dei soddisfacimenti dei vincoli, un esempio pratico di questi tipi di algoritmi potrebbe essere quello del sudoku, onestamente ho dato giusto uno sguardo veloce a questo capitolo ma sembra molto interessante, sicuramente ci ritornerò su !!!
Il Quarto capitolo illustra in maniera molto approfondita tutti i maggiori algoritmi sui grafi, come ad esempio il percorso minimo. Anche questo e’ un capitolo dove sicuramente dovro’ leggerlo piu’ approfonditamente poiche’ comunque sono argomenti leggermente piu’ complessi e dunque meritano un po’ di tempo in piu’ anche se questi argomenti li ho gia’ studiati all’universita’.
Nel sesto e settimo capitolo vengo illustrati alcuni algoritmi di clustering e di machine learning, ottimo punto di partenza per chiunque voglia iniziare ad approfondire questa branchia dell’informatica, ovviamente non sono capitoli semplici che si possono leggere come se fossero “romanzati” ma bisogna prestare una certa attenzione dato la natura degli argomenti.
L’ottavo e ultimo capitolo ( Miscellaneous problems ) tratta algoritmi di carattere generale, alcuni veramente molto interessanti come ad esempio brute force search, Minimax, l’algoritmo dello zaino etc.
Considerazioni:
Onestamente ho dato giusto uno sguardo veloce al libro e l credo che sia molto ben strutturato , inoltre penso che possa essere un’ ottima risorsa per preparasi a colloqui per aziende importanti come facebook, google etc.
Una delle cose che ho apprezzato molto e’ che alla fine di ogni capitolo non solo ci sono degli esercizi ma possiamo trovare anche un intero paragrafo nel quale viene illustrato come e dove poter applicare tali algoritmi in un applicazione reale.
Ovviamente il libro presenta anche il codice sorgente scaricabile da GitHub.
P.s.
Tengo a precisare che non mi e’ stato chiesto e ne sono stato pagato per scrivere tale articolo, ho ritenuto buona cosa dover condivider questa risorsa con voi.