Fall 2019 - CMPT 383 D100

Comparative Programming Languages (3)

Class Number: 8997

Delivery Method: In Person

Overview

  • Course Times + Location:

    Sep 3 – Dec 2, 2019: Mon, Wed, Fri, 2:30–3:20 p.m.
    Surrey

  • Exam Times + Location:

    Dec 14, 2019
    Sat, 12:00–3:00 p.m.
    Location: TBA

  • Instructor:

    Toby Donaldson
    tjd@sfu.ca
    1 778 782-7433
  • Prerequisites:

    CMPT 225, and (MACM 101 or (ENSC 251 and ENSC 252)).

Description

CALENDAR DESCRIPTION:

Various concepts and principles underlying the design and use of modern programming languages are considered in the context of procedural, object-oriented, functional and logic programming languages. Topics include data and control structuring constructs, facilities for modularity and data abstraction, polymorphism, syntax, and formal semantics.

COURSE DETAILS:

This course explores various concepts and principles underlying the design and use of modern programming languages. A major focus of the course will be on functional programming, an elegant and useful set of techniques that are slowly finding their way into many mainstream languages such as C++, JavaScript, Python, Swift, and more. Declarative programming in Prolog will be discussed, and, time permitting, we will see how the Go languages supports concurrency.

Topics

  • Lisp/Scheme: basic functional programming
  • Haskell: typed functional programming
  • Prolog: declarative programming
  • Go: Concurrency (time permitting)

Grading

NOTES:

The marking scheme will be provided in the first week of class.

Materials

MATERIALS + SUPPLIES:

Reference Books

  • Programming Language Pragmatics, Michael L. Scott, Morgan Kaufmann, 2015, 9780124104099, General discussion of programming language topics.

REQUIRED READING:

  • Thinking Functionally with Haskell
  • Richard Bird
  • Cambridge University PresS
  • 2014
  • Excellent introduction to Haskell and functional programming.

ISBN: 9781107452640

RECOMMENDED READING:

Concepts of Programming Languages (11th Edition)

  • Robert Sebesta, Addison-Wesley,
  • 2015,
  •  It is okay to use the 10th edition, if you prefer.

ISBN: 9780133943023

Concepts in Programming Languages
John C. Mitchell
Cambridge University Press
2002
General discussion of programming language topics.
ISBN: 9780521780988

Registrar Notes:

SFU’s Academic Integrity web site http://www.sfu.ca/students/academicintegrity.html is filled with information on what is meant by academic dishonesty, where you can find resources to help with your studies and the consequences of cheating.  Check out the site for more information and videos that help explain the issues in plain English.

Each student is responsible for his or her conduct as it affects the University community.  Academic dishonesty, in whatever form, is ultimately destructive of the values of the University. Furthermore, it is unfair and discouraging to the majority of students who pursue their studies honestly. Scholarly integrity is required of all members of the University. http://www.sfu.ca/policies/gazette/student/s10-01.html

ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS