Headshot of Curtis
Curtis Bright
Postdoctoral Researcher University of Waterloo DC 2302G cbright


Presently, I am working on applying SAT solvers and computer algebra systems to problems in combinatorics and number theory, working with Vijay Ganesh and Ilias Kotsireas. Our work in this area has previously been published in the Journal of Automated Reasoning and at Computer Algebra in Scientific Computing 2016.

In March 2017, I defended my PhD thesis, supervised by Vijay Ganesh and Krzysztof Czarnecki.

In Fall 2015, I taught Elementary Algorithm Design and Data Abstraction alongside Gordon Cormack to 258 students. This course is the follow-up to Designing Functional Programs intended for CS and math majors and uses the programming language C.

In Summer 2015, I was the sole instructor of 145 students in Introduction to Computer Science 1, an introduction to computer science intended for non-CS majors.

In Fall 2014, I taught Designing Functional Programs, an introduction to computer science for CS and math majors based around the programming language Racket. I coordinated with 5 other instructors to teach 876 students.

In Summer 2014, I supervised (along with William Hart) the undergraduate student Abhinav Baid and oversaw the implementation of a fast variant of the LLL algorithm for lattice basis reduction in the open source number theory library FLINT. This code is available in the latest version of FLINT in the fmpz_lll module.

Previously, I delivered tutorials and assisted running courses with a focus on data structures, algorithms, and logic. I spent most of the decade prior to 2014 becoming well-versed in mathematics: I have taken over 50 courses offered by the Faculty of Mathematics at the University of Waterloo, and have been a teaching assistant or instructor for over 20 courses. My CV contains a brief summary of my academic career.

Bragging rights: My Erdős number is 2, through the papers Minimal elements for the prime numbers (Bright, Devillers, Shallit) and New bounds on the length of finite Pierce and Engel series (Erdős, Shallit). I have also been awarded 0x$1.20 at Knuth's Bank of San Serriffe.


Things I've (co-)written which are available online.


Talks I've given which used slides.

Lecture Notes

I use LaTeX for taking notes. How well this works depends on the course content; it typically works better in pure mathematics courses than in computer science courses. Although I can't guarantee the accuracy or completeness of my transcriptions, I'm posting some notes for courses I've taken (or sat through) in the hope they will be useful to others. Let me know if you spot any typos, or even better, fix them yourself on GitHub.


I was the designer of the SCG logo, a spoof on a proposed UW logo. Other nonacademic projects of mine can be found on my personal website, www.curtisbright.com.