CS 301K  Foundations of Logical Thought
Elaine Rich

Alan Cline




Schedule of Topics


Class Information

     Our email addresses





     Problem sessions





     Circuit Design

     Finite State Machines


Logic Tools and Games

    TruthTable Builder

    SETS game


Academic Integrity


In this class, you’ll learn to think abstractly, reason formally, and connect those skills to the design of computing systems.  The goal of the class is to give you a solid foundation on which you’ll build as you take additional Computer Science classes. 


The major topics we’ll cover are:

·       Boolean (Propositional) Logic:  This logic forms the core of almost every other logical system.  It’s also the basis for computer circuit design.

·       Boolean Logic Proofs:  Here we’ll learn the fundamental structure of reasoned arguments.

·       Predicate (Quantified) Logic: Now we’ll have the power to make useful statements about our world.  We’ll practice translating between “natural” statements and formal, logical ones.

·       Predicate Logic Proofs:  We’ll extend our proof techniques so that they work in this more powerful system.

·       A Richer Catalogue of Proof Techniques, including mathematical Induction

·       Sets: We’ll formalize our intuitive idea of what a set is and see how we can then prove useful claims.

·       Relations and functions: We’ll formalize our intuitive idea of relating objects to each other.  We’ll look at one important application of this formalism: Real world database management systems.


There is no paper textbook for this class.  Instead, we have created an online learning environment, FREGE, hosted on the Quest platform.  You will have to get a Quest account for this class.  You will do a lot of your learning outside of class, as you work through the online materials in FREGE.  In class we’ll discuss what you’ve learned and explore new ways to exploit your skills.

Target Audience

This course is designed for beginning Computer Science students and for other students who want to develop their formal reasoning skills.  Examples are chosen from a variety of computing applications in order to make it clear why this kind of theoretical material is useful for computer scientists and programmers.


There are no formal prerequisites.


If You Have Signed Up for the Class (or Are on the Waiting List)

You should read the Class Policies page to find out what you should do to be prepared for class. 

Contact Information

Elaine Rich - ear@cs.utexas.edu

Alan Cline   - cline@cs.utexas.edu