Testi e software
Testi di riferimento
- Fondamenti di informatica e lab.. McGraw-Hill 2014. ISBN 978-13-082-4813-4 (~25€, 250pp., nelle librerie universitarie)
- A.B. Downey: Think Python 2e - github.com/AllenDowney/ThinkPythonItalian
- A.B. Downey: How to Think Like a Computer Scientist C++ Version - greenteapress.com/thinkcpp
- M. Beri: Python, Apogeo Pocket 2010, 978-8850329151 (~8€)
Altri testi consigliati
- C. S. Horstmann: Fondamenti di C++, McGraw-Hill 2003, 978-8838661051 (~43€, 768pp.)
- S.B. Lippman, J. Lajoie, B.E. Moo: C++ Primer 5e, Addison Wesley 2012, 978-0321714114 (~36€, 940pp.)
- M. Dawson: Python Programming for the Absolute Beginner 3e, Course Tech. 2010, 978-1435455009 (~25€, 450pp.)
- M. Dawson: Beginning C++ Through Game Programming 4e, Course Tech. 2014, 978-1305109919 (~28€, 390pp.)
- A. Lorenzi, V. Moriggia: Programmazione ad oggetti e linguaggio C++, Atlas 2004, 978-8826811956 (~12€, 380pp.) - Oppure altro testo per le superiori
- MIT: Intro to CS and Programming in Python - Video delle lezioni
- Documentazione: Python.org - isocpp.org - cplusplus.com - cppreference.com
Software
Strumenti open source, multi-piattaforma
- Python.org, v3.7, battery included
- Playground Python
- C++ CodeBlocks.org, con MinGW e setup
## Ubuntu, Debian etc.
sudo apt install idle3 python3-pip codeblocks build-essential
pip3 install pygame cppyy
Link utili
Introduzione alla programmazione
- Video delle lezioni al MIT: Introduction to CS and Programming (Pyhton 3): http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
- Blockly Demo, Maze: http://blockly-demo.appspot.com/blockly/demos/maze/index.html
- CAS Raspberry Pi Education Manual: http://downloads.raspberrypi.org/Raspberry_Pi_Education_Manual.pdf
- Code.org: http://www.code.org/
- Codecademy: http://www.codecademy.com/
- Python e C++11 nei colloqui di lavoro presso Google: https://plus.google.com/+JeffreyYasskin/posts/PkP8vvQXS3f
- You can do the Rubik's cube: http://www.youcandothecube.com/downloads/Solution_Guide.pdf
- Puzzles of nikoli.com: http://www.nikoli.com/en/puzzles/
- Project Euler, a series of challenging mathematical/computer programming problems: http://projecteuler.net/
Programmazione in C++ e Qt
- B. Eckel - Thinking in C++ Vol.1, Prentice-Hall, 2000, 978-0139798092: http://www.mindviewinc.com/Books/downloads.html
- B. Stroustrup - A Tour of C++, 2013: http://isocpp.org/tour
- C++ Reference Card (2 pagg.): http://www.cse.msstate.edu/~crumpton/reference/Cpp_reference.pdf
- C++ Quick Reference (4 pagg.): http://www.pa.msu.edu/~duxbury/courses/phy480/Cpp_refcard.pdf
- Tutorial C++: http://www.cplusplus.com/doc/tutorial
- Marshall Cline's C++ FAQ: http://www.parashift.com/c++-faq/index.html
- Help C++ per Qt Creator (Tools->Options->Help->Documentation->Add): http://en.cppreference.com/w/Cppreference:Archives
- Getting Started Programming with Qt: http://qt-project.org/doc/qt-4.8/gettingstartedqt.html
Teoria della computazione
- Regular Expressions - A Gentle Introduction: http://www.zytrax.com/tech/web/regex.htm
- R. Barbuti, P. Mancarella, D. Pedreschi, F. Turini - Elementi di sintassi dei linguaggi di programmazione: http://www.di.unipi.it/~occhiuto/sintassi.pdf
- G. Ausiello - videolezioni di Informatica Teorica, UniNettuno: http://forum.tntvillage.scambioetico.org/?showtopic=196518
- G. Ausiello, F. d’Amore, G. Gambosi - Linguaggi, Modelli, Complessità: http://www.dis.uniroma1.it/~ausiello/InfoTeoRMvo/main.pdf - http://www.dis.uniroma1.it/~ausiello/InfoTeoRMvo/cap9.pdf
- M. Liverani - Appunti sulla teoria degli automi, dei linguaggi e della calcolabilità - http://www.mat.uniroma3.it/users/liverani/doc/appunti_calcolabilita.pdf
- Quicksort analysis: http://www.cise.ufl.edu/class/cot3100fa07/quicksort_analysis.pdf
- Visualizing algorithms: http://bost.ocks.org/mike/algorithms/
- Computer languages history: http://www.levenez.com/lang/
Sistemi di elaborazione
- Convertitore IEEE-754: http://babbage.cs.qc.edu/courses/cs341/IEEE-754.html
- XAMPP (Apache, MySQL, PHP): http://www.apachefriends.org/en/xampp.html
- Iacono, M. Appunti di Reti di Calcolatori: http://www.mauroiacono.com/FI-SCPOL/5-FI-SCPOL-Reti-Appunti.pdf
Sviluppo del software
- Larry and Jen do Roman Numerals in C++ (Test Driven Development): http://jonjagger.blogspot.it/2013/07/larry-and-jen-do-roman-numerals-in-c.html
- How To Document and Organize Your C++ Code: http://www.edparrish.net/common/cppdoc.html
- Why Coding Style Matters: http://coding.smashingmagazine.com/2012/10/25/why-coding-style-matters/
- Meyer, B. (1992). Applying 'design by contract'. Computer, 25(10), 40-51: http://se.ethz.ch/~meyer/publications/computer/contract.pdf
- Uncle Bob's Principles of OOD: http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod