Spring 2018 - CMPT 384 D100

Symbolic Computing (3)

Class Number: 10810

Delivery Method: In Person

Overview

  • Course Times + Location:

    Jan 3 – Apr 10, 2018: Mon, Wed, Fri, 1:30–2:20 p.m.
    Burnaby

  • Exam Times + Location:

    Apr 21, 2018
    Sat, 12:00–3:00 p.m.
    Burnaby

  • Prerequisites:

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

Description

CALENDAR DESCRIPTION:

This course considers modelling and programming techniques appropriate for symbolic data domains such as mathematical expressions, logical formulas, grammars and programming languages. Topics include recursive and functional programming style, grammar-based data abstraction, simplification and reduction transformations, conversions to canonical form, environment data structures and interpreters, metaprogramming, pattern matching and theorem proving.

COURSE DETAILS:

Computer programs, English text, algebraic equations, musical scores and logical formulas are all examples of symbolic data domains. Programs that address many problems involving these domains carry out their tasks primarily by manipulating expressions in special purpose languages. This course will focus on one of the most important programming paradigms that provides convenient support for such programming applications: functional programming. In particular, the Haskell programming language designed to support this paradigm will be introduced to support the techniques used in addressing symbolic computing problems.

Topics

  • Languages: expressions and grammars.
  • Symbolic data: atoms, lists, structures.
  • Principles of functional programming.
  • Recursive programming and structural induction.
  • Programs and grammars as data objects: metaprogramming.
  • Algebraic expressions as data objects: symbolic math.
  • Logical formulas as data objects: theorem proving and the basis of logic programming.
  • Lexical analysis and parsing: interpreters

Grading

NOTES:

Assignments, 30%; Tests/Quizzes, 20%; Final Exam, 50%.

Materials

MATERIALS + SUPPLIES:

Reference Books

  • The Craft of Functional Programming (2nd ed), Simon Thompson, Addison-Wesley, 1999, 9780201882957
  • Symbolic Computing with LISP, Robert D Cameron, Anthony H Dixon, Prentice Hall, 1992, 9780138778460
  • Intro. to Functional Progamming using Haskell 2nd ed, Richard Bird, Prentice hall, 1998, 9780134843469
  • The Haskell School of Expression, Paul Hudak, Cambridge Univ. Press, 2000, 9780521644082

Registrar Notes:

SFU’s Academic Integrity web site http://students.sfu.ca/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