Lesson 1Date and time handling: creating and formatting timestamps, timezone-awareness, ISO 8601 representation (language-specific APIs)Handle dates, times, and time zones using language APIs. Learn to create timestamps, parse and format values, work with ISO 8601, and avoid common pitfalls such as daylight saving and naive datetime usage.
Date, time, and datetime objectsCreating and parsing timestampsFormatting and ISO 8601 stringsTime zones and offsets handlingDuration, period, and arithmeticLesson 2Advanced type features: typing annotations (Python typing module) or generics (Java), enums, sealed types (if applicable)Dive into advanced type system features such as type annotations or generics, enums, and sealed types where available. Learn how these tools improve safety, expressiveness, and maintainability in large codebases.
Type annotations or generics basicsParameterized collections and APIsEnums for finite state modelingSealed or restricted inheritance typesType inference and compiler checksLesson 3Standard library I/O and filesystem APIs: reading/writing files, path handling, atomic writes and file locks basicsWork with standard library I/O and filesystem APIs to read and write text or binary files. Learn about paths, directories, buffering, atomic writes, and basic file locking to keep data safe and consistent.
Paths, directories, and file handlesReading and writing text filesBinary I/O and buffering strategiesAtomic writes and temporary filesFile locks and concurrency basicsLesson 4Functions and methods: signatures, default/optional parameters, varargs, pure functions vs side effectsUnderstand how to define and call functions or methods, including parameters, return values, and overloading or default arguments. Learn about varargs, pure functions, side effects, and how to design clear, reusable APIs.
Defining functions and method signaturesPositional, named, and default parametersVarargs and overloading strategiesPure functions versus side effectsDesigning clear, reusable APIsLesson 5Primitive and composite types: numbers, strings, booleans, lists/arrays, dictionaries/maps, setsExplore primitive and composite data types, including numbers, strings, booleans, collections, and sets. Learn how to choose appropriate structures, understand mutability, and work with common operations for storing and transforming data.
Numeric types, literals, and overflowStrings, encoding, and interpolationBooleans and conditional expressionsLists, arrays, and indexing operationsMaps, dictionaries, and set collectionsLesson 6Classes, objects and OOP basics: constructors, fields, methods, access modifiers (public/private/protected), static membersGet introduced to object-oriented programming with classes and objects. Learn how to declare fields and methods, use constructors, apply access modifiers, and work with static members to model real-world domains effectively.
Declaring classes and creating objectsFields, properties, and encapsulationConstructors and initialization logicAccess modifiers and visibility rulesStatic fields, methods, and utilitiesLesson 7Exception handling and error propagation: try/catch/finally, creating custom exceptions, best practices for user-facing error messagesLearn how exceptions represent errors, how try, catch, and finally blocks work, and how errors propagate. Design custom exception types and craft user-facing messages that are secure, clear, and actionable.
Exception hierarchy and error categoriesTry, catch, finally control flowThrowing and propagating exceptionsDefining custom exception classesUser-facing error messages and loggingLesson 8Control flow and iteration: if/else, switch (or match), for/while loops, comprehensions (Python) or enhanced for (Java)Master conditional logic and loops using if/else, switch or match constructs, and for or while loops. Learn iteration patterns, short-circuiting, comprehensions or enhanced for, and how to avoid common control flow pitfalls.
If/elif/else and nested conditionalsSwitch or match expressions and patternsWhile loops and loop terminationFor loops, ranges, and iteratorsComprehensions or enhanced for usageLesson 9Syntax and basic programme structure: files, modules/packages (import/require), entry point conventionsLearn how to structure source files, organise code into modules or packages, and define a clear programme entry point. Understand naming, imports, visibility, and layout conventions that keep projects readable and maintainable.
Source file layout and naming rulesModules, packages, and import mechanicsEntry point patterns and main functionsCode style and indentation conventionsOrganizing multi-module projects