Logic and Computation
CS 2800 Fall 2014

College of Computer and Information Science
Northeastern University


This course continues the study of how to design useful programs, which you started in Fundamentals of Computer Science 1. Instead of programming techniques, here we will emphasize how to reason ("think") about programs. The goal is to demonstrate that the programs we design are reliable, i.e. that they are free of certain types of "bugs" and satisfy other, user-specified properties, no matter what the input.

The vehicle to achieving such apparently miraculous results is mathematical logic: We will learn how computation can be captured in logical terms, and how logical techniques can help us reason effectively about programs and computation.

Use the links on the left to navigate to the information you need.