CS 463: Comparative Programming Languages

1 Prerequisites

  • C or better in CS330 and CS 367 or permission of instructor

2 Contact Information

Dr. Mark Snydermsnyde14@gmu.edu
OfficeENGR 5346
Office HoursTBA

3 Communication

  • We will have an online discussion forum set up on Piazza; you can register here for our class. This will be the central site for our announcements, documents repository, and more.
  • We will also use BlackBoard to turn in assignments and post grades.

4 Textbooks

  • Concepts of Programming Languages, 10th edition. Robert W. Sebesta.
  • Real World Haskell. Bryan O'Sullivan, Don Stewart, and John Goerzen. (available free online or for sale in hardcopy)

5 Course Objectives

Students will gain an understanding of key programming mechanisms described independently of particular machines or languages, including control, binding, procedural abstraction, types, and concurrency. Includes basic programming competence in several different types of programming languages, including a language that provides concurrency.

6 Course Outcomes

At the end of this course, students should:

  • be able to read and use formal representations of programming language syntax.
  • understand, in a language independent way, basic programming language components such as variables, types, expressions, scope, and control flow and see the choices made for these components by common languages.
  • have an understanding of runtime procedure/function control and data flow implementation.
  • have a basic understanding of the major programming language paradigms (imperative, OO, functional, logic), including relevant application domains, strengths and weaknesses.
  • have an understanding of the fundamentals of concurrent programming and the language-level constructs that used in concurrent programming.
  • gain basic programming competence in several different types of programming languages, facilitating transition to other current (and future) languages encountered during their professional career.

7 Sample Topics

  • intro and brief history of PL
  • programming language constructs
  • names, binding, scope
  • control flow
  • procedural abstraction
  • types and basic type theory
  • functional programming languages
  • logic programming languages
  • concurrency

8 Grading Policy

The grade will be determined by grades obtained in homeworks, projects and in semester and final exams. If circumstances require it, the grading scale may be adjusted, generally in the students' favor.

2 Exams30%
Final Exam20%
  • A "ceiling penalty" of 25% is assessed each 24-hour period entered after the deadline. For example, if you turn in work half a day late and score 87%, you will receive min(87,75) = 75% (and not 87-25=62%). Note that work turned in more than three 24-hours periods late will earn zero points, and will only be graded as time permits.
  • Any attempts at cheating will not be tolerated, and will be turned in to the Honor Court with significant penalties recommended. By this point you should be familiar with both the honor code at GMU and the further details of the CS Honor Code Policies, but in short you should never see, share, or discuss any part of the solution to any graded work, from algorithm development to implementation to debugging to test cases. When in doubt, ask your instructor instead of another student.

9 Tests

  • Student ID is required for both the tests and final exam.
  • Appropriate documentation (determined by instructor) is required to even consider a make-up.
  • Failing the final exam will result in an F in the entire course.

10 Contested Grades

Do not contest a grade immediately and in person when it is handed back. Schedule a meeting outside class, or send written correspondence requesting feedback and reconsideration.

11 Learning Disabilities

Students with a learning disability or other condition (documented with GMU Office of Disability Services) that may impact academic performance should speak with the professor ASAP to discuss appropriate accommodations.



Org version 7.9.3d with Emacs version 24

Validate XHTML 1.0