W latach 1990-1996 był rektorem Politechniki Gdańskiej, pełnił też funkcję Rady Rektorów Pomorza Nadwiślańskiego i szefa Konferencji Rektorów Polskich Uczelni Technicznych.
Od 1997 senator IV, V, VI i VII kadencji. W 1997 r. został senatorem AWS i członkiem Zgromadzenia Parlamentarnego Rady Europy.
W latach 1996-1999 był Wiceprzewodniczącym Rady Głównej Szkolnictwa Wyższego a od 2000 do 2001 r. był ministrem edukacji narodowej w rządzie Jerzego Buzka. Następnie był senatorem Bloku Senat 2001 i przedstawicielem izby wyższej polskiego parlamentu w Konwencie Unii Europejskiej. W wyborach parlamentarnych w VI kadencji został wybrany z listy PO a w 2007 po raz drugi uzyskał mandat senatorski.