Use data and type for courses and sections
Use where for readability (?)
Add .gitignore
Rename choice -> scheme
Same thing but in Haskell
Do not print section # in timetable
Print sections in order
Use recursion for section_choices()
Use any() to check conflict in resolve()
Brute force algorithm, self-contained Python script