Skip to content

Comparative Programming Languages Course – CS 4402

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 as 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 University of the People 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.

Learning Objectives and Outcomes:

By the end of this course students will be able to:

  1. 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).
  2. Define the principles and components of programming language design, such as control structures, names, and data types.
  3. Recognize elements of syntax and semantics for a language.
  4. Recognize strong vs. weak and static vs. dynamic typing in programming languages.
  5. State the basic requirements for effective programming language design.
  6. Identify the limitations of programming languages from within a historical perspective.
  7. 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 (UoPeople time).

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

Learning Guide

The following is an outline of how this course will be conducted, with suggested best practices for students.

Unit 1: Introduction to Programming Languages
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Make entries to the Learning Journal
  • Take the Self-Quiz
Unit 2: Elements of Programming Languages
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Make entries to the Learning Journal
  • Take the Self-Quiz
Unit 3: Data Types
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Make entries to the Learning Journal
  • Take the Self-Quiz
  • Take the Graded Quiz
Unit 4: Control Structures and Subprograms
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Make entries to the Learning Journal
  • Take the Self-Quiz
Unit 5: Object Oriented Programming
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Make entries to the Learning Journal
  • Take the Self-Quiz
Unit 6: Scripting Languages
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Complete and submit the Written Assignment
  • Make entries to the Learning Journal
  • Take the Self-Quiz
  • Take the Graded Quiz
Unit 7: Functional Programming
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Make entries to the Learning Journal
  • Take the Self-Quiz
Unit 8: Logic Programming
  • Read the Learning Guide and Reading Assignments
  • Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
  • Make entries to the Learning Journal
  • Take the Self-Quiz
  • Read the Unit 9 Learning Guide carefully for instructions on the Final Exam
  • Take the Review Quiz
Unit 9: Course Review and Final Exam
  • Read the Learning Guide and take the Review Quiz, if you haven’t already done so
  • Prepare for, take, and submit the Final Exam
  • The Final Exam will take place during the Thursday and Sunday of Week/Unit 9 (UoPeople time); exact dates, times, and other details will be provided accordingly by your instructor

Comparative Programming Languages Course – CS 4402

9 Weeks
3 Credits
Prerequisites - CS 1103
Graphics shape Left
Graphics Shape Right

Looking for a bright new future?
It starts here

shape mobile
mobile shape