Fall CPSC 231 (Intro to CS with Python), Required - This course was a nice introduction to the basics of programming with Python. It was fairly easy for me since I had some prior experience with coding, but I think it would be manageable for beginners too. The only downside was that the assignments were graded by a computer program, so even a minor mistake like a typo or a missing comma could lower your mark significantly. I heard that this course is better organized and taught than CPSC 217, which is the online version of it. I would give this course a 7/10 because it was good but not very challenging. PHIL 279 (Logic and Proofs), Required - This course was pretty interesting and different. It teaches you how to use logic and mathematical symbols to construct and evaluate arguments, and it required a certain way of thinking that was not intuitive at first. I took the online assessment version of the course, which gave me more flexibility but also required more self-disci...