Welcome to CSCI 340 — Fall 2025
Evolutionary computation is a family of powerful optimization algorithms often used to find solutions to computationally intractable problems. The study of these algorithms and their application to problems is a large research area within computer science. Course topics include combinatorial optimization, genetic algorithms, particle swarm optimization, search space analysis, multi-objective optimization, and neuroevolution. Research practices and technical writing will be emphasized for course assignments/projects.
The content used to generate the course can be found on GitHub
Professors
Dr. James Hughes
jhughes at stfx.ca
Annex 20B
Lecture
Mon 13:30 – 14:25 (C4), MULH 4024
Wed 12:30 – 13:25 (C5), MULH 4024
Fri 11:30 – 12:25 (C6), MULH 4024
Office Hours
Tue 10:00 – 11:00, Annex 20B
Wed 10:00 – 11:00, Annex 20B
Thr 10:00 – 11:00, Annex 20B
Fri 10:00 – 11:00, Annex 20B
YouTube
Course Notes
- 1. Introduction
- 2. Implementing a Genetic Algorithm
- 3. Experimenting with a Genetic Algorithm
- 4. Problems
- 5. Origin
- 6. Overview
- 7. Representation
- 8. \(n\) Queens Genetic Algorithm
- 9. Experimenting with the \(n\) Queens Genetic Algorithm
- 10. Genetic Operators
- 11. Selection and Population Management
- 12. Genetic Programming
- 13. Symbolic Regression with Genetic Programming
- 14. Experimenting with Symbolic Regression
- 15. Tuning Hyperparameters
- 16. What Comparing Distributions Means
- 17. Multi-Objective Problems
- 18. Particle Swarm Optimization
- 19. Implementing PSO