"Infaltable" no creo que haya ninguno. Dentro de los CAS el más completo es mathematica sin ningún género de dudas, aunque es de pago para PC (pero gratuito en RaspberryPi), luego de los gratuitos está SAGE, Maxima o SymPy. En cualquier caso el formato notebook ha demostrado ser extremadamente útil y ha venido para quedarse. En este sentido los Jupyter notebook son muy adaptables, como comenté en otro hilo.
También un software extremadamente útil, que ya todos conocemos, es GeoGebra, debido a que es software libre y puede compartir fácilmente applets interactivos.
Otro software extremadamente útil es R-Studio, que es también gratuito, que tiene infinitos plugins y funcionalidades para crear textos interactivos de todo tipo. Es un software de tratamiento de datos para hacer estadística. Se puede usar para modelar procesos estocásticos, o hacer cálculos que necesiten de sucesiones de números pseudoaleatorios como método de Montecarlo y similares. Tiene una librería dedicada a álgebra de distribuciones aleatorias, etc...
Luego para cálculo numérico está Matlab u Octave (la "versión" gratuita del primero). O NumPy, una librería especializada de python para computación numérica.
De teoría de grupos y números hay varios programas muy especializados, pero no recuerdo sus nombres ni tampoco los he llegado a usar alguna vez.
De procesadores de texto con fórmulas matemáticas hay varios editores de LaTeX, creo que uno de los más conocidos es LyX, pero han ido saliendo muchos nuevos. Yo particularmente uso "markdown+mathjax" más otros plugin a través del editor Typora, es una alternativa para hacer algo rápido y práctico.
Acabo de ver que ya hay una instalación nativa de SAGE para windows (había dejado de usarlo por que había que usarlo a través de una máquina virtual).
Actualización 20 de agosto de 2021: al volver a ver este hilo agregaría otra recomendación, el lenguaje de programación Julia, que ha crecido una barbaridad estos dos últimos años. Ahora están desarrollando una librería de CAS llamada Symbolics, aunque aún está en pañales ya ha demostrado ser el CAS más rápido que existe para muchas de las (pocas aún comparado con otros) tareas que soporta. Además es el lenguaje de programación ideal para hacer modelos matemáticos, machine learning y estudiar procesos estocásticos o dinámicos, debido a su eficiencia y las librerías disponibles, con librerías como ModelingToolkit, Flux, Gen, Turing, DynamicalSystems o ScenTrees entre otras.