Yazılım mühendisliğinin günümüzde ağırlıklı olarak erkeklerin çalıştığı bir alan olduğu doğru. Peki, bu kavramı ilk ortaya atan kişinin bir kadın olduğunu biliyor muydunuz? Üstelik bu kadın, 1969’da Apollo 11 astronotlarının Ay’a güvenli şekilde inmesini sağlayan yazılım ekibinin başındaydı.

20 Temmuz 1969. Neil Armstrong ve Buzz Aldrin Ay’a iniş yapmak üzereydi. Birkaç dakika içinde, Dünya’nın tek doğal uydusuna ayak basan ilk insanlar olacaklardır. Tam o sırada Ay modülü Eagle’ın bilgisayarı beklenmedik bir uyarı verir: “Alarm 1202.” Sonraki 278 saniye içinde dört alarm daha duyulur: “Alarm 1202”, “Alarm 1201”, “Alarm 1202”, “Alarm 1202.”
Sistem aşırı yüklenmişti. Ancak Armstrong ve Aldrin, Dünya’daki NASA ekibinden inişe devam etmeleri yönünde talimat aldı. Çünkü NASA’daki ekip, yazılımı hazırlayanların işini iyi yaptığını ve sisteme bir güvenlik ağı yerleştirdiğini bilmektedir.
O sırada Margaret Hamilton, nefesini tutarak sonucu beklemektedir. Apollo 11’in uçuş yazılımının geliştirilmesine liderlik eden isim odur.
Peki, Margaret Hamilton kimdi?

Margaret Heafield Hamilton, 17 Ağustos 1936’da Indiana’nın Paoli kasabasında doğdu. Küçük yaşlardan itibaren matematiğe ilgi duyuyordu. Üniversitede matematik eğitimi aldı, felsefe alanında da yan dal yaptı. Mezun olduktan sonra yolu, o dönemde henüz bugünkü kadar bilinen bir alan olmayan yazılım ve mühendislikle kesişti.
1959’da MIT’de çalışmaya başladı. Burada, kaos teorisinin öncülerinden Edward Norton Lorenz ile araştırmalar yürüttü ve ilk kez bir bilgisayarla çalışma fırsatı buldu.
Daha sonra MIT Lincoln Laboratuvarı’nda, Amerika’nın ilk hava savunma sistemlerinden biri için düşman uçaklarını tespit etmeye yarayan yazılımlar üzerinde çalıştı. Birkaç yıl sonra ise kendini, insanı Ay’a götürecek kodların başında bulacaktı.
Aslında Hamilton’ın planı başkaydı. Soyut matematik üzerine lisansüstü eğitim almak ve Brandeis Üniversitesi’ne gitmek istiyordu. Ancak ABD’nin uzay programı ilgisini çekti ve ona bambaşka bir kariyerin kapısını açtı. Böylece Apollo projesine katılan ilk programcılardan biri oldu. Üstelik bunu, evli ve küçük bir çocuk annesiyken başardı.
Margaret Hamilton Ve Onun Diferansiyel Denklemleri
Apollo 11’in Ay modülündeki bilgisayarın belleği bugünün ölçüleriyle inanılmaz derecede küçüktü. Bilgisayarda yalnızca yaklaşık 74 kilobaytlık salt okunur bellek bulunuyordu. Karşılaştırmak gerekirse, günümüzde sıradan bir akıllı telefonun belleği bunun milyonlarca katına ulaşabiliyor.
Üstelik 1960’larda programlama bugünkünden tamamen farklıydı. Modern programlama dilleri yoktu. Bilgisayarlar da bugünkü küçük ve kullanışlı cihazlara benzemiyordu.

Ay modülündeki bilgisayarın en önemli görevlerinden biri, modülün hızını, yüksekliğini ve dönüşünü belirlemekti. Bunların hepsi sürekli değişen değerlerdi. Bu yüzden bilgisayar, temelde diferansiyel denklemlerle çalışıyordu.
Diferansiyel denklemler yalnızca x ve y gibi değişkenleri değil, bu değişkenlerin değişim hızlarını da hesaba katar. Bu tür denklemler, değişen her şeyi açıklamak için kullanılmaktadır. Ancak bütün diferansiyel denklemleri çözmek için geçerli tek bir yöntem yoktur.
Bunu basit bir örnekle düşünelim. Diyelim ki bir uzay aracı sabit bir ivmeyle, yani a ivmesiyle hareket ediyor. Bu aracın belli bir t süresi içinde ne kadar yol aldığını bulmak istiyoruz. Başlangıç konumunu x₀, başlangıç hızını ise v₀ olarak biliyoruz. Bu problemi tam olarak çözmek için ivme, hız ve konum arasındaki ilişkiyi gösteren diferansiyel denklemlerden yararlanırız.
Bazı durumlarda bu denklemlerin çözümü doğrudan bulunur. Ancak doğrudan çözüm mümkün değilse, sonuca adım adım yaklaşırız..
- xₙ₊₁ = xₙ + vₙΔt
- vₙ₊₁ = vₙ + aΔt
Burada Δt çok küçük bir zaman aralığını gösterir. Örneğin Δt = 1 saniye olsun. Önce başlangıç konumu ve başlangıç hızı kullanılarak bir saniye sonraki konum ve hız hesaplanır. Sonra bu yeni değerler tekrar aynı denklemlere yazılır. İşlem tekrarlandıkça, uzay aracının belirli bir süre sonunda ne kadar yol aldığı yaklaşık olarak hesaplanır.

İyi Bir Yazılım Apollo 11 Görevini Nasıl Kurtardı?
Hamilton ve onun dönemindeki programcılar önce gerekli matematiksel denklemleri oluşturuyor, sonra bunları bilgisayarın anlayabileceği açık komutlara çeviriyordu. Bu komutların hangi kayıtları kullanacağını da kendileri belirlemek zorundaydı. Son aşamada ise bütün bu talimatlar 0 ve 1’lerden oluşan bir dizgeye dönüştürülüyordu.
Kod yazıldıktan sonra bile iş bitmiyordu. O dönemin bilgisayarlarında bugünkü gibi yazı yazıp kodu çalıştırabileceğiniz giriş alanları yoktu. Bir programı çalıştırmak için kodun önce kâğıt şeritlere delinmesi gerekiyordu. Şeritteki bir delik 1’i, deliğin olmaması ise 0’ı temsil ediyordu.
Çalışan bir anne olarak Hamilton, akşamları ve hafta sonları çalıştığında küçük kızı Lauren’ı da bazen yanında laboratuvara götürüyordu. Bir gün dört yaşındaki Lauren, uçuş simülatöründe rastgele tuşlara bastı ve bilgisayarın çökmesine neden oldu. Çünkü simülasyon uçuş hâlindeyken, kalkış öncesi çalışması gereken bir programı başlatmıştı. Böylece iki program aynı bellek alanını kullanmaya çalışmıştı.

Bu olay Hamilton’ın aklında önemli bir soru doğurdu: Ya gerçek bir görev sırasında benzer bir şey olursa? Bir astronot yanlış anda yanlış komutu verirse ya da sistem beklenmedik bir yükle karşılaşırsa ne yapılacaktı?
Hamilton, böyle durumlarda yazılımın tamamen çökmesini engelleyecek bir sistem geliştirmek istiyordu. NASA başlangıçta bu fikre pek sıcak bakmadı. Ancak sonunda bu yaklaşım kabul edildi.
Ekibiyle birlikte, acil durumlarda programları öncelik sırasına göre yeniden düzenleyebilen bir güvenlik ağı geliştirdi. Böylece bilgisayar aynı anda çok fazla işlemle karşılaştığında, daha az önemli görevleri bırakıp en kritik işlemlere odaklanabilecekti.
Bu öngörü, Apollo 11’in Ay’a inişi sırasında hayati önem taşıdı. Buzz Aldrin, Ay modülünde “randevu radarı” olarak bilinen sistemi açmıştı. Bu radar, modülün daha sonra komuta modülüyle yeniden kenetlenebilmesi için gerekliydi. Ancak inişin son aşamasında bilgisayar zaten yoğun şekilde çalışıyordu. Radarın ek verileri sistemi zorladı ve ekranda tekrar tekrar hata mesajları belirdi.
İşte o anda Hamilton ve ekibinin geliştirdiği güvenlik ağı devreye girdi. Bilgisayar tamamen durmak yerine, iniş için en önemli işlemleri önceliklendirdi.
Apollo Görevi Sonrasında Margaret Hamilton
Sonunda Eagle güvenli şekilde Ay yüzeyine indi. Böylece 1969’da insanlık, tarihte ilk kez başka bir gök cisminin üzerine ayak bastı.

Margaret Hamilton’ın bu başarıdaki payı uzun yıllar boyunca hak ettiği kadar görünür olmadı. Ancak 2016’da, dönemin ABD Başkanı Barack Obama ona Başkanlık Özgürlük Madalyası verdi. O sırada 80 yaşında olan Hamilton, yazılım mühendisliğinin tarihindeki en önemli isimlerden biri olarak daha geniş kitleler tarafından tanınmaya başladı.

Hamilton, günümüzde hâlâ özellikle genç kadınlara ilham kaynağı olmaya devam ediyor ve mühendislik alanındaki cinsiyet eşitliğini teşvik eden önemli bir figür olarak anılıyor.
Kaynaklar ve ileri okumalar
- Margaret Hamilton Led the NASA Software Team That Landed Astronauts on the Moon. Yayınlanma tarihi: 14 Mart 2019; Bağlantı: https://www.smithsonianmag.com
- Meet Margaret Hamilton, the badass ’60s programmer who saved the moon landing. Yayınlanma tarihi: 14 Mart 2019. Kaynak site: Vox. Bağlantı: Meet Margaret Hamilton, the badass ’60s programmer who saved the moon landing
Matematiksel



