Popular courses
Sort by views this month or all-time views.
Introduction to Calculus
Begin calculus with functions, angles and radians, trigonometry, exponentials, logarithms, inequalities, limits, continuity, derivatives, antiderivatives, and integrals. Explore interactive graphs and work through the original exercises. Chapters 1β5 are available in English and Chinese.
- Understand domains, ranges, and basic function families
- Explore angles, the unit circle, and trigonometric functions
- Work with exponential and logarithmic functions
- Solve inequalities using intervals, cases, and sign charts
Introduction to Microeconomics
Start with scarcity and opportunity cost, then build an understanding of supply and demand, elasticity, consumer and firm decisions, market structures, market failures, and public policy.
- Analyze everyday choices with opportunity cost and marginal thinking
- Explain how prices coordinate supply and demand
- Compare decisions across consumers, firms, and market structures
- Evaluate taxes, regulation, and responses to market failures
Data Structures and Algorithms
Begin with complexity analysis, then learn common data structures, sorting and searching algorithms, and techniques such as divide and conquer, greedy algorithms, dynamic programming, and pattern matching.
- Analyze the time and space complexity of algorithms
- Understand and implement common data structures
- Master classic sorting, searching, and graph algorithms
- Solve problems with divide and conquer, greedy algorithms, and dynamic programming
Operating System
Begin with operating system and hardware foundations, then study processes and concurrency, memory management, I/O and storage devices, and file systems and protection.
- Understand OS abstractions, resource management, and system calls
- Analyze process scheduling, synchronization, and deadlocks
- Explain address translation, virtual memory, and page replacement
- Understand I/O, file systems, durability, and access control
Computer Networking
Study computer networking from the top down, beginning with network foundations and progressing through the application, transport, network, and link layers to understand Internet protocols, reliable transfer, routing, and LAN communication.
- Understand TCP/IP layers, encapsulation, and network performance
- Work with HTTP, DNS, and TCP/UDP socket programming
- Analyze reliable transfer, flow control, and congestion control
- Explain IP addressing, routing, Ethernet, and wireless LANs
Python Programming Foundations
Start with Python syntax and data types, then learn branches, loops, sequences, functions, and modules before moving into object-oriented programming, exception handling, and file I/O.
- Run your first Python program
- Master control flow, sequences, and functions
- Understand modules, objects, and inheritance
- Read and write text and CSV files
Basic Linux Usage
Start with Linux and shell foundations, practice files, search, and text processing, then learn permissions, processes, packages, and system inspection.
- Build an accurate model of Linux and the kernel
- Safely handle files and process text data
- Understand users, groups, permissions, and sudo boundaries
- Investigate processes and perform basic package and system checks
Git Version Control Foundations
Start with Git fundamentals and history, then progress through branches, merging, GitHub collaboration, pull requests, issues, and CI/CD.
- Use add, commit, branches, and merge
- Handle simple merge conflicts
- Connect and synchronize GitHub remotes
- Collaborate with issues, pull requests, and review
- Understand GitHub Actions and CI/CD
Database and SQL Basics
Start with the concrete ideas of tables, rows, and columns, then meet databases, SQL, and database management systems by building a small users-products-orders data model.
- Read tables as rows and columns
- Distinguish databases, SQL, and database systems
- Understand reading, inserting, updating, and deleting data
- Analyze related data with JOIN, aggregates, and GROUP BY
C Programming Foundations
Learn C control flow, arrays, strings, functions, program construction, pointers, files, and custom data types as a foundation for systems programming.
- Compile and organize multi-file C programs
- Process data with arrays, strings, and files
- Organize programs with functions and custom types
- Understand pointers and dynamic memory management
C++ Programming Foundations
Learn C++ control flow, arrays, strings, functions, program construction, and pointers as a foundation for algorithms and large-scale software.
- Compile and organize multi-file C++ programs
- Process data with arrays and strings
- Decompose problems with functions and recursion
- Understand pointers and dynamic memory management
Java Programming Foundations
Build a clear Java foundation from Hello World, the JVM, variables, input/output, branches, and loops through arrays, String, methods, OOP, and exception handling.
- Run a first Java program and understand the JVM
- Use static types, input/output, and operators
- Organize control flow with if, switch, and loops
- Progress to arrays, methods, OOP, and exception handling
HTML / CSS / JavaScript for Beginners
Learn HTML, CSS, and JavaScript as one practical foundation: structure meaningful content with HTML, design styles and layouts with CSS, and use JavaScript branches, loops, data processing, and interaction logic to build complete web pages.
- Write complete HTML documents from scratch
- Explore elements in real browser previews
- Organize text, links, images and tables
- Build labeled forms with native validation
- Create clear, flexible styles and layouts with CSS
- Use JavaScript branches, loops, arrays, strings, and functions