Theory of programming languages
This is a required course in the Computer Science Core Courses
Welcome to the course! Understanding the underlying logic behind programming languages is vital for comprehending Computer Science concepts - ranging from programming to systems design. This course is designed to acquaint you with the subject matter and give you a groundwork for further study.
Due to the open nature of Wikiversity you are free to browse through these courses at whatever pace you desire. However, before you begin this course you should consider reviewing the material covered in the perquisite courses (listed below) to ensure that you are prepared to learn this content.
In each lesson there is an objective at the top of the page, review these points and keep them in mind as you go through the lesson. At the end there is an assignment to test your understanding and further explain the material. Once you have finished the entire course you may move on to the next course in the computer science category.
(Note: Many of these lessons are stubs, and they need a lot of help. Please excuse the mess - and help out if you can!).
Prerequisites are courses it is suggested you understand before you attempt this course. If you're having a hard time understanding the material in this course, make sure you understand these prerequisites first.
Next Course 
Active Participants 
Despite the best efforts of the authors, the material in this course is imperfect. If you have a question or otherwise need help with this course, please post on the Help Page.
You may also contact those involved with developing this course below. When new active participants sign in please use 4 tildes (~) to correctly display the username.
We also encourage you to join as an instructor. If you can't teach the course anymore, please remove your name from the list of active participants.
Related Wikiversity resources 
Programming Languages, concepts and constructs by Ravi Sethi 1996