Cs 4402 Comparative Programming Languages
CIU Request Information
Course Outline
CS 4402: COMPARATIVE PROGRAMMING LANGUAGES
Prerequisites |
CS 1103: Programming 2s |
Course Description:
While most of the industry uses either procedural or object-oriented programming languages, there are entire families of other languages with certain strengths and weaknesses that make them attractive to a variety of problem domains. This course will introduce and discuss both the history and relevant features of both imperative and non-imperative programming languages. The course will cover topics such as syntax and semantics, essential concepts including data types, control structures, subprograms and advanced topics such polymorphism, and object oriented programming. The course will explore both functional and logic programming as examples of non-imperative programming languages. This course is a bit different from other courses within the curriculum in that it has no project assignments. Several of the units have non-graded exercises that provide hands on exposure to some of the programming language concepts that will be studied within the course, however, the course is designed to be primarily a theory course. Grades will be determined primarily on the basis of discussions and exams.
This course has been developed to follow the text and course design recommendations provided by M. Ben-Ari of the Weizman Institute of Science. These materials are used with the permission of Professor Ben-Ari. The Clifton International University recognizes and appreciates the contribution made by Professor Ben Ari in the use of his text and supporting materials and resources. The text is available for download from the course site in the references section.
Required Textbook and Materials:
The main required textbooks for this course are listed below, and can be readily accessed using the provided links. There may be additional required/recommended readings, supplemental materials, or other resources and websites necessary for lessons; these will be provided for you in the course’s General Information and Forums area, and throughout the term via the weekly course Unit areas and the Learning Guides.
Understanding Programming Languages. Copyright © 2006 by M. Ben-Ari of the Weizman Institute of Science. This text is used with the permission of the author M. Ben-Ari.
Most units in the course have additional required reading assignments and many have optional reading assignments. These resources and means to access them will be provided within the unit that they are used in.
Software Requirements/Installation:
The Software Requirements are listed at the bottom of this document.
Learning Objectives and Outcomes:
By the end of this course students will be able to:
- Recognize the various schools or paradigms of programming languages including imperative languages (procedural and scripting languages, data-oriented languages, object oriented languages) and non-imperative languages (functional and logic programming).
- Define the principles and components of programming language design, such as control structures, names, and data types.
- Recognize elements of syntax and semantics for a language.
- Recognize strong vs. weak and statics vs. dynamic typing in programming languages.
- State the basic requirements for effective programming language design.
- Identify the limitations of programming languages from within a historical perspective.
- Classify the programming constructs that appear in imperative, functional, and logic programming languages.
Course Schedule and Topics:
This course will cover the following topics in eight learning sessions, with one Unit per week. The Final Exam will take place during Week/Unit 9.
Week 1: Unit 1– Introduction to Programming Languages
Week 2: Unit 2- Elements of Programming Languages
Week 3: Unit 3– Data Types
Week 4: Unit 4– Control Structures and Subprograms
Week 5: Unit 5– Object Oriented Programming
Week 6: Unit 6- Scripting Languages
Week 7: Unit 7- Functional Programming
Week 8: Unit 8- Logic Programming
Week 9: Unit 9- Review and Final Exam