# Guide des cours du bacc en info 0. Préalables 1. Utilité de chaque cours pour le reste du bacc en info 2. Utilité de chaque cours pour des jobs non académiques ## 0. Graphe des préalables ![](https://i.imgur.com/Wmx9pkL.png) ## 1. Utilité au bacc de chaque cours Explique chaque cours aide pour quels autres cours. ### IFT 1015: Programmation 1 * Utile 99% du temps dans 99% des autres cours * Bien maitriser cette matière est suffisant pour commencer des projets personnels qui ont de l'allure. * L'UdeM ne donne pas vraiment de cours de `git`, donc si t'es game de faire tes travaux d'équipe sur `git` avec tes équipes (au lieu d'envoyer du code par facebook), c'est un bon moment pour explorer ça. * Python ### IFT 1025: Programmation 2 * Introduction à l'OOP: programmation orientée objet. * Utile dans les cours de type génie: 3911, 3912, 3913 * Java ### IFT 1065: Structures discrètes * Utile pour Algorithmes * Utile pour Structures de données ### IFT 1215: Intro systèmes informatiques * Les multiplexeurs vont revenir en 1227 * La manipulation de bits est un peu utile en Prog 1 * La vision low-level des ordinateurs est un peuuuuu utile en OS. * Si ton prof t'apprend Bash, très, très utile pour OS. ### IFT 1227: Architecture des ordinateurs * OS est un niveau d'abstraction de plus élevé que 1227, donc c'est un peuuuuu utile pour OS * Dans sa forme actuelle, 1227 n'est pas vraiment utile pour le reste du bacc * MIPS ### MAT 1400: Calcul I * Essentiel (et requis) pour Prob et Stats ### IFT 1575: Recherche opérationnelle * Utile pour IFT 2505: Optimisation linéaire * Similaire à Algo * Julia (parfois aucun langage, selon la session) ### IFT 2015: Structures de données * Utile en Algo * Java ### IFT 2125: Algorithmes * Utile en Structures de données * Pseudocode seulement ### IFT 2255: Génie logiciel * C'est la seule "intro" à `git` qu'on va avoir: on te force à utiliser `git` pour ce cours, mais ya pas de cours formel sur ça, bref n'attends pas ce cours pour apprendre `git` par toi-même. * Java --- ## 2. Utilité en entreprise de chaque cours (beta) Explique chaque cours aide pour quel genre de job. ### IFT 1015: Programmation 1 * Va te permettre de faire tes premiers projets personnels. Sur ton CV, avoir des bons projets personnels est souvent plus impressionnant que des bonnes notes. Mais des bonnes notes te donnent accès à des bourses, ce qui est bon aussi. * Python ### IFT 1025: Programmation 2 * 100% des concepts de ce cours sont utiles en entrevue dans quasiment toutes les entreprises qui utilisent l'orienté-objet. * Java ### IFT 1065: Structures discrètes * Fondamental pour grasp les bonnes intuitions * Prépare aux cours d'algo et structures de données qui sont bons pour coder rapidement des solutions efficientes aux problèmes. * Maitriser les notations mathématiques est une bonne pratique pour Info Théo * Un peu de pseudocode, mais c'est une bonne idée d'actually coder pour vérifier tes réponses lorsque possible ### IFT 1227: Architecture des ordinateurs * Si tu veux apprendre à PWN (attaque informatique), tu vas avoir besoin d'être bien à l'aise en langage assembleur. 1227 donne une introduction au langage MIPS, un langage assez rare. * MIPS, VHDL ### IFT 2245: OS * Multithreading * Tu vas enfin bien connaitre C. En dehors des systèmes embarqués (embedded programming), presque aucune compagnie ne recrute de programmeurs C, mais tu as désormais tout ce qu'il faut pour apprendre C++, qui lui est très présent * Ce cours se donne sur Linux. Utile pour tout rôle où tu interagis avec Linux * Beaucoup de C, un peu de Bash ### IFT 2255: Génie logiciel * Très utile pour s'initier à comment coder en entreprise fonctionne * Java ### IFT 2015: Structures de données * Comme Algo, utile pour les entrevues dans les Big 5 * Java ### IFT 2035: Concepts * Résoudre les problèmes de récursion, utile pour les entrevues dans les Big 5 * Bien connaitre C sera utile en OS * Plus facile d'installer les langages du cours sur Linux. Si tu installes Linux, sera utile pour tout rôle où tu utilises Linux * Haskell, Lisp, C, Prolog (sujets à changement) ### IFT 2125: Algorithmes * Comme Structures de données, utile pour les entrevues dans les Big 5 * Pseudocode seulement, mais c'est une bonne idée de tester ton pseudocode avec python ### Info théo * Connaissances générales / historiques, ne contribue pas à ta vie professionnelle non académique ### IFT 3913: Qualité du logiciel et métrique * Les compagnies veulent quelqu'un qui sait tester son code ### IFT 3911: Analyse et conception des logiciels * Patrons de conception * Might be the most useful course en entreprise * Surtout dans les entreprises OOP