CS270 Syllabus
CS270 Syllabus
error on line 103 at column 44: Double hyphen within comment: <!--Textbook__________
error on line 112 at column 24: Double hyphen within comment: <!--Textbook__________---></p>
<p class="calibre1"><b
error on line 137 at column 45: Double hyphen within comment: <!--Textbook__________---></p>
<p class="calibre1"><b
error on line 156 at column 367: Double hyphen within comment: <!--Textbook__________---></p>
<p class="calibre1"><b
Fall 2022-2023
3 Credits
Instructors
Extention: 215-895-2347
Extention: 215-895-2474
Teaching Assistant(s)
Vanessa Martinez
Office: CLC
Neil Kanakia
Office: CLC
Course Description
Introduces formal logic and its connections to Computer Science. Students learn to
translate statements about the behavior of computer programs into logical claims and to
prove such assertions using both traditional techniques and automated tools. Considers
approaches to proving termination, correctness, and safety for programs. Discusses
propositional and predicate logic, logical inference, recursion and recursively defined
sets, mathematical induction, and structural induction.
1. Functional Programming
2. Recursion, Recursive Definitions and Induction
3. Propositional and Predicate Logic
4. Formal Proof using Natural Deduction
5. Applications of Logic to Computer Science
6. Divide and Conquer Algorithms and Recurrence Relations
7. Program Specification and Verification
8. Automated Reasoning
9. Termination Analysis
10. Test Case and Counter Example Generation
This is a required course for all Computer Science and Software Engineering students.
It should also be of interest to Computer Engineering, Mathematics students and
students with an interest in logic and computation.
Prerequisites