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