  We overview numerous algorithms in computational $D$-module theory together
with the theoretical background as well as the implementation in the computer
algebra system \textsc{Singular}. We discuss new approaches to the computation
of Bernstein operators, of logarithmic annihilator of a polynomial, of
annihilators of rational functions as well as complex powers of polynomials. We
analyze algorithms for local Bernstein-Sato polynomials and also algorithms,
recovering any kind of Bernstein-Sato polynomial from partial knowledge of its
roots. We address a novel way to compute the Bernstein-Sato polynomial for an
affine variety algorithmically. All the carefully selected nontrivial examples,
which we present, have been computed with our implementation. We address such
applications as the computation of a zeta-function for certain integrals and
revealing the algebraic dependence between pairwise commuting elements.
