Le cours est divisé en quatre "unités de connaissances", chaque unité possédant un objectif pédagogique précis. Ces unités de connaissances sont là pour aider à la bonne compréhension des étapes et concepts clés du développement logiciel. Les concepts manipulés sont mis en œuvre avec le langage de programmation Java pour des raisons de simplicité, mais sont tout à fait transposables à un autre langage de programmation.
L'unité 1 apprend aux étudiants à se poser les bonnes questions avant de commencer à programmer en les aidant à décomposer leur raisonnement. A partir de l'énoncé du projet à réaliser, il s'agit d'identifier les données importantes et comment les représenter de manière informatisée.
L'unité 2 permet ensuite une structuration de ces données afin de pouvoir les utiliser facilement, et donc de simplifier la programmation.
L'unité 3 aide ensuite à la bonne structuration de la solution en plusieurs parties, pouvant être réalisées et réutilisées indépendamment, puis intégrées ensemble en un programme complet.
Cette démarche est ensuite mise en œuvre de façon globale au cours de l'unité 4. Durant cette unité l'étudiant doit réaliser un devoir maison en autonomie, et les séance de cours consolident tous les acquis par l'écriture d'un programme complet.