La réponse facile est que c'est ce que vous en faites. Si vous vous en tenez aux cours obligatoires et ne vous poussez pas, ce ne sera pas difficile. Si vous essayez de faire de votre mieux et de prendre des cours plus intéressants, alors le programme d'études peut devenir très difficile.
La réponse plus longue est que cela dépend en partie de vous, et qu'une partie du programme d'études de CS peut être objectivement classée comme facile ou difficile. Je vais d'abord commenter les cours de base puisque tout le monde les suit ou les abandonne.
Les deux cours d'introduction (CS 121 et CS 187) sont très faciles. 121 peut être sauté avec un peu d'expérience préalable (comme AP Computer Science). 187 (le cours de structures de données) est un peu plus difficile, mais encore bien dans les domaines d'un cours simple.
Il y a quatre cours de base (220, 230, 240, 250) qui sont nécessaires après avoir terminé les structures de données. Voici leurs difficultés correspondantes.
CS 220 (programmation fonctionnelle)- La difficulté du cours dépend du professeur. La session du semestre après que je l'ai pris est devenue beaucoup plus difficile car les étudiants devaient sauter directement dans Scala sans comprendre aucun concept. Dans ma session, le cours s'est déroulé à un rythme détendu et avec un excellent professeur (bravo à Tim Richards !). Cependant, comme de nombreux étudiants avaient de gros problèmes avec les projets, le cours s'est arrêté complètement à la moitié du semestre. Ce cours de base est modérément facile dans l'ensemble, mais sera un jeu d'enfant complet si vous avez eu la plus légère introduction à la programmation fonctionnelle ou à Scala
CS 230 (Principes des systèmes informatiques) - Si vous avez pris la programmation C avant et avez une compréhension préliminaire de l'interaction entre le matériel et le logiciel, alors ce devrait être un cours simple. L'utilisation de Linux est attendue et peut être délicate pour certains de s'y habituer. Je n'ai pas suivi ce cours mais j'ai une bonne compréhension du contenu, donc je peux dire de manière assez confiante que ce cours a été bien fait et est modérément difficile pour un cours d'introduction.
CS 240 (Probabilité) - Ce cours est (à mon avis) un peu un désastre. Il est une excuse pour une compréhension solide de la probabilité et est méchamment facile à compléter. Utilisez les options en ligne comme MIT OCW pour apprendre beaucoup plus tout en prenant ce cours. Je peux comprendre le raisonnement pour rendre cette classe plus lente, mais la baisse correspondante du matériel et de la difficulté est un tantinet trop.
CS 250 (Discrete Math) - Ce cours est normalement enseigné par David Barrington que je n'ai que des éloges en tant que professeur. Je l'ai eu pour le CS 501 et je peux supposer qu'il enseigne ce cours tout aussi bien. Il y a des parties de ce cours que tout le monde devrait trouver faciles (tables de vérité d'expressions logiques) et d'autres plus difficiles (rédaction de preuves). La difficulté de ce cours dépend complètement de chaque individu. Il peut être très facile pour certains et très difficile pour d'autres. Ce cours n'est pas aussi difficile qu'il pourrait l'être (voir par exemple le cours 6.042 du MIT). Les sujets sont introduits à un rythme plus lent et il y a quelques éléments manquants. Cela ne veut pas dire que le cours ne peut pas être difficile ! Une introduction aux preuves n'est jamais simple. CS 250 est également unique en ce sens qu'il y a une introduction au TCS à la fin du cours (Expressions régulières, DFAs, Lemme de pompage, etc).
Depuis l'automne 2016, l'UMass CICS demande à chaque étudiant de prendre CS 311 (Algorithmes) comme tronc commun supplémentaire. J'ai trouvé ce cours bien fait et certainement le plus difficile des cores. Il faut beaucoup de temps pour comprendre ces concepts et encore plus pour la pratique. Amusez-vous bien avec CLRS !
Pour les cours de niveau supérieur, tout dépend de votre ambition et de votre préparation.
Les cours de niveau 300 - 500 varient ; certains peuvent être assez simples alors que d'autres peuvent être extrêmement difficiles. Je ne peux parler que pour ceux que j'ai suivis, donc je ne peux pas donner plus qu'une réponse générale ici. Les cours de niveau supérieur (>600) sont tous difficiles et demandent beaucoup plus de travail. Les professeurs de l'UMass sont tout à fait disposés à laisser les étudiants de premier cycle suivre ces cours. Si vous ne vous sentez pas concerné, inscrivez-vous et cela changera rapidement. Les cours de troisième cycle ici sont de la même qualité que n'importe quelle université de premier plan.
De nombreux étudiants en CS font une double majeure, ce qui augmente également la difficulté du programme. Le plus populaire serait de doubler en mathématiques et en informatique. La difficulté du programme de mathématiques est une conversation différente (à laquelle je peux répondre dans un PM ou dans une question distincte). Cela rendra presque certainement votre temps à UMass beaucoup plus difficile qu'une seule majeure.
Dans l'ensemble, les cours de base sont faciles et directs ; on devrait y rencontrer peu d'opposition. Selon l'intensité du défi que vous vous lancez dans les cours de niveau supérieur, UMass CS peut devenir aussi fou que vous le souhaitez.
Voici les cours de CS et les cours liés à la CS que j'ai suivis :
CS 220, CS 501 (théorie du langage formel), MA 235 (algèbre linéaire), MA 411 (algèbre abstraite).
Ce que je vais suivre au prochain semestre :
CS 590D (Algorithmes pour la science des données), CS 575 (Combinatoire), CS 611 (Algorithmes diplômés)
.