Posted on

NUS Computing Review: CS3234 Logic and Formal Systems

Content:

Definite Clause Grammar

Formal Syntax of Propositional Logic

Prolog

SAT

Boolean Algebra

Classical Logic with Coq

Natural Deduction

Peano’s Natural Numbers

Propositional logic

Lambda Calculus

First Order Logic

I have a relatively unique perspective on this, which is that I took it as a first year student. Although the only prerequisite is CS1231, I do recommend getting more experience in other CS topics before taking this mod as other people already tend to know them.

Content-wise, as someone who loves logic, it was a very nice pick of topics. We don’t go into much depth into each topic, it’s more of an exposure mod for us to know what the relevant things in this field are and get a rough understanding of them and find out more for ourselves. I think however if you want a proper course on logic maybe MA4207 would be better (I haven’t taken it yet so I can’t confirm).

For me, the hardest part of this course was Prolog. Before this module, I didn’t even know there was such a thing as Logic programming. In class we went over it pretty quickly and I could not keep up. But once I did get the hang of a few things, I quickly saw the beauty and elegance of Prolog. It is a language of expressing ideas quite unlike any other programming language. Unfortunately, at the end of the sem I don’t think I can call myself really proficient in the language. The Prolog project itself took me a long time due to my suckiness at it.

Coq is easy to pick up at the start, but it’s very hard to get good at it too, and yeah I pretty much flopped my finals partly cuz of it.

Prof Bressan himself is a very good prof I feel. You can tell he has passion and experience in the subject, and he is very approachable as well. During the Covid situation, he also put in extra effort into the videos he made, where he used a lot of editing. I have to say the project and exam questions he sets are pretty fun and interesting, but also challenging.

Overall, if you want a broad exposure to prominent topics in logic, and to Prolog and Coq, this is the module for you.

Head over to our Shop for more module content!