In mathematics, an algebraic stack is a vast generalization of algebraic spaces, or schemes, which are foundational for studying moduli theory. Many moduli spaces are constructed using techniques specific to algebraic stacks, such as Artin's representability theorem, which is used to construct the moduli space of pointed algebraic curves and the moduli stack of elliptic curves. Originally, they were introduced by Alexander Grothendieck[1] to keep track of automorphisms on moduli spaces, a technique which allows for treating these moduli spaces as if their underlying schemes or algebraic spaces are smooth. After Grothendieck developed the general theory of descent,[2] and Giraud the general theory of stacks,[3] the notion of algebraic stacks was defined by Michael Artin.[4]