Lesson 1Date and time handling: creating and formatting timestamps, timezone-awareness, ISO 8601 representation (language-specific APIs)Manage dates, times, and time zones with language APIs. Learn to generate timestamps, parse and format values, handle ISO 8601, and steer clear of common issues like daylight saving changes 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)Explore advanced type system capabilities like type annotations or generics, enums, and sealed types where supported. Understand how these enhance code safety, expressiveness, and maintainability in large projects.
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 basicsUtilise standard library I/O and filesystem APIs to read and write text or binary files. Master paths, directories, buffering, atomic writes, and basic file locking to ensure data safety and consistency.
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 effectsGrasp defining and invoking functions or methods, covering parameters, return values, and overloading or default arguments. Explore varargs, pure functions, side effects, and designing 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, setsDelve into primitive and composite data types like numbers, strings, booleans, collections, and sets. Select suitable structures, comprehend mutability, and perform common operations for data storage and transformation.
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 membersStep into object-oriented programming with classes and objects. Declare fields and methods, use constructors, apply access modifiers, and leverage static members to effectively model real-world scenarios.
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 messagesUnderstand how exceptions signify errors, the workings of try, catch, and finally blocks, and error propagation. Craft custom exception types and user-friendly messages that are secure, clear, and helpful.
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 with if/else, switch or match, and for or while loops. Grasp iteration patterns, short-circuiting, comprehensions or enhanced for, and sidestep common control flow errors.
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 program structure: files, modules/packages (import/require), entry point conventionsLearn to organise source files, structure code into modules or packages, and establish a clear programme entry point. Follow naming, imports, visibility, and layout conventions for readable, maintainable projects.
Source file layout and naming rulesModules, packages, and import mechanicsEntry point patterns and main functionsCode style and indentation conventionsOrganizing multi-module projects