Margaret Hamilton, la matematica che scrisse il codice per l’Apollo 11

Addio a Margaret Hamilton, morta a 90 anni la donna alla guida del team di ingegneri che portò l’Apollo 11 sulla Luna

Margaret Hamilton
Margaret Hamilton in piedi accanto all’elenco del codice sorgente dell’Apollo Guidance Computer (AGC). Credit NASA.

Nel 1960, quando ancora il termine “software engineer” non esisteva, lei stava già lavorando al MIT (Massachusetts Institute of Technology) su sistemi complessi e innovativi. È stata proprio Hamilton a coniare il termine “ingegneria del software” — una disciplina che oggi è alla base di ogni tecnologia moderna.

Il vero capolavoro di Hamilton avvenne nel luglio 1969. Mentre Neil Armstrong e Buzz Aldrin scendevano verso la superficie lunare, il computer del modulo lunare iniziò a generare un allarme 1202 — un errore critico che avrebbe potuto compromettere l’intera missione.

Il codice scritto da Margaret Hamilton era robusto a tal punto da gestire l’errore automaticamente: il software continuò a funzionare senza interruzioni, permettendo agli astronauti di completare l’allunaggio con successo. Quella non fu una coincidenza: Hamilton aveva anticipato possibili problemi e aveva costruito un sistema di error handling sofisticato che nessuno prima di lei aveva mai tentato.

Margaret Hamilton ricevette numerosi riconoscimenti durante la sua vita, inclusa la Medaglia Presidenziale della Libertà nel 2016.

Per approfondire:

Calcolo di un’orbita astronautica mediante l’integrazione numerica con la calcolatrice grafica

gravitation_turtle.py

from math import *
from turtle import *

# valori di G e M massa Terra
G=6.67E-11; M=5.97E24

# valori orbita geostazionaria
x=4.2164E7; y=0
vx=0; vy=3066

# integrazione numerica
t=0; dt=60
while t<86400:
  setheading(degrees(atan2(vy,vx)))
  goto(x/1E6, y/1E6)
  r=sqrt(x**2+y**2)
  ax=-G*M*x/r**3; ay=-G*M*y/r**3
  vx=vx+ax*dt; vy=vy+ay*dt
  x=x+vx*dt; y=y+vy*dt
  t=t+dt

https://my.numworks.com/python/gianfranco-oddenino/gravitation_turtle

gravitation turtle
gravitation_turtle.py
gravitation_kandinsky.py

from math import *
from kandinsky import *

# valori di G e M massa Terra
G=6.67E-11; M=5.97E24

# valori orbita geostazionaria
x=4.2164E7; y=0
vx=0; vy=3066

# integrazione numerica
t=0; dt=60
fill_rect(159,110,3,3,'blue')
while t<86400:
  set_pixel(160+round(x/1E6),111-round(y/1E6),'black')
  r=sqrt(x**2+y**2)
  ax=-G*M*x/r**3; ay=-G*M*y/r**3
  vx=vx+ax*dt; vy=vy+ay*dt
  x=x+vx*dt; y=y+vy*dt
  t=t+dt

https://my.numworks.com/python/gianfranco-oddenino/gravitation_kandinsky

gravitation kandinsky
gravitation_kandinsky.py

Gestione del sito liceocuneo.it e dei siti web personali

Data: Mercoledì 4 novembre 2020
Ora: 15.00-17.00
Modalità: Google Meet

Argomenti del corso

  • La piattaforma WordPress ™ 5.5.2
  • Le impostazioni del sito
  • La scelta del tema
  • Le pagine e gli articoli
  • I media e i link
  • Il nuovo editor Gutenberg
  • Le gallerie di immagini
  • I video e i contenuti multimediali
  • Utilizzo didattico del sito personale
  • I requisiti per l’accessibilità

Segnalo a tutti i colleghi, che già dispongono di un sito web personale, di verificare in anticipo nei giorni precedenti l’incontro la funzionalità delle credenziali di accesso al proprio sito. In caso di difficoltà potete inviarmi una mail.

Gli altri colleghi, che non dispongono ancora di un sito web personale, potranno accedere al loro nuovo sito personale con delle credenziali provvisorie che fornirò durante il corso e che modificheranno successivamente.

Per confermare la propria adesione al corso, per facilitare l’avvio della conferenza e per avere un punto di scambio condiviso delle informazioni di supporto che fornirò anche in seguito ai colleghi partecipanti, chiedo gentilmente di iscriversi con le proprie credenziali nome.cognome@liceocuneo.it

Interferenza di onde circolari con la calcolatrice grafica

interferenza di onde circolari
Con la calcolatrice grafica Numworks e la sua libreria grafica kandinsky
from math import *
from kandinsky import *

for y in range(222):
  for x in range(161):
    z1 = cos(2*pi/20*sqrt((x+40)**2+y**2))
    z2 = cos(2*pi/20*sqrt((x-40)**2+y**2))
    z = z1+z2
    c = color(0,0,128+int(z*63))
    set_pixel(160-x,y,c)
    set_pixel(160+x,y,c)
Sul PC con le librerie grafiche matplotlib
import numpy as np
import matplotlib.pyplot as plt
from math import pi

x = np.arange(-5, 5, 0.05)
y = np.arange(-4, 4, 0.05)
x, y = np.meshgrid(x, y)
x1 = np.sqrt((x-1)**2 + y**2)
x2 = np.sqrt((x+1)**2 + y**2)
z = np.cos(2*pi*x1)+np.cos(2*pi*x2)

fig, ax = plt.subplots()
fig.canvas.set_window_title('Interferenza di onde circolari')
ax.title.set_text('Interferenza di onde circolari')
ax.set(xlabel='X', ylabel='Y')
ax.contour(x, y, z)

plt.show()

Google annuncia la supremazia quantistica

Con uno studio pubblicato su “Nature” arriva la conferma che il computer quantistico sviluppato dai ricercatori di Google ha superato il più potente supercomputer del mondo costruito da IBM.

L’articolo pubblicato su “Nature” riporta che, grazie al processore quantistico programmabile Sycamore a 53 qubit, è stato possibile completare in appena 200 secondi un’elaborazione che anche al più potente supercomputer del mondo (il Summit di IBM) avrebbe richiesto circa 10.000 anni. Un’affermazione inequivocabile del raggiungimento della quantum supremacy, ossia essere riusciti a battere le prestazioni dei computer tradizionali più potenti in circolazione.

Il traguardo raggiunto ha una grande rilevanza scientifica, non solo tecnologica, “perché finora non si aveva nessuna certezza che un simile risultato si potesse davvero ottenere. Si temeva che non fosse possibile mantenere le caratteristiche di un sistema quantistico anche in un sistema di dimensioni notevoli come questo”.

Articolo completo disponibile sul sito on-line di Le Scienze:

https://www.lescienze.it/news/2019/10/24/news/google_supremazia_quantistica-4592609/