|BU CAS CS 511|
|Object-Oriented Software Principles|
OverviewObject-oriented Software Principles is a course that introduces students to some fundamental principles and techniques in object-oriented programming. Howewer, there is always logic before principles and techniques. We plan to spend the first half of the course on logics: propositional logic, predicate logic, linear (propositional and predicate) logic, etc. In the second half of the course, we are to make use of some concerete and interesting examples to demonstrate a programming style that unifies formal specification (based on the logics presented in the first half) with implementation. In particular, we are to make essential use of linear types to model objects accurately as well as effectively. At the end of course, we will also give a brief introduction to linear temporal logic (LTL).