Ukończył Liceum Ogólnokształcące im. Jana Zamoyskiego w Lublinie (wówczas noszące nazwę VI Liceum Ogólnokształcące TPD w Lublinie), a w roku 1957 został laureatem Olimpiady Fizycznej. W 1959 uczestniczył w zespole tworzącym oprogramowanie pierwszego polskiego komputera, noszącego nazwę XYZ.
W 1962 ukończył studia na Wydziale Elektroniki Politechniki Warszawskiej. W 1964 otrzymał doktorat z zakresu maszyn matematycznych. Habilitował się w 1966. W czasie pracy w University of Pennsylvania (1968) prowadził badania nad algorytmami genetycznymi. W roku 1973 otrzymał tytuł naukowy profesora nadzwyczajnego, a w 1981 – profesora zwyczajnego.