Quelle est la qualité du département d’informatique de l’Université de Waterloo ?


Du point de vue d'un récent diplômé en informatique de l'Université de Waterloo, je pense que le département d'informatique (techniquement la "David R. Chariton School of Computer Science") offre un excellent ensemble de cours stimulants qui enseignent à la fois l'informatique théorique et les techniques de programmation pratiques. En outre, l'école est bien connue dans l'industrie et ses diplômés sont très appréciés.

Au cours de ma carrière de premier cycle, j'ai suivi 18 cours de "majeure en informatique". Les cours de première et deuxième année sont conçus pour introduire des concepts mathématiques et informatiques généraux tels que la récursion, les structures de données, la complexité informatique et les idées de la logique. Les cours de l'année supérieure ont tendance à se répartir en deux catégories : la théorie de l'informatique et la programmation des systèmes.


Les premiers cours, qui sont généralement requis pour toutes les majeures en informatique, passent beaucoup de temps à s'assurer que tout le monde est sur la même page. Par conséquent, ils sont hit-and-miss en fonction du professeur et du groupe particulier d'étudiants. Les cours de l'année supérieure, qui sont pour la plupart des cours à option, sont souvent enseignés par des instructeurs spécialisés dans le domaine spécifique, et sont de très haute qualité.

Un exemple de cours théorique de l'année supérieure est le CS466 "Design and Analysis of Algorithms" qui aborde la complexité amortie, les algorithmes aléatoires et l'algorithme d'approximation pour les problèmes NP-complets (en temps polynomial). Le matériel du cours consistait principalement en des preuves de complexité computationnelle et de temps d'exécution.

Un exemple de cours sur les systèmes est CS452 "Real-time Programming" qui traite de la conception et de la mise en œuvre de systèmes temps réel durs. Ce sont des systèmes où les opérations doivent se terminer dans une fenêtre de temps spécifique - ni trop tôt, ni trop tard. La majeure partie du cours consistait en un projet qui consistait à écrire un noyau de système d'exploitation en temps réel à partir de zéro et à l'utiliser pour construire un système de contrôle pour un modèle réduit de train électrique. Il est affectueusement connu sous le nom de "cours de trains".

Un autre cours intéressant est le CS475 "Computational Linear Algrabra" qui se concentre sur les preuves de correction et d'exécution dans les conférences et les examens, mais a offert une chance de mettre en œuvre certains algorithmes sur les devoirs.

Au delà de la salle de classe, l'école a certains des plus grands défenseurs de l'informatique dans le pays. Ils organisent le plus grand concours d'informatique pour les élèves du secondaire au Canada - c'est ce qui m'a fait m'intéresser à cette école en premier lieu. L'école forme également l'équipe canadienne pour le concours de programmation des écoles secondaires de l'Olympiade internationale d'informatique (IOI) et se targue d'avoir l'une des meilleures équipes au concours international de programmation collégiale de l'ACM.

Les diplômés de l'école se retrouvent dans plusieurs des meilleures organisations de développement de logiciels en Amérique du Nord et dans le monde entier. Par conséquent, de nombreuses entreprises savent quels cours rechercher sur le relevé de notes et quelles questions poser lors des entretiens.

En parlant d'emplois, toute discussion sur l'Université de Waterloo est incomplète sans mentionner l'impressionnant programme d'éducation coopérative. Dans ce programme, j'alternais 4 mois à l'école et 4 mois au travail. J'ai pu faire un diplôme de 4 ans en 5 ans avec 2 ans d'expérience professionnelle. J'ai pu appliquer ce que j'ai appris à l'école à des problèmes de programmation réels et, en retour, mon expérience professionnelle a permis de mettre en perspective ce que j'ai appris dans les cours ultérieurs.

L'enseignement coopératif est un élément essentiel de la formation.