1 Syllabus

1.1 General syllabus

Note: click on the following link, and actually read it; it’s part of the syllabus:

1.2 Course description

Introduces evolutionary algorithms, a class of stochastic, population-based algorithms inspired by natural evolution theory (e.g., genetic algorithms), capable of solving complex problems for which other techniques fail. Students will implement course concepts, tackling science, engineering, and/or business problems.

1.2.1 Prerequisite

1.3 Textbook


1.4 Which virtual machine / OS for this class?

This class is more flexible in regard to which OS, with some notes for you to consider:
1. I develop assignments on Fedora, and the Docker containers we grade on git-classes CI/CD will be Fedora.
2. OpenSuse is easy, rolling, pleasant, well-documented. I have a convenient OVA for newbies, and non-CS students in courses like Bioinformatics (see syllabus). It should generally work as Fedora would in the relevant ways for assignments (and not break things for you).
3. Debian-based would be OK, though you’ll have more work for setup, as it’s antiquated. It also comes out of the box with stuff like the PATH set up incorrectly…
4. If you run some other Linux else bare-metal, it’ll almost certainly work, and I’m happy to field questions.

1.5 Which programming language for this class?

Python, C, Java (really!), Clojure (Lisp on Java), and/or push (pyshgp)