Home
Short CV
Teaching
Overview
CSI2120
CSI4130
CSI5139F
Research
Publications
CSI2120
Personnel
Description
Evaluation
Topics
Demo
List of Course Topics
Introduction to programming paradigms
Review: The object-oriented paradigm in Java
Go: Intro, types and functions
Functions
Error codes - ok pattern
Lambdas
Structures and Pointers
Arrays and slices
Go: Errors, methods, interfaces
Console and file I/O
Panic and Recovery
Methods and interfaces
Go: Concurrency
Go routines and channels
Prolog: Introduction
Logic programming in Prolog
History
Rules and facts
Queries
Prolog: Search trees and operators
Predicate calculus
Backtracking
Operator definitions
Prolog: Arithmetic and I/O
Built-In operators
Unification with numbers
Recursive calculation
Looping with repeat
Generators
Streams
Prolog: The CUT and lists
The CUT: Coding the existence of a single solution and abandoning a goal with cut and fail
Data structures: Lists
Basic list processing
Prolog: More lists
List Representations: dot operator and trees and vine diagrams
More List Processing: Insertion vs. Deletion
List processing: Double recursion amd accumulators
Prolog: Advanced examples
Prime numbers
River crossing puzzle
Collecting solutions of a Goal
Prolog: Trees and graphs
Data structures for trees and graphs
Tree representation and examples
Binary search tree
Graph representation
Graph problems
Prolog: Managing the database
Databases
Managing the Prolog database of rules
Dynamic rules: adding and removing rules
Inspecting rules
Detailed example
Prolog: Parse trees and meta interpreters
Language Processing
Context free grammars
Parse trees
Definite clause grammars (DCG)
Meta Interpreters
Introduction to Scheme
Functional programming
Basic Scheme: expressions, read-eval-print loop
Special syntatic forms
Let-bound variables
Top-level definitions
Lambda expressions
Scheme: Predicates, Lists and Tail Recusions
Equivalency predicates
Lists and list operations
Tail Recursions
Scheme: Let Bindings, Characters and Strings
Local Binding, let-bound variables
Named let-bounds
Characters and strings
Scheme: I/O, Vectors and Sorting
Setting varibles with set!
Looping with do
Vectors
Sorting
Scheme: Trees, Lazy Evaluation and Examples
Tree representations
Binary search trees
Lazy evaluations
Examples: Towers of Hanoi, Tic Tac To