A computational introduction to number theory and algebra