# Courseware from Wagner Mathematics:

Contents:

## Universal Algebra for Computer Scientists  (UA4CS)

We are working on an on-line,  graduate level text on universal algebra that emphasizes computer science examples and applications.  A preliminary version of Part I is available for your inspection and use.

### UA4CS:  Part I

Part I of the text introduces the following basic algebraic concepts
1. signatures
2. algebras
3. homomorphisms
4. initial algebras
5. free algebras
and illustrates these concepts with numerous interactive applications to computer science topics including
1. inductive definitions
2. notational conversions for expressions (from prefix to infix, postfix, Polish, and Cambridge notation)
3. substitution of terms within terms
4. context-free grammars
5. the syntax (both abstract and concrete) of a programming language, LANG1
6. the semantics of LANG1 via a homomorphism
7. the compilation of LANG1 onto a simple stack machine  via a homomorphism

## High School Algebra

We are working on an interactive high school algebra text directed toward the interested student who may want to go further and deeper into the subject matter of high school algebra and into mathematics in general.   Here "high school" is used in the American way  -- the ninth through twelth years of schooling.  The  polynomial calculator is provided as part of the proposed courseware.

### Algebra Plus -- the text

This is a preliminary draft..

### The Polynomial Calculator:

The polynomial calculator is a calculator for  calculating  with and graphing polynomials over the reals.   Functions in the current implementation include:
• addition
• subtraction
• multiplication
• division  and remainder
• evaluation at an argument
• derivative
• solving (via Newton's method)
• graphing of up to four polynomials at one time
The calculator is written in Java 1.1 but contains some "deprecated" code from Java 1.0.

## 1994 Lectures on Category Theory for Computer Scientists

This is a set of notes from a short course, titled ``Algebras, Categories and Programming Languages'', that I gave at the Univerity of Bergen in 1994. The notes are in the form of two .ps files totally some 100 pages. These are the notes handed as handed out during the course: they have not been highly edited. Earlier versions of the same material were given at the University of Constantine, Constantine, Algeria, and elsewhere.

Part I The sections of the first part are as follows:

1. Introduction
2. Why Algebras
3. Introduction to Categories
4. More Algebra
5. Algebraic Specification of Data Types
6. More About Categories -- Functors
7. Parameterized Specifications
8. More About Categories -- Natural Transformations
9. Limits and Colimits
10. Records, Variants, and Recursive Types
11. Control Constructs via Products and Coproducts
12. Adjoints

Part II The sections of the second part are as follows:

1. Substitution
2. Cartesian Closed Categories
3. Typed Lambda Calculus
4. T-Algebras
5. Monads
6. Indexed Categories