UoPeople Online Syllabus Repository (OSR)

Computer Science

CS 4402 Comparative Programming Languages

Uopeople


CS 4402: COMPARATIVE PROGRAMMING LANGUAGES


Syllabus


Prerequisites:  CS 1103: Programming 2


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 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.


Required Textbook and Materials:

UoPeople courses use open educational resources (OER) and other materials specifically donated to the University with free permissions for educational use. Therefore, students are not required to purchase any textbooks or sign up for any websites that have a cost associated with them. 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.

Ben-Ari, M. (2006). Understanding programming languages. Weizman Institute of Science. This text is used with the permission of the author M. Ben-Ari.
Download textbook here

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:

  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

Course Requirements:


Discussion Assignments & Response Posts/Ratings
Some units in this course require that you complete a Discussion Assignment. You are required to develop and post a substantive response to the Discussion Assignment in the Discussion Forum. A substantive response is one that fully answers the question that has been posed by the instructor. In addition, you must extend the discussion by responding to at least three (3) of your peers’ postings in the Discussion Forum and by rating their posts. Instructions for proper posting and rating are provided inside the Discussion Forum for each week. Discussion Forums are only active for each current and relevant learning week, so it is not possible to contribute to the forum once the learning week has come to an end. Failure to participate in the Discussion Assignment by posting in the Discussion Forum and responding to peers as required may result in failure of the course.

Learning Journal
Your instructor may choose to assign specific topics and/or relevant questions as a weekly Learning Journal entry for you to complete, but you are still encouraged to also use it to document your activities, record questions/problems you may have encountered, reflect on the learning process, and draft answers for other course assignments. The Learning Journal must be updated on a weekly basis because its entries will be assessed by your instructor directly as a part of your final grade. The Learning Journal will only be seen by your instructor.

Quizzes
This course will contain three types of quizzes – the Self-Quiz, the Graded Quiz, and the Review Quiz. These quizzes may contain multiple choice, true/false, or short answer questions. The results of the Self-Quiz will not count towards your final grade. However, it is highly recommended that you complete the Self-Quiz to ensure that you have adequately understood the course materials. Along with the Reading Assignments, the results of the Self-Quiz should be used as part of an iterative learning process, to thoroughly cover and test your understanding of course material. You should use the results of your Self-Quiz as a guide to go back and review relevant sections of the Reading Assignments. Likewise, the Review Quiz will not count towards your final grade, but should also be used to assist you in a comprehensive review and full understanding of all course material, in preparation for your Final Exam. Lastly, the results of the Graded Quiz will count towards your final grade. 

Final Exam
The Final Exam will take place during the Thursday and Sunday of Week/Unit 9, following the completion of eight units of work. The format of the Final Exam is similar to that of the quizzes and may contain a combination of different question types. You will have one attempt to take the exam, and it will be graded electronically. Specific instructions on how to prepare for and take the Final Exam will be provided during Week 8 (located inside the Unit 9 Learning Guide). Final Exams must be taken without the use of course learning materials (both those inside and outside the course). If particular materials are allowed for use during the exam, these will be noted in the exam’s instructions.

The Final Exam for this course must be done under the supervision of a proctor. Since you already secured your proctor before registering for this course, this is a reminder that you should coordinate with him/her before you take the exam. As a reminder, students are required to successfully complete proctored exams spaced throughout their program of study at UoPeople, in order to verify the student’s identity in confirming a degree and diploma upon graduation.

Calculator use: Students are only allowed to use a basic or scientific calculator for the final exam. Calculators on the cell phone, iPad or similar devices are not allowed.


Course Forum
The Course Forum is the place to raise issues and questions relating to the course. It is regularly monitored by the instructors and is a good place to meet fellow students taking the same course. While it is not required to participate in the Course Forum, it is highly recommended.


Course Policies:

Grading Components and Weights
Each graded component of the course will contribute some percentage to the final grading scale, as indicated here:

Discussion Assignments 30%
Learning Journals 10%
Two Graded Quizzes 30% (15% each)
Final Exam 30%
TOTAL 100%

Grading Scale
This course will follow the standard 100-point grading scale defined by the University of the People, as indicated here:

Letter Grade
Grade Scale Grade Points
A+ 98-100 4.00
A 93-97 4.00
A- 90-92 3.67
B+ 88-89 3.33
B 83-87 3.00
B- 80-82 2.67
C+ 78-79 2.33
C 73-77 2.00
C- 70-72 1.67
D+ 68-69 1.33
D 63-67 1.00
D- 60-62 0.67
F Under 60 0.00

Grade Appeal
If you believe that the final grade you received for a course is erroneous, unjust, or unfair, please contact your course instructor. This must be done within seven days of the posted final grade. For more information on this topic, please review the Grade Appeal Procedure in the University Catalog.

Participation
Non-participation is characterized by lack of any assignment submissions, inadequate contributions to the Discussion Forums, and/or lack of peer feedback to Discussion/Written Assignments. Also, please note the following important points about course participation:

  • Assignments must be submitted on or before the specified deadline. A course timeline is provided in the course schedule, and the instructor will specify deadlines for each assignment.
  • Any student showing non-participation for two weeks (consecutive or non-consecutive) is likely to automatically fail the course.
  • Occasionally there may be a legitimate reason for submitting an assignment late. Most of the time, late assignments will not be accepted and there will be no make-up assignments.
  • All students are obligated to inform their instructor in advance of any known absences which may result in their non-participation.

Academic Honesty and Integrity
When you submit any work that requires research and writing, it is essential to cite and reference all source material. Failure to properly acknowledge your sources is known as “plagiarism” – which is effectively passing off an individual’s words or ideas as your own. University of the People adheres to a strict policy of academic honesty and integrity. Failure to comply with these guidelines may result in sanctions by the University, including dismissal from the University or course failure. For more information on this topic, please review the Academic Integrity Policy in the University Catalog.

Unless otherwise stated, any materials cited in this course should be referenced using the style guidelines established by the American Psychological Association (APA). The APA format is widely used in colleges and universities across the world and is one of several style and citation formats required for publication in professional and academic journals. Purdue University’s Online Writing Lab (OWL) is a free website that provides excellent information and resources for understanding and using the APA format and style. The OWL website can be accessed here: https://owl.purdue.edu/owl/research_and_citation/apa_style/apa_style_introduction.html

Code of Conduct
University of the People expects that students conduct themselves in a respectful, collaborative, and honest manner at all times. Harassment, threatening behavior, or deliberate embarrassment of others will not be permitted. Any conduct that interferes with the quality of the educational experience is not allowed and may result in disciplinary action, such as course failure, probation, suspension, or dismissal. For more information on this topic, please review the Code of Conduct Policy in the University Catalog.


 Software Requirements/Installation:

The requirements are listed at the bottom of this document.

The comparative programming course (CS4402), is not a programming course. It focuses on no programming language and quite frankly has no graded programming assignments. There are, however, exercises throughout the course that will provide learners with some hands-on experience to put principles and theories into practice as an aid to learning. These exercise assignments will take advantage of a number of different programming languages. Most of the exercises are simple programming examples meant to illustrate relevant features of the language or concept that is being studied in the unit. To make this diverse set of assignments accessible to students ALL have been designed to be completed within online programming environments that are designed to be entirely accessible from any web browser.

Other than the requirement to be able to access the online development environments (a list of environments follows) the only software tools required for this class will be the office automation and web browser tools that are used in virtually every University of the People class. Some of the exercises will, however, require access to a web browser capable of running Java applets so a Java runtime environment must be installed on your computer:

Unit 1:

-Turing Machine Simulator: http://morphett.info/turing/turing.html
-Little Man Computer Simulator: http://www.yorku.ca/sychen/research/LMC/index.html (simulation of von Neumann architecture)

Unit 5:

-Online Interpreter for Peal Scripts: http://codepad.org/
-Online Interpreter for Python Scripts: http://codepad.org/
-Online Interpreter for JavaScript: http://writecodeonline.com/javascript/
-Online Regular expression tester: http://myregexp.com/signedJar.html

Unit 6:

-Online interpreter for Java: http://ideone.com/

Unit 7:

-Online interpreter for Haskell: http://ideone.com/

Unit 8:

-Online interpreter for Prolog: http://ideone.com/

Office Tool Recommendations:

For all text-based assignment submissions, the following and ONLY the following text document formats will be acceptable:

Word 97-2003, RTF (rich text format), and Adobe PDF formats which are supported by the following applications:

-Microsoft Office
-Open Office (http://www.openoffice.org)
-StarOffice (http://www.staroffice.com/)
-Google Docs (https://docs.google.com)
-Zoho (http://www.zoho.com/productivity-apps.html)
-ThinkFree (http://member.thinkfree.com/member/goLandingPage.action)

For spreadsheet data, the standard Excel 97-2003 format is acceptable and supported by the following apps:

-Microsoft Office
-Open Office (http://www.openoffice.org)
-StarOffice (http://www.staroffice.com/)
-Google Docs (https://docs.google.com)
-Zoho (http://www.zoho.com/productivity-apps.html)
-ThinkFree (http://member.thinkfree.com/member/goLandingPage.action)

In addition, the CSV (Comma Separated Value) format can be used instead of the Excel 97-2003 format.

For any graphics, pictures, charts, or figures the graphics objects should be placed within either a text document (as specified above) or using a presentation format that is compatible with Microsoft Powerpoint 97-2003 which is supported by the following applications:

-Microsoft Office
-Open Office (http://www.openoffice.org)
-StarOffice (http://www.staroffice.com/)
-Google Docs (https://docs.google.com)
-Zoho (http://www.zoho.com/productivity-apps.html)
-ThinkFree (http://member.thinkfree.com/member/goLandingPage.action)

Each of the preceding office applications can be used. The OpenOffice application is the standard and recommended application for the University of the People. When using OpenOffice, make sure that you set the default format to a Microsoft Office 97-2003 compatible format.

For students who cannot install OpenOffice on their computer, it is recommended that they use one of free web-based applications such as Zoho, ThinkFree Online, or GoogleDocs.

For students who are using mobile devices there are a number of free office compatible apps including:

-Kingsoft Office
-Documents to Go
-OfficeSuite
-OliveOffice
-SmartOffice Lite and others
-Zoho
-ThinkFree Online
-GoogleDocs