The TLF Logo

If you know mathematics, you know everything. Our program combines the deep analytical rigor of Eastern mathematical traditions with the Western project-oriented approach.

We focus on mathematics, physics, and computer science, using a problem-solving methodology that not only builds a strong understanding of science but also equips students with the skills to tackle complex problems and apply their knowledge in real-world situations.

The result is a solid foundation in mathematics and science, developing both deep understanding and innovation. With the IB diploma and opportunities to train for math, physics, and CS competitions, students are well-prepared to pursue higher education at top universities.

"The successful user of mathematics is practically an inventor of new ways of obtaining answers in given situations."

— R. Feynman

Why Choose Our Program?

A Dynamic and Tailored Curriculum

Below is our advanced curriculum for Mathematics, Computer Science, and Physics. The specific topics covered are flexible and will be adapted based on several key factors:

  • Program Duration: The depth and breadth of topics will vary depending on whether you are enrolled in the 4-year, 3-year, or 2-year program.
  • Chosen Specialization: Your selected major in Mathematics, Computer Science, or Physics will determine the core focus of your studies.
  • Class Dynamics: To maximize learning outcomes, we tailor the curriculum to the collective pace and strengths of each class as it progresses.

Ultimately, your potential is the limit. We offer a wealth of additional opportunities, including extra sessions and olympiad training clubs, to help you delve deeper and achieve your highest aspirations.


Curriculum Outline

Advanced Mathematics Curriculum Outline

This curriculum is designed for students with a profound interest in mathematics, seeking to build a rigorous, proof-based foundation that extends far beyond the standard high school syllabus. The program is structured to develop a deep conceptual understanding of abstract structures in algebra, the formal underpinnings of calculus (analysis), and the modern perspective on geometry through transformations and vector spaces. The core emphasis is on logical reasoning, abstract problem-solving, and appreciating the interconnectedness and elegance of pure mathematics.


I. Algebra and Arithmetic

The Ring of Integers and Modular Arithmetic

The Ring of Polynomials

The Field of Complex Numbers

Combinatorics and Permutation Groups

II. Calculus (Analysis)

Set Theory

Sequences and Limits

Properties of Real Numbers

Infinite Numerical Series

Continuous Functions

Differentiation

Integration

III. Geometry

Transformational Geometry and Complex Numbers

Geometry of Vector Spaces

Return to Curriculum Overview

Computer Science

Our Computer Science curriculum is designed as a dynamic, multi-track program that weaves together foundational theory, practical skills, and advanced problem-solving.


Track: Projects, Collaboration, and Modern Development

This track equips students with the essential tools, methodologies, and collaborative skills necessary to build, manage, and deploy software projects effectively in a team-based, AI-assisted environment.

Main focus is on the practical skills required to move from a solo coder to an effective member of a development team, incorporating modern tools, agile methodologies, and the transformative impact of AI.

Module 1: AI-Assisted Development

  1. AI as a Development Partner: LLMs and Copilots

    Leveraging Large Language Models (LLMs) to accelerate the development process. This module covers using AI-powered tools like GitHub Copilot for code completion and suggestion, and interacting with models like GPT-4 or Claude for debugging, refactoring, and generating documentation.

  2. Prompt Engineering for Software Developers

    The practice of communicating effectively with AI models. Students will learn how to craft precise and context-rich prompts to generate reliable code snippets, write clear technical documentation, create comprehensive test cases, and explain complex algorithms.

  3. Generative AI for Project Assets

    Using generative models to create visual and data assets for projects. This involves leveraging image generation models (e.g., DALL-E, Midjourney) for UI mockups and placeholder graphics, and using LLMs to create synthetic datasets for testing applications.

Module 2: Foundations of Collaborative Development

  1. Collaborative Planning and Ideation

    Mastering tools for brainstorming and shared documentation. This module covers using virtual whiteboards like Miro for mind-mapping and Google Docs for creating and co-editing project proposals and technical specifications.

  2. Version Control with Git

    Understanding the cornerstone of modern software development. Students will learn the fundamentals of Git for tracking changes, working on features in parallel using branches, and merging contributions without losing work.

  3. Team Workflows with GitHub

    Applying Git in a collaborative setting using platforms like GitHub. This topic focuses on the Pull Request workflow for code review, using Issues for task management, and organizing project progress with Kanban boards.

Module 3: Project Management and Agile Methodologies

  1. Agile Principles

    An introduction to modern, adaptive project management. Students learn the core principles of the Agile Manifesto including sprints, user stories, and retrospectives, to manage a project's lifecycle.

  2. Modern Product Development Methodology.

    • Students will learn to navigate the product lifecycle, from initial idea validation to launching a Minimum Viable Product (MVP).
    • The emphasis is on a user-centric, hypothesis-driven approach, where the MVP serves as the smallest possible experiment to test core assumptions with real users. Insights gathered from user testing and feedback loops are then used to refine product features and shape development priorities through user stories, ensuring the final product effectively solves a genuine user problem.

Module 4: Capstone Projects


Track: Programming Foundations and Python

This track is designed to build a strong foundation, from fundamental programming principles to advanced Python features and paradigms essential for excelling in IB DP Computer Science HL.

We use Python here as the perfect prototyping and modelling language.

This track focuses on developing a deep understanding of programming logic and mastering the Python language, from its basic syntax to its most powerful features.

Module 1: Foundations of Programming

  1. Variables, Data Types, and Simple Calculations

    Introduction to core programming concepts, including storing data in variables. Understanding fundamental data types like integers (int), floating-point numbers (float), and strings (str), and performing basic arithmetic operations.

  2. Control Flow: Conditionals and Loops

    Mastering program logic and flow. Covers using if-else statements for decision-making, and for and while loops for handling repetitive tasks and iterating over sequences.

Module 2: Python Core Concepts

  1. String Manipulation

    In-depth work with text data. Covers slicing, indexing, common string methods (find, replace, split, join), character encoding (ASCII/Unicode), and functions like ord() and chr().

  2. Data Structures I: Lists

    A deep dive into Python's primary mutable sequence type. This topic includes creating, indexing, slicing, modifying lists, and advanced techniques for working with nested (multidimensional) lists to represent grids or matrices.

  3. Data Structures II: Sets and Dictionaries

    Introduction to Python's powerful collection types for unordered data. Focuses on the mathematical properties of sets for uniqueness and efficiency, and the key-value structure of dictionaries for fast lookups.

  4. Functions and Recursion

    Structuring code into reusable and modular blocks with functions. Introduces the powerful concept of recursion, where a function calls itself to solve problems that have repeating sub-structures.

  5. File I/O and OS Interaction

    Learning to read data from and write data to files, a fundamental skill for any application. This also covers basic interaction with the operating system to navigate directories, list files, and manage the file system programmatically.

Module 3: Intermediate Python and Problem Solving

  1. Comprehensions

    Writing concise, readable, and efficient "Pythonic" code. This topic covers the syntax for list, set, and dictionary comprehensions to create collections from existing iterables in a single line.

  2. Bitwise Operations

    Understanding and applying low-level operations (AND, OR, XOR, NOT, shifts) on the binary representation of integers. Essential for performance optimization, data manipulation, and certain algorithmic tasks.

  3. Parsing Expressions

    Techniques for analyzing and interpreting structured text, such as mathematical formulas. Introduces concepts like tokenization, Reverse Polish Notation (Shunting-yard algorithm), and building Abstract Syntax Trees (ASTs).

  4. Regular Expressions

    Mastering the powerful mini-language for pattern matching in text. Covers the re module for searching, splitting, and substituting strings based on complex patterns, a critical skill for data processing.

Module 4: Advanced Python & Paradigms

  1. Object-Oriented Programming (OOP) in Python

    An introduction to the principles of OOP. This topic covers defining custom classes and objects with attributes (data) and methods (functions), encapsulating complex logic into reusable structures.

  2. Implementing Custom Types with Magic Methods

    A practical application of OOP by building custom classes that behave like built-in types (e.g., Fraction, Complex, Polynomial, date). This involves overloading operators by implementing "magic methods" like __init__, __add__, __str__, and __repr__ (e.t.c.).

  3. Advanced Iteration and Generators

    Understanding the iteration protocol in Python. Creating memory-efficient data pipelines using generator functions and the yield keyword for lazy evaluation of potentially infinite sequences.

  4. Error and Exception Handling

    Writing robust and resilient code by anticipating and managing errors. This covers the try...except...finally blocks to handle runtime errors gracefully without crashing the program.

  5. Modules and Packages

    Organizing large projects into a modular structure. Covers creating and importing custom modules and understanding Python's package ecosystem to leverage third-party libraries.

  6. Functional Programming Concepts

    Exploring an alternative programming paradigm within Python. This topic introduces lambda functions for creating anonymous one-line functions, and higher-order functions like map and filter.

  7. Decorators

    A powerful Python feature for modifying or enhancing functions without changing their source code. This topic explains how decorators work and how to create them for tasks like logging, timing, and caching.

  8. Code Style, Documentation, and Type Hinting

    Writing professional, readable, and maintainable code. Covers the PEP 8 style guide, writing effective docstrings, and using Python's type hinting system to improve code clarity and enable static analysis.

  9. Testing and Debugging

    Ensuring code correctness and reliability. Introduction to debugging techniques and writing automated tests using frameworks like unittest or pytest to validate program functionality.


Track: Algorithmic Thinking and Problem Solving

This track is designed to develop computational thinking and mastery of essential algorithms and data structures. It focuses on analyzing problem complexity and designing efficient, scalable solutions.

This track is language-agnostic and focuses on the fundamental concepts, data structures, and design paradigms that are essential for solving complex problems efficiently.

Module 1: Foundations of Algorithmic Analysis

  1. Algorithm Complexity and Big O Notation

    Introduction to the formal measurement of algorithm efficiency. Covers time and space complexity analysis using Big O notation to compare algorithms and predict their performance on large datasets.

  2. Fundamental Data Structures

    Exploration of the core building blocks for efficient algorithms. Covers the implementation and application of Stacks (LIFO), Queues (FIFO), Deques, and Priority Queues (using Heaps).

Module 2: Core Algorithms for Searching and Sorting

  1. Searching Algorithms

    Techniques for locating data within a collection. Covers linear search for unordered data and the significantly more efficient binary search for sorted data, including its variations for finding lower/upper bounds.

  2. Sorting Algorithms

    A comprehensive study of methods for arranging data. Begins with simple quadratic sorts (Selection, Insertion, Bubble) to understand the fundamentals, then moves to efficient divide-and-conquer algorithms like Mergesort and Quicksort, and concludes with Heapsort.

Module 3: Algorithmic Design Paradigms

  1. Recursion and Backtracking

    A powerful problem-solving technique for exploring complex state spaces. Covers how to solve problems by breaking them down into smaller, self-similar instances, and using backtracking to systematically search for solutions (e.g., N-Queens, solving mazes).

  2. Greedy Algorithms

    An intuitive approach to optimization problems by making locally optimal choices at each step. This module explores when this strategy works and when it fails, using classic examples like the change-making problem and activity selection.

  3. Divide and Conquer

    A core algorithmic strategy where a problem is solved by recursively breaking it down into two or more sub-problems of the same type, until these become simple enough to be solved directly. Mergesort and Quicksort serve as primary examples.

  4. Dynamic Programming

    A technique for solving optimization problems by breaking them into overlapping subproblems and storing their solutions to avoid redundant computation (memoization). Classic problems like the Knapsack problem and Longest Common Subsequence are studied.

Module 4: Algorithms on Graphs

  1. Graph Representation and Traversal

    Introduction to graph theory, covering representations (Adjacency Matrix vs. Adjacency List) and fundamental traversal algorithms: Breadth-First Search (BFS) for shortest paths in unweighted graphs and Depth-First Search (DFS) for exploring connectivity and detecting cycles.

  2. Shortest Path Algorithms

    Finding the least-cost path in a weighted graph. Focuses primarily on Dijkstra's algorithm for graphs with non-negative edge weights.

  3. Minimum Spanning Trees (MST)

    Algorithms for finding the cheapest subset of edges that connects all vertices in a weighted, undirected graph. Covers Prim's algorithm as a classic greedy approach to this problem.

Module 5: Specialized Algorithmic Domains

  1. Number Theory and Arithmetic Algorithms

    A study of algorithms for integer problems. Includes the Euclidean algorithm for GCD, primality tests (from trial division to probabilistic methods like Miller-Rabin), the Sieve of Eratosthenes, and base conversion.

  2. Computational Geometry

    Algorithms for solving problems with geometric inputs. Covers representations of points and vectors, and the use of dot and cross products to solve problems involving distance, area, orientation, and intersection of basic shapes.

  3. Advanced Algorithmic Techniques

    Introduction to powerful optimization strategies for specific problem structures. Covers the Two Pointers method for linear-time processing, the Sweep Line algorithm for geometric problems, and Branch and Bound as a technique to prune the search space in optimization problems.


Track: Applied Tools and Libraries

This track bridges the gap between theoretical knowledge and practical application, equipping students with the essential tools used in data science, software development, and academic research.

Module 1: Data Handling and Interchange

  1. Working with Tabular Data (CSV)

    Mastering the ubiquitous Comma-Separated Values format for data import/export. This includes parsing structured data from text files and writing them.

  2. Working with Web Data (JSON)

    Understanding and manipulating JavaScript Object Notation (JSON), the standard format for data exchange in modern web APIs. Covers serialization and deserialization to work with nested data structures.

  3. Relational Databases and SQL

    An introduction to managing large, structured datasets using relational databases like SQLite. Focuses on writing SQL (Structured Query Language) queries to create, retrieve, update, and filter data from tables.

Module 2: Scientific Computing and Data Analysis

  1. Spreadsheet Automation and Analysis

    Moving beyond manual spreadsheet use by learning to programmatically manipulate data in tools like Excel or Google Spreadsheets. This topic covers the use of formulas, functions, and data filtering to perform complex analysis.

  2. Numerical Computing with NumPy

    An essential introduction to the core library for scientific computing in Python. Focuses on creating and manipulating high-performance multidimensional arrays (vectors and matrices) and leveraging vectorized operations for speed.

  3. Digital Image Processing

    A practical application of numerical computing, treating images as numerical matrices. This module covers fundamental image manipulation techniques like color channel separation, filtering (blurring, sharpening), geometric transformations (rotation, scaling), and feature detection.

Module 3: Visualization and Presentation

  1. Scientific and Data Visualization

    Creating informative and publication-quality charts and graphs from data. This topic introduces the matplotlib library for plotting functions, histograms, and other visual representations to analyze trends and patterns.

  2. Generative and Algorithmic Art

    Exploring the creative side of programming by using algorithms to generate visual art. Covers techniques like Turtle graphics and L-systems to create intricate patterns, fractals, and plant-like structures.

  3. Scientific Document Preparation with LaTeX

    Mastering the professional standard for typesetting academic and technical documents. This topic covers the fundamentals of LaTeX for creating structured reports, articles, and presentations with a focus on beautifully rendering complex mathematical formulas.

Module 4: Building and Deploying Applications

  1. Interacting with Web APIs

    Learning how to make programs communicate with external services over the internet. Covers using HTTP requests to fetch data from web APIs (e.g., for weather, currency exchange rates) and processing the JSON responses.

  2. Building Bots and Automated Systems

    A hands-on project in creating automated agents. This involves using a framework to build a Telegram bot that responds to user commands, interacts with external APIs, and manages state.

  3. Server Administration and Deployment

    Understanding the full lifecycle of a software application, from development to deployment. This module covers setting up a Virtual Private Server (VPS), configuring a secure Linux environment, and deploying a bot or web application to be accessible 24/7 on the internet.

Module 5: Advanced Applications

  1. Introduction to Artificial Intelligence and Neural Networks

    A conceptual and practical introduction to the fundamentals of machine learning. Covers the basic architecture of neural networks and the use of genetic algorithms or gradient descent to train simple models for tasks like prediction and classification.

  2. Simulation and Modeling

    Creating computational models to simulate and study real-world systems. This project-based topic involves using libraries like pygame to model physical phenomena.


Track: Competitive Programming and Olympiads

This track focuses on the mastery of algorithms, data structures, and problem-solving paradigms essential for high-level competitive programming. The emphasis is on efficiency, correctness, and the ability to analyze and solve complex algorithmic puzzles under pressure. C++ basics are included here.

Module 1: Core Algorithmic Techniques

  1. Binary Search and its Applications

    Mastering the binary search algorithm on sorted arrays and its extension to monotonic functions. This includes the powerful "binary search on the answer" technique for solving optimization problems.

  2. Two Pointers and Sliding Window

    Linear-time techniques for processing arrays and sequences. This module covers using two pointers to solve problems involving subarrays or subsequences that satisfy certain properties, optimizing from a quadratic to a linear solution.

  3. Prefix Sums and Difference Arrays

    A fundamental technique for efficiently answering range query problems. Covers pre-calculating sums on prefixes to answer any range sum query in O(1) time, and its applications in 1D and 2D.

Module 2: Essential Data Structures

  1. Stacks, Queues, and Deques

    Implementing and applying linear data structures. Focuses on using stacks for LIFO-based problems (e.g., parenthesis matching, nearest greater element), queues for FIFO scenarios (e.g., BFS), and deques for combined functionality.

  2. Priority Queues and Heaps

    Understanding the heap data structure for efficient retrieval of the minimum or maximum element. This is crucial for implementing algorithms like Dijkstra's, Prim's, and solving problems involving scheduling or greedy choices.

  3. Disjoint Set Union (DSU) / Union-Find

    A specialized data structure for tracking a set of elements partitioned into a number of disjoint (non-overlapping) subsets. Covers path compression and union by rank/size optimizations, essential for problems on graph connectivity and Kruskal's algorithm.

  4. Segment Trees and Fenwick Trees (Binary Indexed Trees)

    Advanced data structures for handling range queries with point updates in logarithmic time. These are indispensable for a wide range of problems involving dynamic arrays where prefix sums are insufficient.

Module 3: Foundational Algorithmic Paradigms

  1. Complete Search and Backtracking with Pruning

    Systematically exploring the entire search space of a problem. This module focuses on recursive backtracking to generate combinatorial objects (permutations, subsets) and pruning techniques (branch and bound) to cut off unpromising search paths.

  2. Dynamic Programming (DP)

    A core paradigm for solving optimization and counting problems. Covers formulating DP states and transitions for various problem types, including DP on sequences (LCS), the Knapsack problem, DP on grids, and DP on subsets (bitmask DP).

Module 4: Graph Algorithms

  1. Graph Traversal and Applications

    In-depth study of Breadth-First Search (BFS) for shortest paths in unweighted graphs and Depth-First Search (DFS) for connectivity, cycle detection, topological sorting, and finding bridges and articulation points.

  2. Shortest Paths in Weighted Graphs

    Algorithms for finding the minimum-cost path between vertices. Covers Dijkstra's algorithm for non-negative weights and the Bellman-Ford and Floyd-Warshall algorithms for graphs that may contain negative weights.

  3. Minimum Spanning Trees (MST)

    Algorithms for finding a minimum-weight subset of edges that connects all vertices in a graph. Covers both Prim's algorithm (dense graphs) and Kruskal's algorithm (sparse graphs, using DSU).

Module 5: Specialized Domains

  1. Number Theoretic Algorithms

    Essential mathematical algorithms for competitive programming. Includes prime factorization, the Sieve of Eratosthenes, modular arithmetic (including modular inverse and exponentiation), and solving linear Diophantine equations.

  2. Computational Geometry

    Core concepts and algorithms for solving geometric problems. Covers vector operations (dot/cross product), convex hull algorithms (e.g., Graham scan), and the sweep-line paradigm for intersection problems.

  3. String Algorithms

    Efficient algorithms for processing text data. This includes linear-time pattern searching with the Knuth-Morris-Pratt (KMP) algorithm, string hashing for fast substring comparison, and an introduction to suffix structures like Suffix Arrays.

Module 6: Advanced Techniques

  1. Square Root Decomposition

    A versatile "meet-in-the-middle" technique for balancing query and update times. Decomposes an array into blocks of size √N to achieve O(√N) performance for various range query problems.

  2. Lowest Common Ancestor (LCA) in Trees

    An important problem on trees with numerous applications. Covers the efficient binary lifting technique, which allows answering LCA queries in O(log N) time after an O(N log N) preprocessing step.

  3. Game Theory and Sprague-Grundy Theorem

    An introduction to the mathematical theory of impartial games. Covers concepts like winning/losing positions, Nim-sums (XOR), and the Sprague-Grundy theorem for analyzing the composition of games.

Return to Curriculum Overview

Advanced Physics Curriculum Outline

This curriculum is designed for intellectually curious and highly motivated students aiming for a deep, conceptually-rich, and mathematically rigorous understanding of physics. The program is structured to build a solid foundation in classical mechanics and thermodynamics, progressing to the sophisticated concepts of electromagnetism, waves, and culminating in the frontiers of modern physics, including relativity, quantum mechanics, and astrophysics. The emphasis is on first-principles thinking, advanced problem-solving, experimental design and analysis, and appreciating the profound connections between different areas of physics.


I. Foundations of Physics

II. Mechanics

III. Thermal Physics

IV. Oscillations and Waves

V. Electricity and Magnetism

VI. Optics

VII. Modern Physics

VIII. Advanced Modules & Special Topics

Return to Curriculum Overview