Last modified: 2023-12-28
This is a course page of
David Casperson
You are here: homeSemestersFall 2023CPSC 370
Associate Professor
Computer Science
University of Northern British Columbia

Quick Links: Home Fall 2023 Schedule Pending Homework Homework Due

CPSC 370 — Functional and Logic Programming — Fall 2023

This page summarises information about CPSC 370.

Prerequisites
A grade of C- or better in cpsc 141 and cpsc 281; or permission of instructor.
Important Information

Important information may be posted here from time to time.

2023-11-07

This from CTLT:

Please be advised that there will be a scheduled moodle.unbc.ca outage this upcoming weekend on Saturday, November Nov. 4 from 10:30 AM to 12:30 PM PST. (that is nore likely 2023-11-04 Sat 10:30–12:30 PDT as clocks don't move back until Sunday night.)

BCNET is conducting EduCloud network maintenance. As a result, Moodle will be inaccessible for these two hours on Saturday morning.

2023-10-22
Midterm II date change
2023-10-12
Final exam information posted
2023-10-08
Fixed the link in Question 16.
2023-09-08

Corrected Remembrance day, M2 date

2023-09-06

Corrected the room number on the printed course outline.

Posted web-site updates publicly.

2023-07-22
No gnus are good gnus
Accommodations

Students in this course who, because of a disability, may have a need for special academic accommodations should discuss this with the instructor, or contact the Access Resource Centre located in the Library Building in Room 5-157.

Click for the Full ARC statement

Room and Hours
M W F 10:30–11:20 in 5-176.
Grading Scheme1:
WhatValue
Midterm I20%
Midterm II20%
Homework25%
Final35%
Course Dates:
WhatWhen
First Class Wed, Sep 06 Wednesday
Truth and Reconciliation Fri, Sep 29 Friday
Thanksgiving Mon, Oct 09 Monday
Midterm I 2023-10-13 Friday
Last Drop Day 2023-10-26 Thursday
Remembrance Day closureFri, Nov 10 Wednesday
Midterm II2023-11-15 Wednesday
Last ClassTue, Dec 05
Homework from time to time
Final
2023-12-07 Thursday
09:00–12:00 in 5-122
(confirm with official schedule)
Resources
There is no required text, but reading Learn You a Haskell for Great Good is strongly recommended. Click on Resources for where to find this book, and other useful information.
Programming Assigments
There will be approximately weekly programming assignments during the semester. Programming languages include Prolog and Haskell.

See the homework link on the menu-bar for information on what homework has been assigned.

See the Programming Homework Submissions section under the Policies link on the menu-bar for information on how to submit homework, and late policies et cetera.

See Resources
Handouts
Handout Dates
2023-09-06 Course Syllabus
??? Haskell Syntax Overview
2023-09-22 Finnish Bookkeeper Code
2023-09-22 The Number types and classes
2023-09-23 Haskell Patterns
Approximate Course Content
  • An introduction to functional programming. Static and dynamic typing. Strict and non-strict evaluation. Pure versus impure functional programming.
  • Some common functional programning languages.
  • Functions and partial functions.
  • Cartesian products. Disjoint unions. Currying.
Haskell.
  • Builtin types and literals. Tuples. Lists.
  • Declarations. Function declarations and function values.
  • Datatypes.
  • Recursion, tail recursion, and accumulator arguments.
  • Important type classes.
  • Monadic programming.
Prolog.
  • An introduction to logic programming.
  • Facts. Rules. Goals. Variables. Conjunctions.
  • Horn Clauses.
  • The Unification algorithm.
  • Difference lists.
  • Cuts. Negation.
  • Arithmetic.
  • Debugging.
Notes
  1. I reserve the right to change the weight of any portion of this marking scheme. If changes are made, your grade will be calculated using the original weighting and the new weighting, and you will be given the higher of the two.
Home page Semesters Site Map
go back Fall 2023 go forward
2024-11 other links

CPSC 370 [Other years]
Homework
Resources
CPSC 704
David’s Schedule

UNBC Undergraduate Calendar
Dates
Computer Science (BSc)
Regulations

fall-2024