Course Details

Course Number: 01:198:205
Course type: Undergraduate
Semester 1: Fall
Semester 2: Spring
Semester 3: Summer
Credits: 4
Description:

To introduce the student to the mathematical tools of logic and induction, and to the basic definitions and theorems concerning relations, functions, and sets. Later courses in the computer science curriculum build on the mathematical foundations covered here. Particular emphasis is placed on inductive definitions and proofs, with application to problems in computer science.

Prerequisite information:

01:198:111; 01:640:152. Credit not given for this course and 14:332:312.

- A grade below a "C" in a prerequisite course will not satisfy that prerequisite requirement.

Course links: 01:198:111 - Introduction to Computer Science
This course is a Pre-requisite for the Following Courses: 01:198:206 - Introduction to Discrete Structures II, 01:198:314 - Principles of Programming Languages, 01:198:336 - Principles of Information and Data Management, 01:198:419 - Computer Security, 01:198:439 - Introduction to Data Science, 01:198:440 - Introduction to Artificial Intelligence, 16:198:522 - Network and Combinatorial Optimization Algorithms, 16:198:525 - Brain-Inspired Computing
Topics:

Basic Set Notation, Propositional Logic, Truth Tables, Boolean Circuits
First-Order Logic, Predicates. Quantifiers
Mathematical Induction: Program Correctness, Trees, Grammars
Relations: Closures of relations. Orders, Equivalence Relations, Functions
Finite-State Machines

Expected Work: Regular class assignments; no programming.
Exams: Quizzes, 1 or 2 hourlies and a final exam.
Learning Goals:

Computer Science majors ...

  • will be prepared to contribute to a rapidly changing field by acquiring a thorough grounding in the core principles and foundations of computer science (e.g., techniques of program design, creation, and testing; key aspects of computer hardware; algorithmic principles).
  • will acquire a deeper understanding on (elective) topics of more specialized interest, and be able to critically review, assess, and communicate current developments in the field.
  • will be prepared for the next step in their careers, for example, by having done a research project (for those headed to graduate school), a programming project (for those going into the software industry), or some sort of business plan (for those going into startups).