Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi N - Z > Programmazione avanzata
 
esercizi
Clicca QUI per vedere il messaggio nel forum
eli88
qualcuno potrebbe mettere gli esercizi che il prof ha fatto fare durante il corso? almeno così si possono confrontare.

zzz
Sono interessato anch'io , qualcuno potrebbe postarli
Grazie

Didjer Wallis
in rete si trovano parecchi esercizi di python2, nulla di python3 (magari cerco male io). se qualcuno sà darmi dei link ad esercizi di python3 o postare direttamente gli esercizi svolti farebbe un grossissimo piacere a tutti.

Nvideo
Ciao a tutti,
qualcuno ha risolto gli esercizi 2 e 3 dell'esercitazione 3?
Come avete fatto? :?

Grazie

Vikyg13
Riesumo il topic per sapere se da qualche parte si trovano le soluzioni degli esercizi di PA di quest'anno (2010-2011) o se almeno riusciamo ad aiutarci fra di noi

Vikyg13
nessuno insomma sta preparando questo esame o è interessato agli esercizi pubblicati dal prof?

kirka85
quindi di esercizi risolti non se ne trovano?
facciamo noi ( quelli che vogliano sostenere l'esame) un thread, in cui condividiamo le soluzioni degli esercizi

Vikyg13
Ti appoggio, sperando di non essere gli unici 2 interessati

kirka85
inizo a condividere la soluzione che ho trovato per l'esercizio 1, nn assicuro nulla, anzi spero che qualcuno posti qualche altra soluzione

code:
import calendar #Use isleap() to determine the next leap year. year=2011 check=True while check: if calendar.isleap(year): check=False print(year) year=year+1 #Find and use a function in module calendar to determine #how many leap years there will be #between the years 2000 and 2050, inclusive print(calendar.leapdays(2000, 2051)) #Find and use a function in module calendar to determine #which day of the week July 29, 2016 will be print(calendar.weekday(2016, 7, 29))

kirka85
code:
##Assign a list that contains the atomic numbers of the six alkaline earth metals -- beryllium (4), magnesium (12), calcium (20), ##strontium (38), barium (56), and radium (88) to a variable called alkaline_earth_metals. ## ## 1. Write code that returns the highest atomic number in alkaline_earth_metals. ## 2. Using one of the list methods, sort alkaline_earth_metals in ascending order (from the lightest to the heaviest). ## 3. Transform the alkaline_earth_metals into a dictionary using the name of the metals as the dictionary's key. ## 4. Create a second dictionary containing the noble gases -- helium (2), neon (10), argon (18), krypton (36), xenon (54), and radon (86) -- and stored in the variable noble_gases. ## 5. Merge the two dictionaries and print the result as couples (name, atomic number) sorted in ascending order on the element names. ## ##Note that Python's dictionaries do not preserve the insertion order neither it is sorted in some wa alkaline_earth_metals=[4,12,20,38,56,88] print (max(alkaline_earth_metals)) #1 alkaline_earth_metals.sort() print(alkaline_earth_metals) #2 alkaline_earth_metals_name=['beryllium', 'magnesium', 'calcium','strontium', 'barium', 'radium'] #3 metals_dict = dict(zip( alkaline_earth_metals_name, alkaline_earth_metals)) print (metals_dict) noble_gases=dict(helium=2, neon=10, argon=18, krypton=36, xenon=54, radon=86) #4 metals_dict.update(noble_gases) ordinamento=list(metals_dict.keys()) ordinamento.sort() for x in ordinamento: print ( x, metals_dict[x])

kirka85
code:
# Write a function that given a pure number prints a conversion table for it among any of the 8 scales #(remember that functions are objects as well). scale= dict(Kelvin=0.00 , Celsius=-273.15, Fahrenheit=-459.67, Rankine=0.0, Delisle=559.73, Newton=-90.14, Reaumur=-218.52, Romer=-135.9) def PrintConvertionTable (temperatura): print ('Valore inserito %f' % temperatura) print ('Tabella di conversione') for x in scale: print ('( %s, %f )' % (x, scale.get(x))) #Write a function that given a temperature in a specified scale returns a list of all the corresponding #temperatures in the other scales, the list must be sorted on the #temperature and the scale must be specified (hint: use a tuple). def ConvertionTable (temperatura, unita): if unita.lower() == 'kelvin': Conversione=fromKelvin(temperatura) Ordinamento(Conversione) elif unita.lower() == 'celsius': Conversione=fromCelsius(temperatura) Ordinamento(Conversione) else: print('Conversione per questa scala non implementata') def fromKelvin (K): Kelvin=K Celsius= (K - 273.15 ) Fahrenheit = (K*(9/5)-459.67) Rankine = K*(9/5) Delisle =(373.15 - K)*(3/2) Newton =(K - 273.15) * (33/100) Reaumur = (K - 273.15) * (4/5) Remer=(K - 273.15 )*(21/40) + 7.5 conv=dict(Kelvin= Kelvin, Celsius= Celsius, Fahrenheit=Fahrenheit, Rankine=Rankine, Delisle=Delisle, Newton=Newton, Reaumur=Reaumur, Remer=Remer) return conv def fromCelsius (C): Kelvin= C*(9/5) + 32 Celsius=C Fahrenheit = C + 273.15 Rankine = (C + 273.15)*(9/5) Delisle =(100-C)*(3/2) Newton = C*(33/100) Reaumur = C *(4/5) Remer= C* (21/40)+ 7.5 conv=dict(Kelvin= Kelvin, Celsius= Celsius, Fahrenheit=Fahrenheit, Rankine=Rankine, Delisle=Delisle, Newton=Newton, Reaumur=Reaumur, Remer=Remer) return conv def Ordinamento (ordinare): inverso=dict(zip(ordinare.values(),ordinare.keys())) #creo un dizionario invertando chiave valore ordinato=list(inverso.keys()) # creo una lista delle chiavi per poter ordinare ordinato.sort() for x in ordinato: print(x,inverso[x]) ##if __name__ == '__main__': ## #### print (ConvertionTable(5)) ## print (Fahrenheit(5))

kirka85
code:
##A matrix can be represented as a list of lists (rows and columns). ## ## 1. Use the comprehensions to describe the identity matrix (the one with all 0s but the 1s on the diagonal) of given size. ## 2. Use the comprehensions to describe a square matrix filled with the first n*n integers. ## 3. Write a function to transpose a generic matrix independently of the size and content. ## 4. Write a function to multiply two matrices non necessarily square matrix. import copy, numpy def IdentityMatrix (size): #1 identity=[[1 if i==member else 0 for i in range(size)] for member in range(size)] return identity def SquareMatrix (size): #2 squarem=[[(member*3+1+i)*(member*3+1+i) for i in range(size)] for member in range(size)] return squarem def TransposeSquare(matrice): #3 pero funziona solo quando la matrice è quadrata trasposta = copy.deepcopy(matrice) for i in range(len(matrice)): for j in range(len(matrice)): trasposta[j][i] = matrice[i][j] return trasposta def Transpose(matrice): #3 usando numpy trasposta=numpy.matrix(matrice).T return trasposta def MultiplyMatrix (m1,m2): #uso le funzionalità della libreria numpy a=numpy.matrix(m1) b=numpy.matrix(m2) rel=a*b return(rel) if __name__=='__main__': ## matrix=SquareMatrix(3) ## print (matrix) ## matrixT=TransposeSquare(matrix) ## print (matrixT)## ## r =MultiplyMatrix (matrix,matrixT) ## print (r) matrix=SquareMatrix(3) matrixT=Transpose(matrix) print (matrix) print (matrixT)


manca l'es.1.5
Ciao

Vikyg13
Ottimo! dammi 4 giorni di pausa da PA causa altro esame e posto anche io le soluzioni

Sacratix
qualcuno mi manda la password, che non voglio chiederla di nuovo al profe >>

Vikyg13
Il primo esercizio l'ho fatto uguale con la differenza che calcola il prossimo anno bisestile a partire dall'anno corrente (che rileva da una funzione base python):

code:
import datetime import calendar def is_leap(): anno = datetime.date.today().year + 1 while calendar.isleap(anno) == False: anno += 1 return "Il prossimo anno bisestile e' il {0}".format(anno) def how_many_leap(): return calendar.leapdays(2000,2051) def which_day(): return calendar.weekday(2016,11,29)

Vikyg13
Gli altri esercizi sono praticamente uguali a parte il 4 che ha qualche differenza nella moltiplicazione delle matrici (gli altri mi sembrano molto simili):

code:
import functools def print_matrix(m): s = '' for i in range(0,len(m)): s += "| {0} |\n".format(m[i]) return s def id_matrix(): try: size = int(input("Inserisci la dimensione della matrice: ")) m = [[1 if(x==y) else 0 for x in range(size)] for y in range(size)] return "Matrice identita'\n{0}".format(print_matrix(m)) except: return "Errore. Devi inserire un numero intero" def square_matrix(): try: size = int(input("Inserisci la dimensione della matrice: ")) n = 1 m = [[(n*(x+1))+(y*size) for x in range(size)] for y in range(size)] return "Matrice n*n\n{0}".format(print_matrix(m)) except: return "Errore. Devi inserire un numero intero" def trasposta_matrix(m): mt = [[m[j][i] for j in range(len(m))] for i in range(len(m[0]))] return "Matrice\n{0}\nMatrice trasposta\n{1}".format(print_matrix(m),print_matrix(mt)) #definisco la funzione da usare con reduce() def sum(x,y): return x+y def moltiplicazione_matrici(m1,m2): try: if len(m1[0]) == len(m2): mf = [] #con le comprehension faccio la moltiplicazione fra righe e colonne mf = [ [ [m1[i][j]*m2[j][x] for j in range(len(m1[0]))] for x in range(len(m2[0])) ] for i in range(len(m1)) ] #con programmaz. funzionale sommo i risultati dei prodotto ottenendo il risultato finale prodotto = [ [functools.reduce(sum, mf[i][j]) for j in range(len(mf[0]))] for i in range(len(mf)) ] return "Prodotto fra {0} * {1}\n{2}".format(m1,m2,prodotto) else: return "Prodotto non eseguibile" except: return "Le matrici da moltiplicare sono errate"


L'esercizio 5 manca pure a me
Poi posto gli esercizi del lab 2

kirka85
ecco l'ese 1.5, cmq per me sti esercizietti nn sono per niente banali o facili, e rispetto ai temi d'esame dell'anno scorso sembrano uno scherzo...
Vikyg13 hai frequentato le lezioni? io sono studentessa lavoratrice e davvero mi sembra un esame tostissimo...

code:
##Similarly to the ls-l example please implement: ## ## 1. The cat command, i.e., a command that given a list of files prints their content on the terminal (man cat to get more info). ## 2. The chmod command, i.e., a command that permits to change the access mode of a given group of files (man chmod to get more info) ## 3. The more command, i.e., a command that given a file prints its content 30 rows at a time and way a keystroke after every 30 rows to print the next 30. ## import os, stat def cat(filename): #1 '''Print a file to the standard output.''' f = open(filename, "r") flag=True while flag: line = f.readline() if len(line) == 0: flag=False print (line) f.close() def more(filename): #3 f = open(filename, "r") cont=1 flag=True while cont<31 and flag: line = f.readline() cont=cont+1 if len(line) == 0: flag=False if cont == 31: k=input('[more]') cont=1 print (line) f.close() if __name__=='__main__': cat('Matrix.py') os.chmod('hello.py', stat.S_ISUID) #2 more('Matrix.py')

maXmo
Qualcuno di voi sa perché va in overflow questo es :? a livello di logica l'ho riguardato mille volte ma non capisco perché dopo un po' che gira a cercare il numero divisibile per tutti i numeri da 1 a 20 sembra non trovarlo mai :?

code:
numerocorrente = 1 def controlladivisione(): global numerocorrente divisibile = True for numero in [y for y in range(1,21)]: if numerocorrente % numero !=0: divisibile = False numerocorrente+=1 break if divisibile == True: print(numerocorrente) return True check = lambda: controlladivisione()==True or check() if __name__ == "__main__": check()

Vikyg13
@kirka: Ho frequentato poco. Comunque sì i temi d'esame non sono per nulla facili e anche io ho trovato ostici questi esercizi qui di laboratorio.
L'esame è tostissimo, l'anno scorso lo hanno passato veramente in pochi (mi pare soltanto in 5 in tutto l'anno). Speriamo di riuscire a passarlo prima o poi :D

@max: io quell'esercizio l'ho interpretato come il numero più piccolo divisibile per entrambi i numeri 1 e 20, anche perchè non so se esiste un numero divisibile per tutti i numeri da 1 a 20, credo proprio di no...
per come l'ho interpretato io la soluzione è:

code:
def es02(): return min(filter(lambda n: n%1==0 and n%20==0, range(1,100)))


Anche perchè per come lo imposti tu, a parte che

code:
for numero in range(1,21)


non c'è bisogno della list comprhension.
Il tuo programma esegue 1%1 che è 0 quindi non incrementa numero corrente, quindi 1%2 che è != 0, quindi 2%3 ecc...
la variabile non sarà mai True in sostanza e quindi la ricorsione check() va all'infinito, ecco perchè.

Spero di aver detto giusto.

maXmo
Innanzitutto grazie per la risposta...mi ha fulminato un'idea, come ho fatto a non pensarci prima grrrr...si tratta di trovare il Minimo Comune Multiplo!!! Quindi si tratta di scrivere solo una funzione che trovi tutti i fattori, comuni o non comuni, e moltiplicarli tra di loro ciascuno preso una sola volta con l’esponente più piccolo!

kirka85
ecco , ma perchè quindi gli esercizi e le slide sono in inglese? per facilitarci :)
Io ho inteso che bisogna trovare il numero più piccolo divisibile per tutti i numeri tra 1 e 20(Calculate the smallest number divisible by each of the numbers 1 to 20)

ecco la mia soluzione all'esercizio 2.1, ho preso spunto da quihttp://www.geekality.net/garage-sale/project-euler-c/

code:
##Write the solutions for the following quizzes by using functional programming: ## ## 1. Sum all the natural numbers below one thousand that are multiples of 3 or 5. ## 2. Calculate the smallest number divisible by each of the numbers 1 to 20. ## 3. Calculate the sum of the number 2^1000 ## 4. Calculate the first term in the Fibonacci sequence to contain 1000 digits. import functools, fractions, math somma=functools.reduce(lambda x, y: x+y, filter(lambda x: ((x % 5 == 0) or (x % 3 == 0) ), range(1,1000))) #1 print (somma) SmallestNumberDivisible=functools.reduce(lambda x, y: x*y/fractions.gcd(x,y), range(1,21)) #2 print (SmallestNumberDivisible) s=functools.reduce(lambda x,y:x+y, list(str(2**1000))) #3 print (s) aureo=1.6180339887 #4 fibc=lambda n: (aureo**n)/(5**(1/2)) #formula compatta e approssimativa fib=lambda n: n if n < 2 else fib(n-1) + fib(n-2) lunghezza=len(str(fibc(1000))) #dopo 1000 overflow e cmq dovrei andare avanti usando un ciclo trovando quello di lunghezza mille digit=1000 n=( digit+ ((math.log(5)/2)-1) )/math.log(aureo) #formula inversa,in input la lunghezza,output digit print (n) #2077

maXmo
Direi perfette ;) durante l'esame abbiamo a disposizione slides, documentazione e internet? perché a volte mi ritrovo a dovermi documentare su ciò che riguarda l'esercizio (es. Fibonacci) per poterlo risolvere..

Ne approfitto per aggiungere la mia visione dell'esercizio pa-es2_2 quello della frequenza delle parole nel testo:

code:
wordsandcounters = {} def leggituttoiltesto(nomefile): data_file = open(nomefile, 'r') for line in data_file: words = line.rsplit(' ') for word in words: word.upper() if not word in wordsandcounters: wordsandcounters[word] = 1 else: contatore = wordsandcounters.get(word) wordsandcounters[word] = contatore+1 print(wordsandcounters.items()) if __name__ == '__main__': leggituttoiltesto('README.TXT')


L'unica cosa che non fa questo programma è contare la punteggiatura come se stante..qualche dritta? non vorrei dover usare le regex x_x

Vikyg13
La mia versione dell'es2.2
Separa la punteggiatura, mi dà qualche problema ma per le parole con l'accento, non ho trovato codifica più adatta

code:
import string, re, codecs def split_word(input_file): return reduce(lambda x,y: x+y, [ [l.strip() for l in re.split('(\W+)', line) if l.strip() ] for line in input_file ] ) def to_lower(lst): return [elem.lower() for elem in lst] def count_elem(lst): return dict([ (word,lst.count(word)) for word in lst ] ) def diz_tostring(d): s = '' for elem in d: s += '{0}= {1}\n'.format(elem,d[elem]) return s def read_count_file(f): input_file = codecs.open(f,'r') return diz_tostring( count_elem(to_lower(split_word(input_file))) ) input_file.close()

maXmo
Ecco la mia interpretazione della funzione di Taylor per il calcolo di sinx...non ne sono sicuro al 100% ma ho seguito la regola di wikipedia e trasposta così com'era la sommatoria tramite un for...

code:
import math from functools import reduce import operator def sinxtaylor(x,n): senx = 0 for numero in range(1,n+2,2): print(numero) senx += pow(x,n)/reduce(operator.mul,[i for i in range(n,0,-1)]) print(senx) if __name__ == '__main__': sinxtaylor(1,3)

maXmo
Ecco la mia interpretazione dell'es1.3 degli esercizi pa-es4.html
Non mi è chiaro cosa debba modificare di questo codice per soddisfare anche la richiesta "the target should be a name containing an instance of the child class"..il file va salvato con nome pa_es4_1.py

code:
import re '''mi basta controllare la metà della parola''' import operator class stringheestese: __metaclass__=str def controllapalindroma(word): #1 p = re.compile(r'(\W)', re.IGNORECASE) word = p.sub('',word) print(word) if (len(word)%2!=0): '''halunghezzadispari''' primameta = word[0:int(len(word)/2)+1] secondameta= word[int(len(word)/2):int(len(word))] else: primameta = word[0:int(len(word)/2)] secondameta= word[int(len(word)/2):int(len(word))] secondareverse = "" for i in range(len(secondameta),0,-1): secondareverse+=secondameta[i-1:i] if secondareverse == primameta: print("la parola è palindroma") else: print("non è palindroma") def subtractletters(command): #2 print(command.index("-")) word = command[1: command.index("-")-1] letters = command[command.index("-")+2:len(command)-1] p = re.compile("(["+letters+"])+") print("originale: "+word) word = p.sub('',word) print("rimosse le lettere "+ letters + ": " + word) def dalistatrovaanagrammireciproci(dizionariodistringh e): #3 for current_key in dizionariodistringhe: '''preparo il dizionario della parola che sto analizzando con lettere e contatori''' tempdict1 = {} for letter in dizionariodistringhe[current_key]: '''se ce già aggiorno il contatore''' if letter in tempdict1: tempcounter = tempdict1[letter] tempdict1.pop(letter) tempdict1[letter] = tempcounter+1 else: tempdict1[letter] = dizionariodistringhe[current_key].count(letter) '''preparo il dizionario di ogni nuova parola e lo confronto con quello che ho gia''' tempdict2 = {} for key in dizionariodistringhe: if key != current_key: for letter in dizionariodistringhe[key]: if letter in tempdict2: tempcounter = tempdict2[letter] tempdict2.pop(letter) tempdict2[letter] = tempcounter+1 else: tempdict2[letter] = dizionariodistringhe[key].count(letter) if tempdict1 == tempdict2: print(dizionariodistringhe[current_key] + " è l'anagramma di " + dizionariodistringhe[key]) tempdict2 = {} if __name__ == '__main__': import pa_es4_1 pa_es4_1.stringheestese.controllapalindroma("gor.,... r rog") pa_es4_1.stringheestese.subtractletters('"Walter Cazzola"-"abcwxyz"') pa_es4_1.stringheestese. dalistatrovaanagrammireciproci({'test1':'ciao','te st2':'addio','test3':'caio','test4':'oiac','test5' :'oddai'})

fra78mi
Ciao ragazzi, anche io studente lavoratore e vorrei dare programmazione avanzata di Cazzola il 9/3 ... cominciando oggi a studiare secondo voi è fattibile?

Grazie

ciao
Francesco

Vikyg13
Dipende a che livello stai tu di Python e di programmazione in generale.

Diciamo che partendo da 0 con Python e da un livello medio-basso di competenze generali di programmazione secondo me ci vogliono almeno due mesi di studio. Poi dipende dalle capacità personali ovviamente, ma è un esame che richiede una conoscenza e una praticità con il linguaggio particolarmente elevata.
Per farsi un'idea ci sono i temi d'esame dell'anno scorso

tooler
ma in quello sulle matrici usi numpy?? ragazzi ma all'esame non c'è numpy.

comunque bello il reduce sulla sum nella moltiplicazione di matrici! non ci avevo pensato

e in quelli sul funzionale.. ma itertools?!? è IL MODULO per la programmazione funzionale..

ma perchè nell'ultimo usi come metaclasse string?!?!?!?!?

io ho provato a rifare gli esercizi dei compiti in maniera un po' più KISS dei metodi del prof.. se a qualcuno interessa li posto..

kirka85
@tooler: ok quindi niente numpy all'esame... ma possiamo usare slide e internet?
posta tuttto quello che hai, ci sarebbe di grande aiuto...grazie

tooler
internet??
scusa prima provi a usare numpy che è per il calcolo numerico e poi pensi a internet? vabeh..

no niente internet, le slide non lo so io non le ho mai usate, però c 'è il reference.. ragazzi imparate a usarlo, tutta la roba sui decoratori metaclassi e molte cose "idiomatiche" di sintassi ci sono sulle reference, bisogna guardarsele per capire dove sono!
e comunque a parte generatori metaclassi e decoratori di "python" c'è poco.. il più è risucire a fare gli esercizi.. se l'esame fosse in java non penso cambierebbe molto a livello di difficoltà..

Vikyg13
Qualcuno ha capito come fare l'esercizio 2 del laboratorio 6 (decoratori) ?
Il metodo fibo() deve restituire praticamente la classica successione? l'avete implementata con un iteratore?

tooler
penso che fibo debba essere ricorsiva, così la memoizzazione ha sicuramente più senso..:

code:
def memo(f): '''input memoization without keyworded argument''' f.cache = dict() def decorator(*a, **k): t = a #, frozenset(k) if (t) not in f.cache: f.cache[ t ] = f(*a, **k) #else: print('cached') return f.cache[ t ] return decorator @memo def fib(n): if n==0: return 1 if n==1: return 1 return fib(n-1)+fib(n-2) for i in range(10): print(fib(i))

Vikyg13
Ma Fib, Fact e Taylor le hai messi tutti in una classe MyMath?

tooler
no in realtà le ho scritte solo come funzioni.. un po' come avviene nel modulo builtin math.. scrivi: from math import sqrt
non so se è così che intendeva il prof ma se lo dovessi fare in java userei dei metodi statici quindi..

Vikyg13
grazie!
E la serie di Taylor come l'hai sviluppata invece?

Vikyg13
così come per il logging come avrei due domande:

1) Quando scrivo nel file viene sovrascritto l'intero testo piuttosto che aggiungerlo
2) come si fa a scrivere nel file anche gli argomenti delle varie ricorsioni?

Vikyg13
Risolto il logging.

Per quanto riguarda invece il decoratore stack_trace?

Vikyg13
Qualcuno saprebbe spiegare l'esercizio sul triangolo di pascal?

KIMMY
Avete poi fatto l'esame? com'è stato?

prexioso
Qualcuno sa quando usciranno i voti???

Vikyg13
boh...

Vikyg13
Sono usciti i risultati...

Stavolta gli esiti sono stati più positivi del solito, l'esame in fondo era più facile delle altre volte soprattutto (forse) nella distribuzione dei punteggi fra i vari esercizi.

Qualcuno sa solitamente quando e dove verbalizza il prof?

Vikyg13
PS: ma cosa significano le linguette rosse che ci sono sopra alcuni voti?

Batti
"La verbalizzazione dell'appello del 9 marzo è fissata per lunedì 11 alle ore 12 nel mio ufficio (p121)."

mi chiedo anche io cosa siano i triangolini rossi...

kray
di solito in excel i triangolini rossi indicano che nella cella è presente un commento... il prof avrà annotato qualcosa, suppongo.. ciau

mlk
Io non ho intenzione né di seguire né di dare l'esame, però ero interessato al programma del corso dato che programmo in Python, non è che qualcuno mi può mandare uno zip con tutte le slide o fornirmi la password per accedere alla slide? Che poi non capisco quale sia il senso di non distribuire liberamente le slide.

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate