Note that the information presented here does not necessarily reflect the most up to date syllabus or course information. Rather this information is intended to provide a general overview of course content from previous offerings.
The main theme of the course is to teach two alternative models of computation to the student: functional programming (by introducing Haskell), and logic programming (by introducing Prolog). To round out the academic value of the course, we will spend a little time talking about programming languages in general. We will talk a little about syntax and semantics, we will see how language features are realized, and how to evaluate the features of a language.
Functional and logic programming languages are, at a very superficial level, quite different from the languages that most modern students are taught from day one. But on a deeper level, the differences are not as great as it might seem at first. The main difference is perspective. All programming languages formalize the idea of computation. Each language paradigm looks at computation from a slightly different angle. By learning how to look at computation from different angles, the student's skills are strengthened, and the number of ways to think about problem solving with computation is increased.
Neither Haskell nor Prolog is used widely in industry. But it is a reality that in the "real world," a computer scientist will be required to learn new languages (even ones that have not been invented yet!) and quickly become productive using them. The skill of learning a new language will no doubt benefit the student as much as or more than learning any particular programming language.
A crash course in Prolog.
Topics
A condensed first course in functional programming. Some practice before the theory.
Topics