Course Title:

Models of Computation
Instructor(s):

tsiknis 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.

Extended Description:

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?

TA Qualifications:

<ul>
<li>TOOL KNOWLEDGE: Magic Box circuitry toolkit (or any digital logic circuitry experience), and Digital logic simulator (Logisim or TkGate these days); </li>
<li>SKILLS: TAs should be comfortable with propositional and first-order logic, as well as with proofs in general. Ability and willingness to work as part of a large course staff team. Enthusiasm, patience, and empathy required to help first-year students from many disciplines master challenging CS concepts.</li>
</ul>