Il mio codice OPIS |
---|
3IP2YMX0 |
Inserirlo nella valutazione dei docenti seguendo questa guida.
Il corso e’ in collaborazione con lo stesso corso Canale 1 (AL) del Prof. Andrea Sterbini. Cerco di seguire le sue lezioni (il canale 2 per ora e’ indietro rispetto al canale 1 di una sola lezione). Seguo i soliti esempi del Prof. Sterbini, ristrutturando gli esempi secondo la mia prospettiva.
I libri di testo consigliati sono i seguenti:
Altri libri (dalla corso gemello in inglese del Prof. Di Ciccio ):
Altre risorse utili:
Rimando al link ufficiale per prenotazioni Modulo iscrizione sessione straordinaria
Riservata a studenti part-time, fuori corso nell’A.A. 2020-2021, studenti genitori,
studenti con disabilitĂ e con D.S.A, LAUREANDI (si intende studenti con
tesi /tirocinio formalmente avviati), per i nostri corsi di studio agli
studenti lavoratori in grado di dimostrarlo, non è a carico di Sapienza ma dello studente.
Per essere dei buoni programmatori e muovervi velocemente col calcolatore, dovete disimparare quello che avete imparato naturalmente fino ad ora. Quindi, almeno quando programmate, cercate di minimizzare il piu’ possibile uso di GUI (Graphical User Interface) e mouse, e cercate di aumentare utilizzo di:
Altra regola d’oro e’ che per programmare vi serve solamente:
help()
)ipython
per provare snippet di codice che create e verificare passo passo che le funzionalita’ che create via via sono correttte (fondamentale!).pudb
(more on this later)vostra mente
, dedicata a voi al completo, quindi priva di distrazioni quali facebook, whatsapp, messenger o qualsiasi evento asincrono che vi toglie attenzione. Evento asincrono puo’ anche essere arbitrariamente il vostro cane che abbaia e vi chiede la pappa. Piu’ riuscite a minimizzare le interruzioni, piu’ farete progressi. Quindi regola d’oro quando studiate o programmate: chiudete il piu’ possibile fonte di distrazioni da eventi esterni, vi dovete assorbire completamente nello studio. Per tenere traccia del tempo potete utilizzare un timer
. Sia per tracciare tempo che passa sia per misurare quanto ci impiegate a risolvere gli esercizi.Andare per piccoli passi:
Nota Importante: Se state passando da mondo Windows e vi volete avventurare in *nix, andate per gradi e seguite questo ordine:
1. Installazione dual-boot Win-Linux (occhio a non rovinare l'installazione Windows).
2. Prendere confidenza con distro Linux scelta
3. Sapere interagire col terminale: un test per capire se uno e' a suo agio con il terminale
e' rispondere alla seguente domanda
"Se ti e' dato un computer che ha solo il terminale senza GUI, ci sai lavorare?"
Se la risp e' si puoi andare avanti;
4. Passare a programmare in Spyder e quando si e' sicuri, passare ad
editor piu' tosti come Emacs
Settings e Tools:
python
) e’ interprete di comandi da terminale bash - Bourne Again SHell
. Una guida di base per partire con bash e’ UNIX Command Line section di questo gruppo di ricerca. Vi trovate anche qualcosa su Python.conda install spyder
. Se usate un’IDE mi raccomando di avere coscienza di quello che IDE vi fa automaticamente dietro; cmq sia Spyder e’ ben fatto. Un esempio: IDE vi mette a disposizione istruzioni/funzioni/moduli che su python non vi sono: provate ad usare runfile
semplicemente eseguendo python -c "help(runfile)"
da terminale oppure ad eseguire help(runfile)
dall’interprete in Spyder. Che succede?ipdb
oppure 2) a me personalmente piace usare pudb
installabile con conda install -c conda-forge pudb
. Per usare pudb
dopo averlo installato, semplicemente invocare python con il modulo pudb e il file principale main.py
che si vuole debuggare con python -m pudb main.py
. Per usare in maniera efficiente pudb
e’ necessario configurarlo e imparare le scorciatoie da tastiera per debuggare rapidamente.Ho attivato l’orario di ricevimento. Possiamo fare una prova per vedere se questo meccanismo che ho creato puo’ funzionare. Nel caso vedo che non e’ flessibile abbastanza o ci sono problemi, ci potrebbero essere variazioni in futuro.
Nota: Cercate di essere parsimoniosi col ricevimento: usate il q2a forum per risolvere problemi banali o chiedere aiuto, in generale. Potete anche provare a scrivermi una email ma come mezzo e’ molto lento (possono passare alcuni giorni priam che risponda). Nel caso in cui vi sentite persi, oppure avete bisogno di un chiarimento di un concetto visto a lezione, fatene uso del ricevimento.
La procedura per prenotare il ricevimento e’ la seguente:
Ricevimento studenti disponibile su prenotazione.
30 min per ogni studente o per ogni gruppo di studente
che affrontano lo stesso problema/chiarimento.
Il ricevimento si svolgera' tramite Zoom, **che deve essere creato dallo studente.**
Seguire scrupolsamente queste istruzioni:
Il form che vi era prima è deprecato. Se volete accedere al materiale dovete iscrivervi al Google Classroom di Fondamenti di Programmazione AA21-22. Fornisco il codice a lezione. Chi è iscritto al classroom dovrebbe poter accedere direttamente a questo materiale con la solita email con cui si è iscritto al Classroom.
Nota: se volete accedere al materiale di Fondamenti di Programmazione vecchio e nuovo mandate una email a masi@di.uniroma1.it con esattamente questo soggetto “[Richiesta materiale fondamenti di programmazione]” senza le “”. La risposta e’ automatica!
PEP 8
(code style) e PEP 257
(doc string)@classmethod
)try except finally
.HW6
__eq__
sys.path
HW
callable
objects in python and the overloading of __call__
OPIS
pudb
della ricercaimagemat
per modellare matriciTraceRecursion
del Prof. Sterbini(args, kwargs)
DFS
(pre/in/post order) su albero binariomar 8 dic, 10-13 (Festa Immacolata Concezione)
HW6
HW
e gestire il tempoHW6
e possibili modi per risolverlo, idee varie e schemi di soluzione1937764
). Lo ringrazio vivamente per aver fornito il suo codice.callable
objects*args, **kwargs
defaultdict
(usare con attenzione e cautela)TraceRecurision
(basati su __call__
)HW6
codice Prof. SterbiniNodo : Stato = Arco : Mossa
; Albero di gioco come albero N-ario.[]
e slice
e.g. A[:,c]
seleziona colonna c-th
.HW8
Prof. SterbiniHW8
codice Prof. SterbiniHW8
come enumerazione di stati di un Automa Stati FinitiHW8
esponenzialeargparse
per gestire input complessi in ingressoJupyter Notebook
Per favore se trovare errori o incongruenze, fatemi sapere cosi aggiorno il materiale, grazie.