B1.1.3 · Approaches to computational thinking
B1.1.3 · 计算思维的方法
Applying Computational Thinking to Solve Problems
应用计算思维解决问题
The same four habits, abstraction, decomposition, pattern recognition and algorithmic design, don't just belong to one narrow corner of computer science. They show up, doing genuinely different work each time, in fields that might not look related at all on the surface.
抽象、分解、模式识别与算法设计这四种思维习惯,并不只属于计算机科学中某个狭窄的角落。它们会出现在表面上看起来毫不相关的各个领域中,每一次都发挥着真正不同的作用。
Explainer
讲解
The syllabus makes one point about computational thinking worth stating plainly: it "does not necessarily involve programming, it is a toolkit of available techniques for problem-solving." Every example on this page happens well before, or entirely without, a single line of code being written.
考纲对计算思维明确指出了一点,值得直接说明:它"不一定涉及编程,而是一套用于解决问题的可用技巧工具包"。本页的每一个例子都发生在写下第一行代码之前很久,或者完全不涉及任何代码。
Applying computational thinking means reaching for abstraction, decomposition, pattern recognition and algorithmic design as a genuine toolkit, choosing whichever one (or combination) actually fits the problem in front of you, rather than treating any single one of them as the whole answer.
应用计算思维,意味着把抽象、分解、模式识别与算法设计当作一套真正的工具包来使用,根据眼前的问题选择实际适用的一种(或几种组合),而不是把其中任何单独一种当作全部答案。
Worked example
示例讲解
Five fields, four concepts each
五个领域,各自应用四个概念
Click each field to see all four concepts applied to a genuine problem in it, five completely different areas of computer science, the same four habits of thought underneath every one of them.
点击每个领域,查看这四个概念如何应用于其中一个真实问题:五个完全不同的计算机科学领域,底层却是同样的四种思维习惯。
Check your understanding
检验你的理解
A team spends a week, with no code editor open, splitting a network-security problem into physical, infrastructure and application layers, spotting that most past incidents share a handful of attack patterns, and sketching an exact step-by-step response procedure for the next one. Have they applied computational thinking?
一个团队花了一周时间,全程没有打开任何代码编辑器,把一个网络安全问题拆分为物理层、基础设施层和应用层,发现大多数过往事件都存在共同的攻击模式,并规划出针对下一次事件的精确分步响应流程。他们是否应用了计算思维?
Common mistake
常见错误
RecurringA common weak answer treats "computational thinking" and "programming" as the same thing, describing a scenario entirely in terms of writing or debugging code. Computational thinking is the reasoning that happens before, and alongside, code; a team can decompose a problem, spot its patterns, abstract away irrelevant detail and design a precise algorithm entirely on a whiteboard, with no programming language involved at all.
反复出现一种常见的薄弱答案会把"计算思维"和"编程"当作同一件事,完全用编写或调试代码的方式来描述一个情境。计算思维是发生在代码之前、以及伴随代码进行的推理过程;一个团队完全可以在白板上分解问题、发现其模式、抽象掉无关的细节,并设计出精确的算法,完全不涉及任何编程语言。
Treats it as "using code to solve a problem": "The data analyst used computational thinking by writing a script to clean and process the sales data." Names a genuine step, but reduces the whole answer to the coding stage, when the actual reasoning, deciding what counts as "clean" data, spotting the seasonal pattern, working out which figures to summarise, happens whether or not code ever gets written.
把它当作"用代码解决问题": "这位数据分析师通过编写脚本来清理和处理销售数据,运用了计算思维。" 这确实指出了一个真实的步骤,但把整个答案都局限在编码阶段,而真正的推理,判断什么才算"干净"的数据、发现季节性模式、判断该汇总哪些数字,无论代码是否被写出来都会发生。
Names the actual reasoning, not just the coding step: "The data analyst used decomposition to split the analysis into cleaning, calculating monthly totals and forecasting, and pattern recognition to notice sales rise every December before deciding how any of it would be scripted." Correctly places the computational thinking before the code, as the reasoning that shapes what the code will eventually do.
指出了真正的推理过程,而不只是编码步骤: "这位数据分析师运用分解,把分析工作拆分为数据清理、计算月度总额与预测三部分;并运用模式识别,发现销售额每年十二月都会上升,而这一切都发生在决定如何编写脚本之前。" 正确地把计算思维放在代码之前,作为塑造代码最终功能的推理过程。
Revision questions
复习题
Past-paper style. Write an answer, then reveal the marking points and mark yourself.
采用历年真题风格。写下答案,然后展开评分要点给自己打分。
[2]State two real-world fields, other than software development, where computational thinking is applied.
[2]陈述两个应用了计算思维的现实领域(软件开发除外)。
Marking points
评分要点
- Any two fields other than software development, for example: science, medicine, engineering, logistics, business, finance, education or the arts.
- 除软件开发以外的任意两个领域,例如:科学、医学、工程、物流、商业、金融、教育或艺术。
[4]Using two different fields from this page, describe how the same concept, pattern recognition, shows up differently in each one.
[4]使用本页中两个不同的领域,描述同一个概念(模式识别)在每个领域中如何以不同的方式体现。
Marking points
评分要点
- Name two fields covered on the page.
- Describe pattern recognition in the first field, for example in medicine, matching a patient's symptoms against known clusters that indicate a particular disease.
- Describe pattern recognition in the second field, for example in business, identifying a recurring seasonal spike in sales data to plan stock.
- The concept is the same (spotting repeated structure), but what counts as a pattern and what it is used for differ between the fields.
- 说出页面上提到的两个领域。
- 描述第一个领域中的模式识别,例如在医学中,把病人的症状与提示某种疾病的已知症状群匹配。
- 描述第二个领域中的模式识别,例如在商业中,在销售数据中识别反复出现的季节性高峰以规划库存。
- 概念相同(发现重复的结构),但在不同领域中,什么算作模式、以及它被用来做什么,是不同的。
[6]A hospital wants to redesign how it schedules staff shifts. Explain how decomposition, pattern recognition, abstraction and algorithmic design could each be applied to this problem.
[6]某医院想要重新设计其员工排班方式。解释分解、模式识别、抽象与算法设计各自可以如何应用于这个问题。
Marking points
评分要点
- Decomposition: break shift scheduling into sub-problems such as forecasting demand per hour, listing staff availability, assigning shifts, and handling swaps.
- Pattern recognition: identify recurring demand patterns (busy mornings, quiet nights, weekly cycles) and reuse a known shift template for them.
- Abstraction: model each staff member by the attributes that matter for scheduling (role, hours available, qualifications) and ignore the rest.
- Algorithmic design: define an ordered procedure that fills each required slot with an available, qualified staff member while respecting maximum-hours and rest rules.
- A strong answer applies all four concepts specifically to shift scheduling, not in the abstract.
- 分解:把排班拆成子问题,如按小时预测需求、列出员工可用时间、分配班次、处理换班。
- 模式识别:识别反复出现的需求模式(忙碌的早晨、清闲的夜晚、每周周期),并为其复用已知的班次模板。
- 抽象:用对排班重要的属性(角色、可用小时数、资质)来建模每位员工,忽略其余。
- 算法设计:定义一个有序流程,在遵守最大工时和休息规则的前提下,为每个需要的班位安排一名可用且合格的员工。
- 好的答案会把四个概念都具体应用到排班上,而不是泛泛而谈。
Flashcards
记忆卡片
Active recall for this statement’s key terms.
针对本条考纲陈述关键术语的主动回忆练习。
Keep this statement’s practice with you
把这条考纲陈述的练习保存下来
Free account: unlock every revision question and flashcard for B1.1.3, and every other IB CS 2027 statement.
免费账户:解锁 B1.1.3 以及所有其他 IB CS 2027 考纲陈述的全部复习题和记忆卡片。