CPSC 121 explores formal modeling systems that help us to understand and to explore the capabilities of computers and, more generally, of any problem solving process. Our exploration of these systems will be guided by the desire to answer the following four practical questions:
- How can we convince ourselves that an algorithm does what it's supposed to do?
- How do we determine whether or not one algorithm is better than another one?
- How does the computer (e.g. Dr. Racket) decide if the characters of your program represent a name, a number, or something else? How does it figure out if you have mismatched " " or ( )?
- As of 2012, processors have two to three billion transistors. How can we build a computer that is able to execute a user-defined program?
Physical and mathematical structures of computation. Boolean algebra and combinations logic circuits; proof techniques; functions and sequential circuits; sets and relations; finite state machines; sequential instruction execution.