A programming language is a programmer’s principal interface with the computer. More than just knowing how to program in a single language, programmers need to understand the different styles of programming promoted by different languages. Understanding the variety of programming languages and the design tradeoffs between the different programming paradigms makes it much easier to master new languages quickly. The topic covered will include Abstract Machines, How to Describe a Programming Language, Names and The Environment, Memory Management, Control Structure, Control Abstraction and Structuring Data.
This course aims two different programming styles, imperative and functional programming. Its primary intention is to develop key programming and problem-solving skills but it has a secondary aim, which is to build students’ confidence in their ability to take on and learn new programming languages within a short space of time.
After taking this course, student will be able to demonstrate their knowledge and understanding about principles of programming languages. Especially, students will be able to:
Textbook:
References:
Evaluation | Marks | Percentage |
---|---|---|
Class Participation | 10 Marks | 10% |
Tutorial | 10 Marks | 10% |
Assignments/Discussion/Presentation | 20 Marks | 20% |
Final Examination | 60 Marks | 60% |