CCS CS 2: Foundations of Computer Science
This course is intended to increase your ability to think and communicate like a mathematician, and to appreciate the value of that skill.
Catalog Description
Mathematical foundations of computer science: Introduction to propositional and predicate logic, set theory, functions and relations, mathematical induction and recursion, and an introduction to combinatorics.
For the first time, this course will have a workload that is comparable to a 5-unit course, which constitutes a 25% increase. This extra load is devoted to 2 ancillary topics: elements of:
- LaTex, a markup language for typsetting documents;
- Haskell, a programming language.
Textbook
- Discrete Mathematics and Its Applications, 7th Edition, Kenneth H. Rosen, McGraw-Hill, 2007.
- Programming in Haskell, Graham Hutton, Cambridge, 2007.
References
- Applied Combinatorics, 5th Edition, Alan Tucker, John Wiley, 2007.
- A step-by-step LATEX tutorial
Major Topics Covered in the Course
- Logic
- Basic Structures: Sets & Functions
- Algorithms
- Number Theory & Cryptography
- Induction & Recursion
- Counting
- Discrete Probability - covered in PSTAT 120A
- Advanced Counting Techniques
- Relations
Oral & Written Communications
Students present their solutions to problems to the class. The presentation combines both oral and written communication. Precision and clarity are the coin of this communication realm.
Problem Analysis
The essence of this course is to develop mathematical problem-solving skills that you can apply in a variety of intellectual pursuits.