Links to CP Solvers
Links to various repositories of some maybe less well known constraint solvers. This is mainly so that I can find them again.
NuCS: A native Python solver that uses numpy for speed.
The Glasgow Constraint Solver a proof logging constraint solver.
The Glasgow Subgraph Solver developed my Ciaran McCreesh that includes support for proof logging.
A C++ version minicpp of MiniCP developed by Laurent Michel and his students. It is mainly used for research. It has a FlatZinc parser.
Setting up Python notebooks locally for Machine Learning
This is mainly for students on my machine learning course. I use a lot
of Python notebooks either for examples from lectures or for
assignments. While there are many options for hosting python notebooks
for free remotely, but I prefer to do things locally. If you wish to do
the same then please read on. Note that I did home some problems
installing skikit-image
on a new Apple with M1 silicon, but after
upgrading the latest version of the operating system and doing and
updating my homebrew
setup everything works. Note that these
instructions are for using pip
. If you are using an alternative
package manager such as Anaconda
then you are on your own. I know
nothing about setting up Python on a windows machine.
Using the Haskell State Monad
Breadth First Search in Haskell
Haskell is a really great programming language. It is elegant, the type system is beautiful, and nowadays the compiler is quite good. I’ve been using functional languages off and on for more than 30 years. I studied at the University of Kent which is the home Miranda which is a precursor to Haskell. All this is a warning. I don’t use Haskell that much. The language has changed a lot since I last used it regularly, and so my code might not be optimal or idiomatic Haskell.
Creating and using Python Virtual Environments
In a lot of my courses I encourage students to use python virtual environments. Virtual environments are a great way of making sure that you have the correct version of packages installed. This is very short cheat sheet on how to set them up. I will assume that we are using Python 3. Luckily Python 3 has virtual environments set up. It is all in the documentation, but then sometimes people are too lazy to google, or do not know what to google for. Of course this assumes that you are a command line person. If you are using some IDE, then you are on your own.