Why Does Theory Matter in Computer Science? (Part 1)

Introduction and Big Ideas: Abstraction and Generalization

If you’re a computer science student, you probably had to take an introductory discrete math course at some point. Did you enjoy it? If so, this talk probably isn’t for you, so you can feel free to skip the rest. (Or not – hopefully you feel like you can still learn something from me!) Jokes aside, it’s actually okay not to enjoy your intro to discrete math course: like, personally, I loved mine, but I also completely hated my discrete probability course and would prefer never to see it again. But I pick on discrete math because I feel like if it’s taught well, it can be a turning point for many people, and it certainly was for me.
Read more...

Some Thoughts on “Academic Training”

I’ve long said that university education starts to make a lot more sense if you look at it as a precursor to academic training. Historically, there have really been two major types of undergraduate university training, in my opinion: there was the liberal arts type of education, which was meant to turn rich people into cultured members of society (several of whom then went on to pursue academic training and scholarly activities, because they were rich and could afford to do so), and the more specialized type, which is meant to make the student literate enough in the major foundational ideas of the field to pursue additional training at the graduate level.
Read more...