Git Product home page Git Product logo

cs-f214's Introduction

CS-F214

Logic In Computer Science

This directory includes my assignments and practice for Logic In Computer Science Course offered at BITS-Pilani (2017-18). I don't claim copyright of the problem statements and practice code provided in this Repository. Also the contents of this directory are not availible under any open source license.
The solutions were a combined effort of Divesh Uttamchandani and Rahul Khapre. If you want to use the assignment code in this repository, please write to [email protected]

Resources

Prolog

The resources used for learning prolog for the assignment include:

  1. IIT-KGP Nptel Course on AI - lectures 13 to 15 [VIDEO]
  2. Derek Banas - Learn Prolog in one Video. [VIDEO]

Logic

  1. Stanford Intro to Logic [TEXT]

Important Notes

Prolog

  • One of the key points about prolog is that it is a declarative programming language, and control flow of the program is pre-specified. If we draw the flowchart for a prolog program we will get an And-Or tree.
    i.e
    1. there is a OR between all the predicates listed.
    2. there is an AND between the statements written within a predicate (MOSTLY).
    3. there is a THERE EXISTS within a single predicate. i.e it returns true even if it finds a single correct match of all statements within a predicate
    4. there is a FOR EVERY between the overall predicates i.e all predicates are tested even after a matching predicate is found.
    5. we can convert THERE EXISTS to FOR EVERY for a single predicates by using 2 NOT's. For details refer to the comments in the code. (Though this is easy to code but makes the predicate only good for checking and not good for producing results - related to P vs NP another way to achieve FOR EVERY is to use recurrsion)
    6. there is an OR between various solution that prolog proposes.

Logic

  • Logic in CS is a meta level course, we are doing proofs about proofs. Keeping this in mind makes the learning process quite easier.

cs-f214's People

Contributors

diveshuttam avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.