Spring 2025 - CMPT 384 D100
Symbolic Computing (3)
Class Number: 5449
Delivery Method: In Person
Overview
-
Course Times + Location:
Jan 6 – Apr 9, 2025: Tue, 11:30 a.m.–1:20 p.m.
BurnabyJan 6 – Apr 9, 2025: Thu, 11:30 a.m.–12:20 p.m.
Burnaby
-
Instructor:
Anders Miltner
miltner@sfu.ca
-
Prerequisites:
CMPT 225 and (MACM 101 or (ENSC 251 and ENSC 252)), all with a minimum grade of C-.
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:
Instructor's Objectives
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
- Symbolic Representations as Data Types
- Arithmetic Expressions
- Regular Expressions
- Lisp Interpreter
- Imperative Interpreter
- Program Optimizations
- Automated Theorem Proving
COURSE-LEVEL EDUCATIONAL GOALS:
The core objectives for this course are threefold.
- Students will learn how to create symbolic representations for data
- Students will learn how to interpret symbolic representations as data
- Students will learn how to use symbolic representations for optimizations and analysis
Grading
NOTES:
40% Assignments
25% Midterm
35% Final Exam
Materials
MATERIALS + SUPPLIES:
Any textbook used will be freely available online.
You should have access to a computer sufficiently powerful that it can install and run the Haskell compiler.
REQUIRED READING NOTES:
Your personalized Course Material list, including digital and physical textbooks, are available through the SFU Bookstore website by simply entering your Computing ID at: shop.sfu.ca/course-materials/my-personalized-course-materials.
Registrar Notes:
ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS
SFU’s Academic Integrity website 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
RELIGIOUS ACCOMMODATION
Students with a faith background who may need accommodations during the term are encouraged to assess their needs as soon as possible and review the Multifaith religious accommodations website. The page outlines ways they begin working toward an accommodation and ensure solutions can be reached in a timely fashion.