Computer Science 340 (Detailed Information)IntroductionThe 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. PrologA crash course in Prolog.
HaskellA condensed first course in functional programming. Some practice before the theory.
|
| |