monsoon 2024: cs-2260
Logistics:
Credits: | 4 |
Classes: | Tuesdays and Thursdays, 4:40pm to 6:10pm |
Classsroom: | AC-02-LR-213 |
Instructor Office Hours: | Fridays, 3:00pm to 5:00pm at AC04-705 |
Teaching Assistant: | Elvia Dey (elvia.dey_asp25@ashoka.edu.in) |
Instructor Office Hours: | Thursdays, 2:30pm to 3:30pm at AC04-736 |
Links:
Course Outline and Lectures |
Course Project Guidelines |
Scribing Guidelines |
Resources and Reading Materials |
Feedback, Appraisals, and Reflection |
A Limerick |
Course Description: Symbolic logic presents an intriguing challenge in computer science: balancing the need to express complex ideas with the ability to solve problems efficiently. This course explores how we can create systems that are powerful enough to describe useful scenarios, yet still allow computers to reason about them effectively. We'll examine various approaches to this balance, learning how theorists and practitioners have developed ways to represent knowledge and automate reasoning. Without requiring any prior background in logic or advanced mathematics, this course offers a gentle yet rigorous introduction to deductive systems, propositional and predicate calculi, and higher-order logic. We will also learn about the applications of these formalisms to constraint solving, program verification, automated reasoning, and interactive theorem proving. The objectives of this course are to:
- Develop a foundation in the core concepts and deductive systems of propositional logic, predicate logic, and higher-order logics, including their syntax, semantics, and proof techniques,
- Gain knowledge of the practical applications of symbolic logic in a variety of domains, such as constraint solving, program verification, automated reasoning, and interactive theorem proving,
- Understand the trade-off between expressiveness and algorithmic tractability in logical formalisms, and the importance of finding reasonable compromises between these conflicting goals,
- Understand the fundamental limitations of formal logic, reasoning, and computation, and
-
Develop hands-on experience working with tools like SAT solvers and interactive theorem provers,
bridging the gap between theoretical reasoning and practical considerations.
This course builds upon concepts such as set theory, relations, and proofs covered in Quantitative Reasoning and Mathematical Thinking (FC-0306), Introduction to Computer Science (CS-1101/1102), and Discrete Mathematics (CS-1104). It also provides essential skills for analyzing and reasoning about the concepts covered in Data Structures (CS-1203), Design and Analysis of Algorithms (CS-1205/1206), Theory of Computation (CS-1349/2349) Programming Language Design and Implementation (CS-1319). This course serves as a foundation for advanced electives in computer science including interactive theorem proving, model checking and verification, computational complexity theory, and Artificial Intelligence (CS-2322). This course overlaps with Symbolic Logic (PHI-1060/CS-2160).
Prerequisites: First, the course will require a certain amount of mathematical maturity at least at the level of FC-0306, and preferably at the level of CS-1101/02. Second, functional knowledge of a programming language (preferably Python) is required for completing the assignments and projects in this course.
Grading: A serious student of a subject is not an idle spectator to a variety show but learns best by active involvement. This is particularly true of mathematical subjects. This course is structured to incentivise involvement through the following:
- Scribing: Each student will be responsible for taking detailed notes during the lectures assigned to them and drafting them in LaTeX. This exercise encourages active listening and helps consolidate understanding of the material. It constitutes 10% of the grade.
- Course Project: Students will undertake a project on constraint solving (which requires programming). This hands-on experience allows for practical application of course concepts and fosters deeper engagement with the subject matter covered in Module 3. The project may be done either alone or in pairs. Project topic needs to be approved by the instructor. It carries 20% of the grade.
- Assignments: The course includes 10 problem sets. These are designed to reinforce lecture material and develop practical skills in applying theoretical concepts. They constitute 40% of the grade.
- Examination: Two in-class, closed-book, 1.5 hour examinations carry the remaining 30% of the grade. Students are permitted to bring a single, two-sided "cheat sheet" of their own creation.
Assignments: Assignments will be available every Tuesday after class and will be due by 9am the following Monday. We aim to grade assignments in the same week. Please use turnitin.com to submit assignments. No extensions will be granted except in the case of medical emergencies, proof of which must be emailed to the teaching assistant within 24 hours of the request.
Audit Requirements: The audit grade for this course will be evaluated based only on assignments and projects (students must complete at least 6 of the 10 assignments). Students auditing the course need not take the exams or meet the scribing requirements. Students are welcome to audit this course without a grade.
Policies: Students are expected to review and abide by Ashoka's Academic Integrity Policy (MyAshoka → Information and Documents → Office of Academic Affairs). Attendance is not mandated for this course, with two exceptions: (1) Each student will be assigned to scribe for one or more classes; attendance is required for the assigned classes. (2) All students are required to attend and actively participate in the discussion during Lecture 11 (October 1) and Course Project Presentations (November 28).
Support: Students are encouraged to reach out to University offices such as the Office of Learning Support, Ashoka Center for Well-Being, and Center for Writing and Communication for additional support.
Calendar:
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
---|---|---|---|---|---|---|
Aug 25 | Aug 26 |
Aug 27 Lecture 1 |
Aug 28 |
Aug 29 Lecture 2 |
Aug 30 Office Hours |
Aug 31 |
Sep 1 |
Sep 2 |
Sep 3 Lecture 3 Assignment 1 |
Sep 4 |
Sep 5 Lecture 4 Office Hours |
Sep 6 |
Sep 7 |
Sep 8 |
Sep 9 Assignment 1 Due |
Sep 10 Lecture 5 Assignment 2 |
Sep 11 |
Sep 12 Lecture 6 |
Sep 13 Office Hours |
Sep 14 |
Sep 15 |
Sep 16 Assignment 2 Due† |
Sep 17 Lecture 7 Assignment 3 |
Sep 18 |
Sep 19 Lecture 8 |
Sep 20 Office Hours |
Sep 21 |
Sep 22 |
Sep 23 |
Sep 24 Lecture 9 Assignment 4 |
Sep 25 Assignment 3 Due |
Sep 26 Lecture 10 |
Sep 27 Office Hours |
Sep 28 Project Proposal Appraisal I |
Sep 29 |
Sep 30 Assignment 4 Due |
Oct 1 Lecture 11* |
Oct 2 Office Hours |
Oct 3 Mid-term Exam |
Oct 4 |
Oct 5 |
Oct 6 |
Oct 7 |
Oct 8 |
Oct 9 |
Oct 10 |
Oct 11 |
Oct 12 |
Oct 13 |
Oct 14 |
Oct 15 Lecture 12 Assignment 5 |
Oct 16 |
Oct 17 |
Oct 18 Office Hours |
Oct 19 Project Check-in I |
Oct 20 |
Oct 21 Assignment 5 Due |
Oct 22 Lecture 13 Assignment 6 |
Oct 23 |
Oct 24 |
Oct 25 Office Hours |
Oct 26 |
Oct 27 |
Oct 28 Assignment 6 Due |
Oct 29 Assignment 7 |
Oct 30 Office Hours |
Oct 31 No make-up lecture scheduled. |
Nov 1 |
Nov 2 |
Nov 3 |
Nov 4 Assignment 7 Due |
Nov 5 Lecture 14 Assignment 8 |
Nov 6 |
Nov 7 Lecture 15 |
Nov 8 Office Hours |
Nov 9 Project Check-in II Appraisal II |
Nov 10 |
Nov 11 Assignment 8 Due |
Nov 12 Lecture 16 Assignment 9 |
Nov 13 |
Nov 14 Lecture 17 |
Nov 15 Office Hours |
Nov 16 |
Nov 17 |
Nov 18 Assignment 9 Due |
Nov 19 Lecture 18 Assignment 10 |
Nov 20 Project Submission |
Nov 21 Lecture 19 |
Nov 22 Office Hours |
Nov 23 |
Nov 24 |
Nov 25 Assignment 10 Due |
Nov 26 Lecture 20 |
Nov 27 |
Nov 28 Project Presentations* |
Nov 29 Office Hours |
Nov 30 |
Dec 1 |
Dec 2 |
Dec 3 |
Dec 4 Reading Week |
Dec 5 |
Dec 6 Office Hours |
Dec 7 Course Reflection |
Dec 8 | Dec 9 | Dec 10 |
Dec 11 Final Exam Exam Week |
Dec 12 | Dec 13 | Dec 14 |
† Due date may be extended by one day.
‡ Lecture may be repeated upon request.