Why take CSE 105?

Believe it or not, this material is essential to being a computer scientist. It gives you the basic formal tools to understand computation and its complexity. These are used in many different areas of computer science, but particularly in .... compilers (Professor Ferrante's research area). So learning the material well in this course (particulary regular expressions and context-free grammars) will give you a head-start on doing well in CSE 131A, Compilers. If you have already had CSE131A, then you have a head start on this class already!

The material in the class is formal, and hence mathematical. Don't let this put you off; programming is formal too. You just need to learn what the ``rules'' of these formal systems are, just like you learn the ``rules'' of Java or C. The course also introduces the notion of a formal proof. Constructing a proof of a statement is a lot like writing a program.