Theory of Programming Languages

This is a core course in the Computer Science Core Courses

Introduction
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
''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.''
 * Introduction to Computer Science
 * Introductory Discrete Mathematics for Computer Science

Lessons

 * 1) Introduction to Theory of Programming Languages
 * 2) General Syntactic Structure
 * 3) Imperative Programming
 * 4) Static Programs
 * 5) Flow Control in Programming
 * 6) Object Oriented Programming
 * 7) Functional Programming
 * 8) Logic Programming
 * 9) Conclusion

Textbooks

 * Programming Languages Via Wikibooks.

Next Course
Introduction to Theory of Computation

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.
 * Azotochtli (talk) 20:44, 28 July 2012 (UTC)

Related Wikiversity resources

 * Discrete Mathematics for Computer Science
 * Introduction to Computer Science
 * Introduction to Information Technology – needs work. Will you help out?