¿Alguno de los siguientes sería mejor a largo plazo para un estudiante universitario de CS: ‘Arquitectura y diseño de computadoras’, ‘Inteligencia artificial’, ‘Algoritmos de análisis’, ‘Computación en la nube’ o ‘C ++’?

Ir a lo básico importante.
Si bien la nube está de moda y también la IA, lo mejor para usted será primero una sólida base. Siempre puede aprender computación en la nube más adelante, y además, OpenStack está evolucionando, por lo que lo que aprende ahora se volverá semi-obsoleto en un par de años y necesitará volver a aprender a medida que avanza la tecnología de la nube y la máquina virtual.
El curso de arquitectura de computadora será bastante útil para darle una base sólida de comprensión sobre lo que se ejecuta todo el software. Esto es muy importante cuando llega el momento en que desea optimizar el código de maneras particulares. Los codificadores que no entienden la arquitectura están en desventaja. Además, si no conoce esta área primero, aprender sobre máquinas virtuales más adelante será bastante incomprensible.
El C ++ le presentará la programación orientada a objetos y eso será una base para aprender cualquier lenguaje orientado a objetos más adelante. El C ++ será difícil y requerirá mucho tiempo, pero lo configurará para que pueda aprender Java, por ejemplo, muy rápidamente. Sin embargo, C ++ NO debe ser su primer curso de programación o esto matará su entusiasmo por ser tan difícil.
El curso de algoritmos es importante porque debe tener una buena comprensión de los métodos informáticos sin importar los idiomas que utilice más adelante. Lo que aprendas en él lo usarás el resto de tu vida.

Depende de lo que quieras hacer una vez que te hayas graduado. En mi opinión, tendría que decir Inteligencia Artificial (es un cajero automático de tema candente y en el futuro previsible), Algoritmos de análisis (excelente experiencia para cualquier trabajo relacionado con CS / Ingeniería) y C ++ (pagará las facturas una vez que se gradúe).