Informatica 3: Novità

Quest'area è dedicata agli aggiornamenti relativi al corso di Informatica 3.

Problemi tecnici per la teledidattica

Abbiamo un problema con le aule per la teledidattica. Per gli studenti di Milano, questo significa che cambieremo aule ASAP. Per gli studenti di Cremona, invece, la lezione di oggi (introduttiva) sara' recuperata lunedi' nella terza ora (e se necessario nella terza ora del lunedi' successivo).

G.

Aggiornamento

Tutte le lezioni sono spostate in T.0.1. Questo dovrebbe permettere lo svolgimento delle lezioni in teledidattica per Cremona.

Voti e soluzioni del 3/9

Salve a tutti,

dovrebbero esservi gia' arrivati i voti dell'ultimo appello. Trattandosi di un tema d'esame piuttosto semplice, i voti sono abbastanza alti. Se non avete passato l'esame, dovreste riconsiderare seriamente la preparazione che avete fatto.

Per quanto riguarda le soluzioni, metto qui una soluzione degli esercizi di programmazione. Potete usare l'implementazione dei BTree fornita a lezione per verificare le soluzioni dell'esercizio relativo, e provare voi stessi il secondo esercizio.

Esercizio 1

#!/usr/bin/python
from threading import Thread, currentThread
from Queue import Queue
 
levels = [ 'ERROR', 'WARNING', 'DEBUG', 'INFO', 'SHUTDOWN' ]
 
class LogBuffer(Queue,Thread):
	def __init__(self, filename):
		Queue.__init__(self)
		Thread.__init__(self)
		self.file = open(filename, 'w')
 
	def run(self):
		while 1 :
			tid, level, msg = self.get()
			self.file.write(tid.getName()+': '+levels[level]+': '+msg+'\n')
			if level == 4 :	
				self.file.close()
				break
 
class Logger(object):
	def __init__(self,logbuf):
		self.logbuf = logbuf
 
	def log(self,msg,lvl):
		tpl = currentThread(),lvl,msg
		self.logbuf.put(tpl)
 
# Test del sistema di logging
if __name__ == '__main__' :
	lbuf = LogBuffer("test.log")
	lbuf.start()
	def user1():
		l = Logger(lbuf)
		for i in range(10):
			l.log("test1",i%4)
 
	def user2():
		l = Logger(lbuf)
		for i in range(10):
			l.log("test2",i%4)
		l.log("closing down",4)
 
	Thread(target=user1).start()
	Thread(target=user2).start()

Esercizio 4

#!/usr/bin/python
 
# Parte 1 (x serve a verificare quante operazioni si stanno eseguendo)
def lg1(m,n):
	assert(m>1 and n>1)
	assert(type(m)==int and type(n)==int)
	x=0
	k=0
	while 1:
		x+=k
		if m**k<=n and n<m**(k+1) :
			return k, x
		k+=1
 
# Parte 2 
def lg2(m,n):
	assert(m>1 and n>1)
	assert(type(m)==int and type(n)==int)
	x=0
	k=0
	old=1
	while 1:
		x+=1
		next=old*m
		if old<=n and n<next :
			return k, x
		old=next
		k+=1
· 2009/09/06 17:33 · Giovanni Agosta

Visione compiti 06/03/2009

Salve a tutti, la visione dei compiti del 06/03/2009 avverra' domani (7/4) alle 9:30 in aula 3B (al terzo piano del dipartimento).

GP

Voti dell'appello del 6/3

Finalmente ho corretto i compiti :) La media dei voti >=18 e' 22.67. I promossi sono il 45% dei presenti all'appello. Voto massimo: 30 (in tre casi).

I voti sono in bacheca (alla lettera I), li mettero' sul poliself nei prossimi giorni.

G.

teaching/info3/blog.txt · Last modified: 2007/09/13 16:50 by agosta
Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki