De la cartele perforate la IA: evoluția programării