Programming languages are the means by which humans solve problems on computers. They express algorithms in a sufficiently precise manner for execution on computers.
Humans use a variety of strategies to solve problems that range from search to logic. Programming languages too are designed to reflect such strategies. For example, today's popular languages such as Java, C++ and Python give a sequence of instructions which together solve a problem; LISP uses a functional approach while Prolog is designed for logic.
In this course, students learn the general concepts that are common to all programming languages so that they learn the underlying abstractions and problem-solving strategies. Further, they learn to understand and appreciate the salient features of many programming languages. They learn how to make a critical choice of the level of abstraction needed to solve a problem and pick a suitable language. The assignments will use languages familiar to a typical CS UG student for illustration and self-exploration.
Unit | Weeks |
---|---|
I. Introduction
| 1 - 2 |
II. Programming Life Cycle
| 2 - 4
Reading Material |
III. What makes successful
programming langauge?
| 4 - 5 |
IV. Design Features
| 5 - 13 |
V. Scope and Runtime
Environments
| 13 - 18 |