Aperçu
Build modern software in a world where AI makes writing code easier—but designing great systems still takes skill. This program helps you strengthen core software engineering practices, including architecture patterns, system design, and test-driven development, while learning how to use AI tools thoughtfully and effectively.
You'll learn to design systems that are robust, reliable, modular, and scalable, and to evaluate AI-generated code with confidence. By the end, you won’t just ship working software—you'll think like an experienced engineer, ready to design, evolve, and own complex systems in real-world environments.
Programme
- Développement Dirigé par les Tests
Acquérez de la confiance dans votre logiciel avec le Développement Dirigé par les Tests (TDD). Pratiquez la boucle rouge-vert-refactor avec Python et pytest—en écrivant des tests avant d'écrire votre code. Apprenez comment les tests unitaires, d'intégration et de bout en bout s'emboîtent pour fournir un filet de sécurité complet. Organisez des suites de tests claires en utilisant des techniques avancées : fixtures, simulation et paramétrisation. Déployez en toute confiance à grande échelle en incorporant le test dans le CI/CD et les check-lists pré-vol. Exploitez le TDD pour utiliser les outils d'IA de la bonne manière—encodez vos exigences en tant que tests, puis laissez l'IA aider à implémenter le code qui les satisfait. À la fin de ce cours, vous serez capable de refactoriser en toute confiance, de détecter les régressions tôt, et de livrer des fonctionnalités plus rapidement avec moins de risques.
- Modèles de Conception
Bâtissez une base solide en conception orientée objet en appliquant des modèles de conception éprouvés en Python. Explorez les modèles de création, structurels et comportementaux, et voyez comment chaque catégorie répond aux défis courants pour construire des systèmes flexibles, réutilisables et évolutifs. Apprenez pourquoi ces modèles dépassent le "bon sens" et représentent des décennies de sagesse accumulée en ingénierie. Pratiquez la traduction d'idées abstraites en code clair et maintenable. À la fin de ce cours, vous comprendrez comment les modèles de conception se connectent aux principes SOLID, à l'injection de dépendances, et aux flux de travail modernes assistés par l'IA.
- Modèles d'Architecture Logicielle
Concevez des systèmes qui évoluent au-delà d'une seule base de code. Apprenez à penser comme un architecte logiciel en explorant des modèles architecturaux éprouvés, la conception native au cloud, et les compromis réels des systèmes. Modélisez des applications en utilisant des architectures monolithiques et pilotées par des événements, diagrammez des systèmes complexes, et comprenez les fondations des microservices et de l'informatique sans serveur. Concevez des pipelines de données et des stratégies de stockage, raisonnez sur l'architecture des systèmes d'apprentissage automatique, et prenez des décisions éclairées concernant le cache, les CDN, l'IoT et les systèmes blockchain. À la fin, vous serez équipé pour passer de "code fonctionnel" à des architectures bien conçues, résilientes, adaptées aux systèmes logiciels modernes.
- Ingénierie des Vibres
Maîtrisez les compétences professionnelles pour concevoir des logiciels de qualité production avec des assistants IA, des agents et des outils. Vous apprendrez à examiner le code généré par l'IA pour les risques de qualité, de sécurité et de fiabilité, et à maîtriser la communication structurée pour éviter les écueils courants comme les hallucinations et la sur-ingénierie. En intégrant l'IA dans tout le cycle de développement, de la planification et du codage aux tests et à la documentation, vous construirez des logiciels plus rapidement tout en maintenant des normes d'ingénierie et une responsabilité professionnelle.
Enseigné par
Liam Stevens, Laura Morinigo, Afreen Aliya and Bruce Cantarim
Matières
Computer Science