software curriculum