Popular courses
Sort by views this month or all-time views.
Data Analysis with Python
Use NumPy, pandas, Matplotlib, and scikit-learn to build a complete workflow from data preparation, transformation, and visualization to regression, classification, clustering, and time-series analysis.
- Process data efficiently with NumPy and pandas
- Clean, transform, and visualize real datasets
- Build reliable machine-learning evaluation workflows
- Perform regression, classification, clustering, and time-series analysis
AI and Large Language Models for Everyone
Understand AI, large language models, and everyday terminology through familiar examples, then learn to ask clearly, judge answers, choose products, and complete a first AI-assisted task safely.
- Understand everyday AI and LLM language
- Give AI clear and useful instructions
- Spot mistakes and verify important claims
- Safely complete real work, study, and life tasks
Database and SQL Foundations
Build a product-neutral SQL foundation from relational databases through CREATE, ALTER, DROP, INSERT, SELECT, ORDER BY, UPDATE, DELETE, filters, JOINs, aggregation, subqueries, transactions, locks, indexes, views, and functions, with explicit notes for MySQL, PostgreSQL, SQLite, SQL Server, and other dialect differences.
- Build product-neutral SQL foundations
- Understand the boundaries between DDL, DML, queries, and transactions
- Use JOIN, GROUP BY, HAVING, and subqueries with confidence
- Understand the roles and risks of indexes, views, functions, and locks
Software Engineering in Practice
For learners who already know how to program, this course develops engineering judgment across complexity, process models, requirements, design, implementation collaboration, testing, quality, technical debt, project risk, delivery operations, maintenance, and security.
- Understand software complexity, feedback, and risk through an engineering lens
- Choose process models based on project context
- Practice core judgment around requirements, design, testing, quality, and technical debt
- Understand how delivery, operations, maintenance, and security shape engineering decisions
Git Version Control Foundations
Build a practical Git mental model from repositories, working tree, staging area, commits, history, branches, merging, and remote collaboration.
- Understand Git's three core areas
- Write clear commits and inspect history
- Use branches, merges, and conflict resolution
- Understand push, pull, fetch, and remote collaboration
Linux Command Line and System Foundations
Start from the Linux kernel, distributions, and shells, then build real server-ready skills through a terminal sandbox, path resolver, pipe builder, editor simulator, permission calculator, and service diagnosis lab.
- Understand Linux, distributions, and shells
- Use navigation, inspection, file, and text-processing commands
- Practice nano, vim, permissions, and sudo safely
- Diagnose basic process, service, log, port, and package issues
Python Programming Foundations
Start from Hello World, variables, input/output, branches, loops, containers, functions, modules, files, object-oriented programming, and exceptions to build a clear first mental model for Python programming.
- Run your first Python program
- Understand values, variables, and keywords
- Use modules, files, OOP, and exceptions confidently
- Break down real problems with interactive labs
C Programming Foundations
Learn C programming step by step, from Hello World, variables, input/output, branches, loops, arrays, strings, and functions to pointers, file I/O, and structs, while mastering macros, multi-file builds, command-line arguments, dynamic memory, and unions.
- Compile and run your first C program from the command line
- Use variables, I/O, branches, loops, arrays, strings, and functions
- Understand pointers, headers, multi-file builds, structs, and dynamic memory
- Inspect compilation, memory, and data changes through interactive labs
C++ Programming Foundations
Learn C++ programming step by step, from Hello World, variables, input/output, branches, loops, arrays, strings, and functions to macros, headers, command-line arguments, pointers, object-oriented programming, exception handling, and file I/O, while building a first mental model for compilation, static types, and control flow.
- Run your first C++ program and understand the g++ compile flow
- Use variables, input/output, relational operators, and logical operators
- Control program flow with if, switch, while, do-while, and for
- Organize batches of data with arrays, two-dimensional arrays, and std::string
- Break programs into functions and understand scope and recursion
- Understand macros, preprocessing, headers, multi-file builds, and command-line arguments
- Understand pointers, addresses, dynamic memory, and multiple levels of indirection
- Use classes, constructors, destructors, friends, operator overloading, inheritance, abstract classes, and polymorphism
- Use try, catch, throw, and custom exceptions to express runtime failures
- Use C++ streams and filesystem to read and write text, manage directories, and keep encoding consistent
Java Programming Foundations
Learn Java programming step by step, from Hello World, variables, input/output, branches, loops, arrays, and Java String methods to methods, recursion, object-oriented programming, exception handling, and file I/O, while building a first mental model for the JVM, static types, and control flow.
- Run your first Java program and understand the JVM's role
- Use variables, input/output, relational operators, and logical operators
- Control program flow with if, switch, while, do-while, and for
- Work with arrays, String, methods, recursion, OOP, exceptions, and file I/O
Compiler Theory and Engineering
For learners with a strong computer science foundation, this course studies the full path from source code to executable behavior: lexing, parsing, semantics, types, IR, optimization, code generation, runtime systems, linking, virtual machines, JIT, computability, and compiler engineering practice.
- Understand compiler pipelines and real build systems
- Master formal languages, automata, parsing, and semantic analysis
- Design ASTs, symbol tables, type checkers, and intermediate representations
- Understand optimization, code generation, linking, loading, runtimes, and JIT
- Turn theory into engineering through a small-language compiler project
Design Patterns, Visualized
For advanced developers who already know at least one mainstream language, this course breaks down 33 classic design patterns through hands-on interactive labs: creational, structural, behavioral, and J2EE enterprise patterns. Every pattern starts from a real design pressure: what it solves, when not to use it, and how to express it in code.
- Understand each pattern through change pressure, not memorization
- Weigh the tradeoffs across creational, structural, and behavioral families
- See how classic GoF and J2EE patterns actually land in code
- Learn when to apply a pattern and when to refuse it
Web Frontend Basics: HTML / CSS / JavaScript
For absolute beginners, starting from 'how is a web page actually built?' Use HTML to build the skeleton, CSS to style the look, and JavaScript to bring the page to life. Every concept comes with a hands-on lab where code and result change together in real time.
- Understand that a web page is made of three parts: HTML, CSS, and JavaScript
- Write common HTML tags and configure them with attributes
- Use CSS selectors, the box model, and Flexbox to control look and layout
- Treat JavaScript as your first programming language: variables, branches, loops, functions, arrays, objects, and classes
Discrete Math
Build a rigorous foundation for discrete structures in computer science and mathematics through sets, logic, Boolean algebra, proof, counting, recursion, number theory, probability, trees, graphs, and finite-state models.
- Describe discrete structures precisely
- Master proof, counting, and recursive reasoning
- Understand trees, graphs, and discrete algorithms
- Apply number theory, probability, and logic to computing
Microprocessor Fundamentals
Start from zero and learn microprocessors, 8086 architecture, assembly language, buses, memory, input/output, interrupts, and programmable interfaces through interactive experiments and a verifiable system capstone.
- Explain how programs drive hardware at the signal, data, and instruction levels
- Read and write foundational 8086 assembly programs
- Design memory, I/O, and interrupt interfaces
- Verify microcomputer systems with timing diagrams, address maps, and execution traces