Learn to code · 学习编程
Code · 代码
Write real code and see it run — HTML, CSS, Python, Java, C, SQL, LaTeX, and Linux — with nothing to install. · 编写真实代码并运行——HTML、CSS、Python、Java、C、SQL、LaTeX 和 Linux——无需安装任何软件。
17 courses · 17 门课程HTML/CSS · Python · Java · C · SQL · LaTeX · LinuxRuns in your browser · 在浏览器中运行
Today's work · 今日任务
Foundations · 基础
Python Basics · Python 基础
Your very first steps in programming — no experience needed. · 编程的第一步 —— 无需任何基础。
22 Lessons · 课程
Python Basics · Python 基础
Your very first steps in programming — no experience needed. · 编程的第一步 —— 无需任何基础。
Course overview and progress · 课程概览与进度 →
00
Run it! · 运行起来!
Your first program · 你的第一个程序
Variables · 变量
Numbers & operators · 数字与运算符
Getting input · 获取输入
Working with strings · 处理字符串
Project: Mad Libs · 项目:填词故事
Making decisions · 做出判断
Counting loops · 计数循环
While loops · while 循环
Project: Guess the number · 项目:猜数字
Lists (1-D arrays) · 列表(一维数组)
Project: Quiz with a score · 项目:带分数的小测验
Functions · 函数
Project: Rock, paper, scissors · 项目:石头剪刀布
Scope & arguments · 作用域与参数
Dictionaries (records) · 字典(记录)
Project: Text adventure · 项目:文字冒险游戏
Planning & pseudocode · 规划与伪代码
Errors & testing · 错误与测试
Putting it all together · 把所有内容综合起来
Project: Hangman · 项目:猜单词(Hangman)
A short history of Python · Python 简史
What Python is used for · Python 用来做什么
Where to learn more · 更多学习资源
Set up your computer · 设置你的电脑
Where to learn more · 深入学习入口
- freeCodeCamp — Learn Python · freeCodeCamp —— 学 Python Free, hands-on Python certification · 免费、动手实践的 Python 认证课程
- PyChallenger Learn Python by solving bite-size challenges · 通过一个个小挑战来学 Python
- CodeCombat Learn to code by playing a real game · 玩一款真正的游戏来学编程
- Official Python Tutorial · Python 官方教程 The clear, free, step-by-step intro from python.org · python.org 出品的清晰、免费、分步教程
- Python for Everybody (free course) · Python for Everybody(免费课程) A beloved beginner course by Dr. Chuck · Dr. Chuck 广受好评的入门课程
- Visual Studio Code The free editor for writing Python on your own computer · 在自己电脑上写 Python 的免费编辑器
- A-Level Computer Science (this site) · A-Level 计算机科学(本站) Take Python further, toward the Cambridge exam · 把 Python 学得更深,面向剑桥考试
- AP CS Principles (this site) · AP 计算机科学原理(本站) The big ideas of computing, in Python · 用 Python 学计算的大思想
JavaScript
The language of the web. Make things happen — runs right in your browser. · 网页的语言。让程序动起来 —— 直接在你的浏览器里运行。
15 Lessons · 课程
JavaScript
The language of the web. Make things happen — runs right in your browser. · 网页的语言。让程序动起来 —— 直接在你的浏览器里运行。
Course overview and progress · 课程概览与进度 →
A short history of JavaScript · JavaScript 简史
What JavaScript is used for · JavaScript 用来做什么
Where to learn more · 去哪里学更多
Run JavaScript anywhere · 在任何地方运行 JavaScript
console.log and comments · console.log 与注释
Variables — let and const · 变量 —— let 与 const
Numbers and maths · 数字与数学
Strings · 字符串
Template literals · 模板字符串
Booleans and comparisons · 布尔值与比较
if / else
for loops · for 循环
while loops · while 循环
Functions · 函数
Arrow functions · 箭头函数
Arrays · 数组
Array methods · 数组方法
Objects · 对象
Putting it together · 综合运用
C Programming · C 语言编程
From printf to pointers, memory, and data structures — compile and run in your browser. · 从 printf 到指针、内存与数据结构 —— 在浏览器中编译并运行。
23 Lessons · 课程
C Programming · C 语言编程
From printf to pointers, memory, and data structures — compile and run in your browser. · 从 printf 到指针、内存与数据结构 —— 在浏览器中编译并运行。
Course overview and progress · 课程概览与进度 →
A short history of C · C 语言简史
What C is used for · C 语言用来做什么
Where to learn more · 更多学习资源
Set up your computer · 设置你的电脑
C basics: main, printf, and functions · C 基础:main、printf 与函数
Variables, types, and arithmetic · 变量、类型与算术
Booleans and selection: if, else, switch · 布尔与选择:if、else、switch
Loops: while, for, and accumulation · 循环:while、for 与累加
Functions, parameters, and return values · 函数、参数与返回值
Nested loops and patterns · 嵌套循环与图案
1-D arrays: store, index, and traverse · 一维数组:存储、索引与遍历
Pointers: &, *, and pass-by-pointer · 指针:&、* 与按指针传参
Strings: char arrays and the null terminator · 字符串:字符数组与结束符
Array algorithms: max, count, search, average · 数组算法:最大值、计数、查找、平均
2-D arrays: working with a grid · 二维数组:处理网格
Searching: linear and binary · 查找:线性与二分
Sorting: bubble, selection, and insertion · 排序:冒泡、选择与插入
Recursion: base case and recursive case · 递归:终止条件与递归情形
Structs and typedef: . vs -> · 结构体与 typedef:. 与 ->
Dynamic memory: malloc, free, and realloc · 动态内存:malloc、free 与 realloc
Linked lists · 链表
Stacks and queues (array-backed) · 栈与队列(用数组实现)
Text files: write then read · 文本文件:先写后读
Error handling with return codes · 用返回码处理错误
Bits, binary, and bitwise operators · 位、二进制与按位运算
Run-length encoding (compression) · 行程长度编码(压缩)
Preprocessor, const, static, and enum · 预处理器、const、static 与 enum
Where to learn more · 深入学习入口
- Learn-C.org Free, hands-on C lessons you run in the browser · 免费、动手实践的 C 语言课程,在浏览器里运行
- Exercism — C track · Exercism —— C 专项 Small exercises with friendly mentor feedback · 小练习,还有友善的导师反馈
- HackerRank — C · HackerRank —— C Practice problems, from easy to hard · 从易到难的练习题
- cppreference — C · cppreference —— C The careful, free reference for every C function · 严谨、免费的参考手册,涵盖每一个 C 函数
- The C Programming Language (K&R) · 《C 程序设计语言》(K&R) The classic book by the makers of C · C 语言创造者所写的经典著作
- Visual Studio Code The free editor for writing C on your own computer · 在自己电脑上写 C 语言的免费编辑器
- C practice problems (this site) · C 练习题(本站) Extra C challenges to test yourself · 更多 C 语言挑战,检验自己
- AP CS A (this site) · AP CS A(本站) Learn Java, another close cousin of C · 学习 Java,C 语言的另一位近亲
Web Basics — HTML & CSS · 网页基础 —— HTML 与 CSS
Start from zero. Short steps. Build a real web page. · 从零开始,一步一步,做出真正的网页。
21 Lessons · 课程
Web Basics — HTML & CSS · 网页基础 —— HTML 与 CSS
Start from zero. Short steps. Build a real web page. · 从零开始,一步一步,做出真正的网页。
Course overview and progress · 课程概览与进度 →
A short history of the web · 网络简史
What a web page is made of · 网页是由什么组成的
Where to learn more · 去哪里学更多
What you need (almost nothing) · 你需要什么(几乎不用)
Your first web page · 你的第一个网页
Headings and paragraphs · 标题和段落
Bold, italic and line breaks · 加粗、斜体和换行
Lists · 列表
Links · 链接
Images · 图片
Make it a real page · 做成一个真正的页面
Comments and neat nesting · 注释与整齐的嵌套
Tables · 表格
Forms · 表单
Boxes and sections · 盒子与分区
Add some style · 加点样式
Selectors — class and id · 选择器 —— class 和 id
Colours and backgrounds · 颜色与背景
Styling text · 文字样式
The box model · 盒模型
Spacing — margin and padding · 间距 —— margin 和 padding
Showing and hiding (display) · 显示与隐藏(display)
Width and centering · 宽度与居中
Rows with Flexbox · 用 Flexbox 排成一行
Mini-project: a profile card · 小项目:个人名片
Where to learn more · 深入学习入口
- MDN — Learn web development · MDN —— 学习网页开发 The clear, free reference from Mozilla · Mozilla 出品的清晰、免费的参考资料
- web.dev — Learn HTML · web.dev —— 学 HTML A free, modern HTML course from Google · 谷歌出品的免费现代 HTML 课程
- web.dev — Learn CSS · web.dev —— 学 CSS A free, modern CSS course from Google · 谷歌出品的免费现代 CSS 课程
- freeCodeCamp — Responsive Web Design · freeCodeCamp —— 响应式网页设计 Free, hands-on HTML + CSS certification · 免费、动手实践的 HTML + CSS 认证课程
- W3Schools — HTML Tutorial · W3Schools —— HTML 教程 Try-it-yourself examples for every tag · 每个标签都能动手试的示例
- Python Basics (this site) · Python 基础(本站) New to coding? Try Python next · 刚接触编程?接下来试试 Python
Exam courses · 考试课程
Python for IGCSE CS · IGCSE 计算机科学 Python
Programming, algorithms, databases and logic for Cambridge IGCSE 0478. · 面向剑桥 IGCSE 0478 的编程、算法、数据库与逻辑。
14 Lessons · 课程
Python for IGCSE CS · IGCSE 计算机科学 Python
Programming, algorithms, databases and logic for Cambridge IGCSE 0478. · 面向剑桥 IGCSE 0478 的编程、算法、数据库与逻辑。
Course overview and progress · 课程概览与进度 →
Sequence, input & output · 顺序、输入与输出
Variables, constants & data types · 变量、常量与数据类型
Selection — IF and CASE · 选择 —— IF 与 CASE
Iteration — loops · 迭代 —— 循环
Totalling & counting · 累加与计数
Procedures & functions · 过程与函数
Validation & verification · 验证与核对
1-D arrays (lists) · 一维数组(列表)
2-D arrays · 二维数组
Searching & max / min · 查找与最大 / 最小值
Bubble sort · 冒泡排序
Text files · 文本文件
Databases & SQL · 数据库与 SQL
Boolean logic & truth tables · 布尔逻辑与真值表
Where to learn more · 深入学习入口
- IGCSE CS handouts (this site) · IGCSE 计算机科学 讲义(本站) Read the theory behind these topics — exam revision · 阅读这些主题背后的理论 —— 考试复习
- IGCSE CS Pseudocode (this site) · IGCSE 计算机科学伪代码(本站) The 0478 exam writes algorithms in pseudocode — practise it here · 0478 考试用伪代码写算法 —— 在这里练习
- Cambridge IGCSE Computer Science 0478 · 剑桥 IGCSE 计算机科学 0478 The official syllabus and past papers · 官方考纲与历年真题
IGCSE CS Pseudocode · IGCSE 计算机科学伪代码
Write and run the pseudocode in the Cambridge IGCSE 0478 syllabus for 2026, 2027 and 2028. · 编写并运行剑桥 IGCSE 0478 2026、2027 与 2028 考纲中的伪代码。
19 Lessons · 课程
IGCSE CS Pseudocode · IGCSE 计算机科学伪代码
Write and run the pseudocode in the Cambridge IGCSE 0478 syllabus for 2026, 2027 and 2028. · 编写并运行剑桥 IGCSE 0478 2026、2027 与 2028 考纲中的伪代码。
Course overview and progress · 课程概览与进度 →
OUTPUT and sequence · OUTPUT 与顺序
Variables, DECLARE and CONSTANT · 变量、DECLARE 与 CONSTANT
INPUT and data types · INPUT 与数据类型
Arithmetic, DIV and MOD · 算术、DIV 与 MOD
Selection: IF · 选择:IF
Selection: CASE · 选择:CASE
Iteration: FOR · 迭代:FOR
Iteration: WHILE and REPEAT · 迭代:WHILE 与 REPEAT
String handling · 字符串处理
1-D arrays · 一维数组
2-D arrays · 二维数组
Procedures · 过程
Functions · 函数
Putting it together · 综合运用
Text files · 文本文件
16
Logic: AND, OR, NOT · 逻辑:AND、OR 与 NOT
17
Nested decisions · 嵌套选择
18
ROUND, RANDOM and a trace · ROUND、RANDOM 与跟踪表
19
Bubble sort · 冒泡排序
Where to learn more · 深入学习入口
- Pseudocode handout (this site) · 伪代码讲义(本站) The 0478 appendix for 2026–2028, with every example runnable · 2026–2028 的 0478 附录,每个例子都可运行
- Python for IGCSE CS (this site) · IGCSE 计算机科学 Python(本站) The same ideas, written in Python you can run · 同样的概念,用可运行的 Python 编写
- IGCSE CS handouts (this site) · IGCSE 计算机科学 讲义(本站) Algorithm design and programming theory · 算法设计与编程理论
- AS-level CS Pseudocode (this site) · AS 计算机科学伪代码(本站) The 9618 guide, for the AS paper — different rules · 9618 指南,用于 AS 试卷 —— 规则不同
Python for A-Level CS · A-Level 计算机科学 Python
Data structures, algorithms, and OOP for Cambridge 9618. · 面向剑桥 9618 的数据结构、算法与面向对象编程。
15 Lessons · 课程
Python for A-Level CS · A-Level 计算机科学 Python
Data structures, algorithms, and OOP for Cambridge 9618. · 面向剑桥 9618 的数据结构、算法与面向对象编程。
Course overview and progress · 课程概览与进度 →
Nested loops & 2-D lists · 嵌套循环与二维列表
Text files · 文本文件
Exceptions · 异常处理
Stacks · 栈
Queues · 队列
Linked lists · 链表
Searching · 查找
Sorting · 排序
Recursion · 递归
Classes & objects · 类与对象
Inheritance & encapsulation · 继承与封装
Programming paradigms · 编程范式
Hash tables · 哈希表
Binary search trees · 二叉搜索树
Graphs · 图
Where to learn more · 深入学习入口
- AS-level CS Pseudocode (this site) · AS 计算机科学伪代码(本站) The 9618 exam writes algorithms in pseudocode — practise it here · 9618 考试用伪代码写算法 —— 在这里练习
- Pseudocode handout (this site) · 伪代码讲义(本站) Every construct, and where 9618 differs from 0478 · 所有语法结构,以及 9618 与 0478 的差异
- A-Level CS handouts (this site) · A-Level 计算机科学 讲义(本站) Read the theory behind these topics — exam revision · 阅读这些主题背后的理论 —— 考试复习
AS-level CS Pseudocode · AS 计算机科学伪代码
Write and run the pseudocode in the Cambridge 9618 guide for exams in 2026, and for 2027, 2028 and 2029. · 编写并运行剑桥 9618 指南中的伪代码,用于 2026 年考试,以及 2027、2028 与 2029 年考试。
19 Lessons · 课程
AS-level CS Pseudocode · AS 计算机科学伪代码
Write and run the pseudocode in the Cambridge 9618 guide for exams in 2026, and for 2027, 2028 and 2029. · 编写并运行剑桥 9618 指南中的伪代码,用于 2026 年考试,以及 2027、2028 与 2029 年考试。
Course overview and progress · 课程概览与进度 →
OUTPUT and sequence · OUTPUT 与顺序
Variables and DECLARE · 变量与 DECLARE
Types and constants · 类型与常量
Arithmetic, DIV and MOD · 算术、DIV 与 MOD
Selection: IF · 选择:IF
Selection: CASE · 选择:CASE
Iteration: FOR · 迭代:FOR
Iteration: WHILE and REPEAT · 迭代:WHILE 与 REPEAT
String handling · 字符串处理
1-D arrays · 一维数组
2-D arrays · 二维数组
Procedures and BYREF · 过程与 BYREF
Functions · 函数
Records · 记录
Text files · 文本文件
Putting it together · 综合运用
17
Linear search and bubble sort · 线性查找与冒泡排序
18
Built-in functions from the insert · 插页上的内置函数
19
Logic: AND, OR, NOT · 逻辑:AND、OR 与 NOT
Where to learn more · 深入学习入口
- Pseudocode handout (this site) · 伪代码讲义(本站) Topic 11 is where the 9618 guide differs from IGCSE 0478 · 第 11 章说明 9618 指南与 IGCSE 0478 的差别
- Python for A-Level CS (this site) · A-Level 计算机科学 Python(本站) The same ideas, written in Python you can run · 同样的概念,用可运行的 Python 编写
- A-Level CS handouts (this site) · A-Level 计算机科学 讲义(本站) Programming and data structures for 9618 · 面向 9618 的编程与数据结构
- IGCSE CS Pseudocode (this site) · IGCSE 计算机科学伪代码(本站) The 0478 rules for 2026–2028 — they are not the same · 2026–2028 的 0478 规则 —— 两者并不相同
Python for AP CS Principles · AP 计算机科学原理 Python
Big ideas of computing — data, algorithms, the Internet, and impact. · 计算机科学的核心思想 —— 数据、算法、互联网与影响。
15 Lessons · 课程
Python for AP CS Principles · AP 计算机科学原理 Python
Big ideas of computing — data, algorithms, the Internet, and impact. · 计算机科学的核心思想 —— 数据、算法、互联网与影响。
Course overview and progress · 课程概览与进度 →
What computing is · 什么是计算
Bits and binary · 比特与二进制
Data compression · 数据压缩
Variables and expressions · 变量与表达式
Lists and data abstraction · 列表与数据抽象
Selection · 选择(分支)
Iteration · 迭代(循环)
Procedures and abstraction · 过程与抽象
Algorithms: searching · 算法:搜索
Randomness and simulation · 随机性与模拟
Algorithmic efficiency · 算法效率
The Internet and how data travels · 互联网与数据如何传输
Parallel and distributed computing · 并行与分布式计算
Impact of computing · 计算的影响
The Create Performance Task (guided) · 创作型表现任务(引导)
Java for AP CS A · AP 计算机科学 A Java
Java programming for the AP Computer Science A exam. · 面向 AP 计算机科学 A 考试的 Java 编程。
19 Lessons · 课程
Java for AP CS A · AP 计算机科学 A Java
Java programming for the AP Computer Science A exam. · 面向 AP 计算机科学 A 考试的 Java 编程。
Course overview and progress · 课程概览与进度 →
A short history of Java · Java 简史
What Java is used for · Java 用来做什么
Where to learn more · 更多学习资源
Set up your computer · 设置你的电脑
Java basics: classes, main, and output · Java 基础:类、main 和输出
Using objects: String, Math, and wrappers · 使用对象:String、Math 和包装类
Booleans and selection: if/else and logic · 布尔值与选择:if/else 和逻辑
Loops: while, for, and accumulation · 循环:while、for 和累加
Strings and nested loops · 字符串与嵌套循环
Writing a class: fields, constructor, methods · 编写类:字段、构造方法和方法
Encapsulation: private fields, getters, setters · 封装:私有字段、getter 和 setter
1-D arrays: store, index, and traverse · 一维数组:存储、下标和遍历
Array algorithms: max, count, search, average · 数组算法:最大值、计数、查找、平均值
ArrayList: a list that grows · ArrayList:可以增长的列表
ArrayList algorithms: filter and the remove bug · ArrayList 算法:筛选与删除的 bug
2-D arrays: working with a grid · 二维数组:操作网格
Searching: linear and binary · 查找:线性查找与二分查找
Sorting: selection and insertion sort · 排序:选择排序与插入排序
Recursion: base case and recursive case · 递归:基本情形与递归情形
Text files: write and read with Scanner · 文本文件:用 Scanner 写和读
Inheritance: extends, super, and overriding · 继承:extends、super 与重写
Polymorphism: dynamic dispatch and toString() · 多态:动态分派与 toString()
FRQ workshop: the 4 question types · 自由作答攻略:四种题型
Where to learn more · 深入学习入口
- Exercism — Java track · Exercism —— Java 课程 Free coding exercises with friendly feedback · 免费的编程练习,还有友好的反馈
- CodinGame Learn Java by solving fun coding games · 通过有趣的编程游戏来学 Java
- HackerRank — Java · HackerRank —— Java Short challenges, from easy to hard · 从易到难的小挑战
- dev.java (official) · dev.java(官方) The official Java site, with clear guides for learners · Java 官方网站,有面向初学者的清晰指南
- The Java Tutorials · Java 官方教程 Oracle's step-by-step lessons · Oracle 出品的分步课程
- Visual Studio Code The free editor for writing Java on your own computer · 在自己电脑上写 Java 的免费编辑器
- Java practice problems (this site) · Java 练习题(本站) Exam-style questions to test your Java · 考试风格的题目,检验你的 Java
- AP CS Principles (this site) · AP 计算机科学原理(本站) The big ideas of computing, in Python · 用 Python 学计算的大思想
Topics & tools · 主题与工具
Databases & SQL · 数据库与 SQL
Query, design, and change relational databases — right in your browser, no setup. · 查询、设计并修改关系数据库 —— 直接在浏览器中完成,无需安装。
17 Lessons · 课程
Databases & SQL · 数据库与 SQL
Query, design, and change relational databases — right in your browser, no setup. · 查询、设计并修改关系数据库 —— 直接在浏览器中完成,无需安装。
Course overview and progress · 课程概览与进度 →
A short history of SQL · SQL 简史
What SQL is used for · SQL 用来做什么
Where to learn more · 更多学习资源
Set up your computer · 设置你的电脑
Databases and SELECT · 数据库与 SELECT
Choosing columns · 选择列
Filtering with WHERE · 用 WHERE 筛选
AND, OR, NOT · AND、OR、NOT
Sorting with ORDER BY · 用 ORDER BY 排序
Counting and averaging · 计数与求平均
LIKE, IN and BETWEEN · LIKE、IN 与 BETWEEN
Grouping with GROUP BY · 用 GROUP BY 分组
Tables, keys and relationships · 表、键与关系
INNER JOIN · 内连接 INNER JOIN
Joins with grouping · 连接与分组
Creating tables · 创建表
Changing the schema · 修改表结构
Inserting rows · 插入行
Updating rows · 更新行
Deleting rows · 删除行
Normalisation · 规范化
Where to learn more · 深入学习入口
- SQLBolt Learn SQL step by step with interactive exercises · 通过互动练习一步步学 SQL
- SQLZoo Practice real queries on real tables in your browser · 在浏览器里对真实表格练习真实查询
- Mode SQL Tutorial · Mode SQL 教程 A friendly, hands-on tutorial from basic to advanced · 从基础到进阶、动手实践的友好教程
- W3Schools SQL Short, clear pages for every SQL keyword · 每个 SQL 关键词都有简短清晰的页面
- PostgreSQL Tutorial · PostgreSQL 教程 A thorough guide using a popular database · 用一个流行数据库讲解的详尽指南
- SQLite documentation · SQLite 文档 The official docs for the database this course uses · 本课程所用数据库的官方文档
- A-Level Computer Science (this site) · A-Level 计算机科学(本站) Includes a unit on databases and SQL · 含一个关于数据库与 SQL 的单元
Linux & the command line · Linux 与命令行
Drive a computer by typing. Practise real shell commands in a safe in-browser terminal. · 用键盘驾驭计算机。在安全的浏览器终端里练习真正的 shell 命令。
14 Lessons · 课程
Linux & the command line · Linux 与命令行
Drive a computer by typing. Practise real shell commands in a safe in-browser terminal. · 用键盘驾驭计算机。在安全的浏览器终端里练习真正的 shell 命令。
Course overview and progress · 课程概览与进度 →
What is Linux? · 什么是 Linux?
Why learn the command line? · 为什么要学命令行?
Helpful resources · 实用资源
Get a real terminal · 获得一个真正的终端
01
The shell and the prompt · shell 与提示符
02
Moving around · 在文件系统中移动
03
Reading files · 读取文件
04
Creating and removing · 创建与删除
05
Wildcards · 通配符
06
Saving output to files · 把输出保存到文件
07
Pipes — joining commands · 管道 —— 把命令连起来
08
Searching with grep · 用 grep 搜索
09
Finding files with find · 用 find 查找文件
10
Sorting and columns · 排序与列
11
File permissions · 文件权限
12
Users and sudo · 用户与 sudo
13
Programs and processes · 程序与进程
14
Software, settings, next steps · 软件、设置与下一步
Where to learn more · 深入学习入口
- explainshell Paste a command, see what every part does · 粘贴一条命令,看清每个部分的含义
- The man pages · man 手册 The official manual for every command · 每个命令的官方手册
- tldr pages Short, practical examples instead of long manuals · 简短实用的示例,而不是冗长的手册
- OverTheWire: Bandit · OverTheWire:Bandit Learn the shell by playing a hacking game · 通过一个解谜游戏来学习 shell
- Linux Journey A friendly, free Linux course · 一门友好、免费的 Linux 课程
LaTeX
Typeset beautiful documents and maths — write LaTeX, compile on our servers, see the PDF. · 排版精美的文档与数学公式 —— 编写 LaTeX,在我们的服务器上编译,直接查看 PDF。
14 Lessons · 课程
LaTeX
Typeset beautiful documents and maths — write LaTeX, compile on our servers, see the PDF. · 排版精美的文档与数学公式 —— 编写 LaTeX,在我们的服务器上编译,直接查看 PDF。
Course overview and progress · 课程概览与进度 →
What is LaTeX? · 什么是 LaTeX?
Where LaTeX is used · LaTeX 用在哪里
Helpful resources · 实用资源
Use LaTeX on your own computer · 在自己的电脑上使用 LaTeX
01
Your first document · 你的第一个文档
02
Sections and titles · 章节与标题
03
Bold, italic and emphasis · 加粗、斜体与强调
04
Bulleted and numbered lists · 项目符号与编号列表
05
Maths — your first formula · 数学 —— 你的第一个公式
06
Fractions, roots and sums · 分数、根号与求和
07
Aligning equations · 对齐多个公式
08
Tables · 表格
09
Drawing with TikZ · 用 TikZ 绘图
10
Labels and cross-references · 标签与交叉引用
11
Citations and bibliography · 引用与参考文献
12
Page layout and margins · 页面布局与页边距
13
Colour and links · 颜色与链接
14
Capstone: a one-page report · 综合实战:一页报告
Where to learn more · 深入学习入口
- Overleaf Write and compile LaTeX in your browser — no install · 在浏览器中编写并编译 LaTeX —— 无需安装
- Learn LaTeX in 30 minutes · 30 分钟学会 LaTeX Overleaf's friendly getting-started guide · Overleaf 友好的入门指南
- Detexify Draw a symbol, get its LaTeX command · 手绘一个符号,得到它的 LaTeX 命令
- CTAN The archive of LaTeX packages · LaTeX 宏包的中央仓库
Cyber security · 网络安全
How attacks work and how to stop them — ciphers, hashing, and safe computing, hands-on. · 攻击如何发生,又如何防御 —— 动手学习密码、哈希与安全计算。
16 Lessons · 课程
Cyber security · 网络安全
How attacks work and how to stop them — ciphers, hashing, and safe computing, hands-on. · 攻击如何发生,又如何防御 —— 动手学习密码、哈希与安全计算。
Course overview and progress · 课程概览与进度 →
What is cyber security? · 什么是网络安全?
Why it matters · 为什么它重要
Helpful resources · 实用资源
Nothing to install · 无需安装
01
Security, privacy and integrity · 安全、隐私与完整性
02
Malware · 恶意软件
03
Attacks and brute force · 攻击与暴力破解
04
Social engineering · 社会工程学
05
Defending a system · 防御一个系统
06
Passwords and authentication · 密码与身份验证
07
Storing passwords safely · 安全地存储密码
08
Encoding is not encryption · 编码不是加密
09
Symmetric encryption · 对称加密
10
Asymmetric encryption · 非对称加密
11
Hashing and digital signatures · 哈希与数字签名
12
HTTPS, SSL/TLS and certificates · HTTPS、SSL/TLS 与证书
13
Data integrity · 数据完整性
14
SQL injection · SQL 注入
15
Access control and least privilege · 访问控制与最小权限
16
Ethics, law and staying safe · 道德、法律与自我保护
Where to learn more · 深入学习入口
- A-Level CS security handouts (this site) · A-Level 计算机科学 安全讲义(本站) Topics 6 Security, 7 Ethics, 17 Encryption — exam revision · 第 6 章 安全、第 7 章 道德、第 17 章 加密 —— 考试复习
- IGCSE CS handouts (this site) · IGCSE 计算机科学 讲义(本站) Topics 2.3 Encryption and 5.3 Cyber security · 第 2.3 节 加密 与 第 5.3 节 网络安全
- OWASP Top 10 The most common web security risks, explained · 最常见的 Web 安全风险及其讲解
- picoCTF Learn security by solving fun challenges · 通过有趣的挑战来学习安全
- Have I Been Pwned Check if your email appeared in a data breach · 查一查你的邮箱是否出现在数据泄露中
Practice · 练习
Sharpen your skills with challenges from 1★ to 5★. Pick a language. · 通过 1★ 至 5★ 挑战提升技能。选择一种语言。
01
Print a word · 打印一个单词
★☆☆☆☆
02
Print another word · 再打印一个单词
★☆☆☆☆
03
Print a sentence · 打印一句话
★☆☆☆☆
04
Print with a ! · 用感叹号打印
★☆☆☆☆
05
Print two lines · 打印两行
★☆☆☆☆
06
Print three lines · 打印三行
★☆☆☆☆
07
Print a number · 打印一个数字
★☆☆☆☆
08
Print a bigger number · 打印一个更大的数字
★☆☆☆☆
09
Add two numbers · 两数相加
★☆☆☆☆
10
Add bigger numbers · 更大的数相加
★☆☆☆☆
11
Subtract · 减法
★☆☆☆☆
12
Multiply · 乘法
★☆☆☆☆
13
Divide · 除法
★☆☆☆☆
14
Remainder · 求余数
★☆☆☆☆
15
Use a variable · 使用变量
★☆☆☆☆
16
A number variable · 数字变量
★☆☆☆☆
17
Change a variable · 改变变量
★☆☆☆☆
18
Add two variables · 变量相加
★☆☆☆☆
19
Multiply two variables · 变量相乘
★☆☆☆☆
20
Join two words · 连接两个单词
★☆☆☆☆
21
Greet a name · 问候名字
★☆☆☆☆
22
Repeat text · 重复文字
★☆☆☆☆
23
Ask for a name · 询问名字
★☆☆☆☆
24
Echo a number · 回显数字
★☆☆☆☆
105
Call a function · 调用一个函数
★☆☆☆☆
106
Use what it gives back · 使用它返回的值
★☆☆☆☆
107
Finish the function · 把函数补完
★☆☆☆☆
108
Write one yourself · 自己写一个
★★☆☆☆
25
Your first function · 你的第一个函数
★☆☆☆☆
26
Is it positive? · 是正数吗?
★☆☆☆☆
27
The bigger one · 较大的那个
★☆☆☆☆
28
The last item · 最后一项
★☆☆☆☆
29
Is it even? · 是偶数吗?
★☆☆☆☆
30
Sum a list · 求列表之和
★☆☆☆☆
31
Reverse a string · 反转字符串
★★☆☆☆
32
Count the vowels · 数元音字母
★★☆☆☆
33
FizzBuzz
★★★☆☆
34
Letter frequencies · 字母频率
★★★☆☆
35
Remove duplicates · 去除重复项
★★★☆☆
36
Second largest · 第二大的值
★★★☆☆
37
Group anagrams · 变位词分组
★★★★☆
38
Flatten a nested list · 展平嵌套列表
★★★★☆
39
RPN calculator · 逆波兰计算器
★★★★★
40
Run-length encoding · 游程编码
★★★★★
41
Count to ten · 数到十
★★☆☆☆
42
Even numbers · 偶数
★★☆☆☆
43
Liftoff · 发射
★★☆☆☆
44
Star triangle · 星星三角形
★★☆☆☆
45
The 3 times table · 3 的乘法表
★★☆☆☆
46
Running total · 累计求和
★★★☆☆
47
Largest without max · 不用 max 找最大值
★★★☆☆
48
Smallest without min · 不用 min 找最小值
★★★☆☆
49
Count the positives · 数一数正数
★★☆☆☆
50
Average of a list · 列表的平均数
★★★☆☆
51
Add up 1 to 100 · 从 1 加到 100
★★☆☆☆
52
Upside-down triangle · 倒三角形
★★☆☆☆
53
FizzBuzz with 4 and 6 · 4 和 6 的 FizzBuzz
★★★☆☆
54
Until you type stop · 直到输入 stop
★★★☆☆
55
A list of squares · 平方数列表
★★☆☆☆
56
Count a value · 统计某个值
★★☆☆☆
57
Keep the evens · 只留下偶数
★★☆☆☆
58
Find the position · 找到位置
★★★☆☆
59
Smallest and largest · 最小值和最大值
★★★☆☆
60
Above average · 高于平均数
★★★☆☆
61
Binary to denary · 二进制转十进制
★★★★☆
62
Denary to binary · 十进制转二进制
★★★★☆
63
Digital root · 数字根
★★★★☆
64
Caesar cipher · 凯撒密码
★★★★☆
65
Bank account · 银行账户
★★★★☆
66
Transpose a grid · 网格转置
★★★★☆
67
Most common word · 出现最多的单词
★★★★★
68
Sieve of Eratosthenes · 埃拉托色尼筛法
★★★★★
69
A row of Pascal's triangle · 杨辉三角的一行
★★★★★
70
Tic-tac-toe winner · 井字棋赢家
★★★★★
71
Is it big? · 够大吗?
★☆☆☆☆
72
Pass or fail · 及格还是不及格
★☆☆☆☆
73
Positive, negative or zero · 正数、负数还是零
★☆☆☆☆
74
The bigger number · 较大的那个数
★☆☆☆☆
75
Even or odd · 奇数还是偶数
★☆☆☆☆
76
Is it in range? · 在范围内吗?
★★☆☆☆
77
Free entry · 免费入场
★★☆☆☆
78
Grade letter · 等第字母
★★☆☆☆
79
Divisible by both · 能同时整除
★★☆☆☆
80
Ticket price · 票价
★★☆☆☆
81
Finish the countdown · 把倒数补完
★☆☆☆☆
82
The loop that never ends · 停不下来的循环
★☆☆☆☆
83
Count up to five · 数到五
★☆☆☆☆
84
Add up to five · 加到五
★☆☆☆☆
85
Double until it passes 100 · 翻倍直到超过 100
★★☆☆☆
86
Stop at the first over fifty · 在第一个超过五十处停下
★★☆☆☆
87
Count down in twos · 每次减二倒数
★★☆☆☆
88
Until they type stop · 直到输入 stop
★★☆☆☆
89
How many halvings? · 要减半几次?
★★☆☆☆
90
A row of the times table · 乘法表的一行
★★☆☆☆
91
The first letter · 第一个字母
★☆☆☆☆
92
The last letter · 最后一个字母
★☆☆☆☆
93
The first three letters · 前三个字母
★☆☆☆☆
94
How long is it? · 它有多长?
★☆☆☆☆
95
Shout it · 大声说
★☆☆☆☆
96
Initials · 姓名首字母
★★☆☆☆
97
Ask for a name · 问一个名字
★☆☆☆☆
98
Ask for two things · 问两样东西
★☆☆☆☆
99
A number from input · 读入一个数
★☆☆☆☆
100
Add two numbers you were given · 把读入的两个数相加
★★☆☆☆
101
Each letter on its own line · 每个字母一行
★☆☆☆☆
102
Zero to four · 从零到四
★☆☆☆☆
103
Count the letters · 数字母
★☆☆☆☆
104
Add up one to five · 一加到五
★☆☆☆☆
01
Print a word · 打印一个单词
★☆☆☆☆
02
Print another word · 再打印一个单词
★☆☆☆☆
03
Print a sentence · 打印一句话
★☆☆☆☆
04
Print with a ! · 用感叹号打印
★☆☆☆☆
05
Print two lines · 打印两行
★☆☆☆☆
06
Print a number · 打印一个数字
★☆☆☆☆
07
Add two numbers · 两数相加
★☆☆☆☆
08
Subtract · 减法
★☆☆☆☆
09
Multiply · 乘法
★☆☆☆☆
10
Divide · 除法
★☆☆☆☆
11
Remainder · 求余数
★☆☆☆☆
12
A number variable · 数字变量
★☆☆☆☆
13
A text variable · 文字变量
★☆☆☆☆
14
Add two variables · 变量相加
★☆☆☆☆
15
Your first method · 你的第一个方法
★☆☆☆☆
16
Is it positive? · 是正数吗?
★☆☆☆☆
17
Cube a number · 求立方
★☆☆☆☆
18
The smaller one · 较小的那个
★☆☆☆☆
19
Square a number · 求平方
★☆☆☆☆
20
Largest of three · 三者中的最大值
★☆☆☆☆
21
Count the vowels · 数元音字母
★★☆☆☆
22
Reverse the word order · 反转单词顺序
★★☆☆☆
23
Palindrome check · 回文判断
★★★☆☆
24
Running sum · 前缀和
★★★☆☆
25
Most frequent character · 出现最多的字符
★★★☆☆
26
Binary search · 二分查找
★★★☆☆
27
Factorial (mind the size) · 阶乘(注意大小)
★★★★☆
28
Count primes below n · 数小于 n 的质数
★★★★☆
29
Roman numerals · 罗马数字
★★★★★
30
Longest common prefix · 最长公共前缀
★★★★★
01
Print a word · 打印一个单词
★☆☆☆☆
02
Print another word · 再打印一个单词
★☆☆☆☆
03
Print a sentence · 打印一句话
★☆☆☆☆
04
Print with a ! · 用感叹号打印
★☆☆☆☆
05
Print two lines · 打印两行
★☆☆☆☆
06
Print three lines · 打印三行
★☆☆☆☆
07
Print a number · 打印一个数字
★☆☆☆☆
08
Add two numbers · 两数相加
★☆☆☆☆
09
Subtract · 减法
★☆☆☆☆
10
Multiply · 乘法
★☆☆☆☆
11
Remainder · 求余数
★☆☆☆☆
12
A number variable · 数字变量
★☆☆☆☆
13
Add two variables · 变量相加
★☆☆☆☆
14
Multiply two variables · 变量相乘
★☆☆☆☆
15
Your first function · 你的第一个函数
★☆☆☆☆
16
Is it positive? · 是正数吗?
★☆☆☆☆
17
Cube a number · 求立方
★☆☆☆☆
18
The smaller one · 较小的那个
★☆☆☆☆
19
Square a number · 求平方
★☆☆☆☆
20
Sign of a number · 数的符号
★☆☆☆☆
21
Largest of three · 三个数的最大值
★★☆☆☆
22
Factorial · 阶乘
★★☆☆☆
23
Greatest common divisor · 最大公约数
★★☆☆☆
24
Count the 1-bits · 数 1 的位
★★☆☆☆
25
Sum an array · 数组求和
★★★☆☆
26
Swap two values · 交换两个值
★★★☆☆
27
String length · 字符串长度
★★★☆☆
28
Count a character · 统计某个字符
★★★☆☆
29
Reverse in place · 原地反转
★★★★☆
30
Palindrome · 回文
★★★★☆
31
Bubble sort · 冒泡排序
★★★★☆
32
Points with a struct · 用结构体表示点
★★★★☆
33
Binary search · 二分查找
★★★★★
34
Parse an integer · 解析整数
★★★★★
All courses, one page each · 所有课程,每课一页
- Python Basics · Python 基础
- Python for IGCSE CS · IGCSE 计算机科学 Python
- IGCSE CS Pseudocode · IGCSE 计算机科学伪代码
- Python for A-Level CS · A-Level 计算机科学 Python
- AS-level CS Pseudocode · AS 计算机科学伪代码
- Databases & SQL · 数据库与 SQL
- Python for AP CS Principles · AP 计算机科学原理 Python
- Java for AP CS A · AP 计算机科学 A Java
- C Programming · C 语言编程
- Web Basics — HTML & CSS · 网页基础 —— HTML 与 CSS
- JavaScript
- LaTeX
- Linux & the command line · Linux 与命令行
- Cyber security · 网络安全
- Python Practice · Python 练习
- Java Practice · Java 练习
- C Practice · C 练习