PROGRAM TITLE | Programming Language Theory and Practice |
INSTRUCTORS |
Nelson, Neal (nealn@evergreen.edu), Shulman, Sherri (sherrishulman@gmail.com), (sherri@evergreen.edu), |
SUBJECT AREA | Computer Science, Logic, Math |
PROGRAM TIMES | Mon 10am-3pm Tues 10pm-3pm Wed 10am-12pm Thu 10am-5pm |
Announcements |
|
PROGRAM DESCRIPTION |
Programming Language Theory and Practice is an advanced Computer Science program. We will concentrate on:
|
REQUIRED TEXTBOOKS |
|
SYLLABI |
CREDIT POLICY |
You cannot get partial credit for any thread: either you get credit for Lambda Calculus or you don't, either you get credit for Formal Languages or you don't, etc. In order to get credit for any thread you must:
If you do the work, you will get credit. The quality of your work will determine the nature of your evaluation. Don't confuse credit with quality. A narrative evaluation allows the faculty to include aspects of your performance that would not ordinarily be reflected in a grade. That works both ways. If you do great work, you get credit AND you get an evaluation that reflects that work. If you work hard but have some areas that you don't understand, we can emphasize your efforts while also commenting on the areas that you still have to work on. If you don't work hard, and there are many areas that you don't understand well, we can also include that in the evaluation. |
HOMEWORK POLICY |
|
CREDIT ALLOCATION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yearly Credit
|
PROGRAM DESCRIPTION |
Fall QuarterLambda CalculusWe will study mathematical foundations of programming languages as developed through the untyped and typed lambda calculus, including syntax, types, semantics, model theory, and the correspondence with logic and proofs (fall). There are two class periods per week with lectures and lab time. We will have weekly assigned readings and assignments from the readings. There will be two exams. Credit Equivalency: Foundations of Programming Languages (4cr upper division science)) Formal Languages 1During the fall and winter the class studied formal languages using the textbook Languages and Machines by Thomas Sudkamp. In the fall we covered the definition of regular sets, grammars, and languages and their properties, context free grammars, normal forms for context free grammars, and finite automata and their properties. Students were evaluated on weekly chapter assignments and two exams. Types and Programming Languages
This course focuses on the the mathematical foundations for types in
programming languages. The approach starts with the development of types
for the Lambda Calculus. The fall quarter emphasizes the core type theory
and the winter quarter leans toward type extensions and implementations.
There are two class periods per week with lectures and lab time.
We will have weekly assigned readings and assignments from the readings.
There will be two exams.
Credit Equivalency: Types and Programming Languages
(4cr upper division science))
Prolog(PROgrammation et LOGique) is a logic programming language widely used in Artificial Intelligence. It is a high-level programming language which enables the user to build programs by stating what they want the program to do rather than how it should do it. Due to Prolog's grounding in first-order predicate logic it is intended to be more analogous with human deductive reasoning than other programming languages.
This course will provide students with the technical skills needed to implement Artificial Intelligence techniques in compact and efficient Prolog programs. By the end of the module students will be able to construct Prolog programs of all sizes and complexity that implement a range of AI techniques. The students will be able to utilise the skills learnt during this course in many areas:
In the fall, students studied the advanced functional programming concepts and techniques using the Haskell programming language. Weekly topics included higher-order functions, programming with lazy evaluation, modules, abstract data types, algebraic data types, type classes, overloading, polymorphism, and an introduction to monads. Students were evaluated based on 8 programming assignments and a final exam. In development. In development.
Machine Learning associated module with Richard Weiss
In development.
In development.
During the winter the students studied higher order functional combinators and applicative functors, monoids, monads (including the state monad) and polymorphic type inference. Students were evaluated based on their programming portfolio of weekly assigned work and one exam. Machine Learning associated module with Richard Weiss
|