CSE215


Course

CSE215

Title

Foundations of Computer Science

Credits

3

Course Coordinator

Leo Bachmair

Current Catalog Description

A rigorous introduction to the conceptual and mathematical foundations of computer science with special emphasis on recursion and its applications in functional programming as well as reasoning techniques based on propositional logic and mathematical induction.

Prerequisite

One MAT course that satisfies D.E.C. category C or score of level 4 on the mathematics placement examination

Course Goals
  • To provide students with a rigorous introduction to proof techniques including propositional logic and mathematical induction.
  • Introduce recursion as a basic paradigm for computing with functions
  • Introduce fundamental discrete structures such as functions, graphs, and trees.
  • To build a strong theoretical foundation for subsequent courses in the computer science curriculum.
Textbook

James A. Anderson, Discrete Mathematics with Combinatorics, Prentice Hall, 2001.

Major Topics Covered in Course
  • Propositional logic
  • Syntax and semantics (truth tables); logical equivalences and logical consequence; basic proof theory (e.g., modus ponens); boolean algebra; application: digital logic circuits; application: number systems
  • Functions
  • Basic concepts and standard functions; sequences; basic properties of functions; composition of functions
  • Recursion
  • Recursive definitions of functions and sequences; application: functional programming
  • Mathematical induction
  • Principle of mathematical induction; examples of induction proofs; strong induction principle
  • Lists and trees
  • Basic definitions and operations; for both data structures; specific examples of list operations and tree algorithms to illustrate functional programming and mathematical induction
Laboratory Projects

No laboratory projects required.

Course Webpage http://www.cs.sunysb.edu/~cse215