← 返回资讯屏轩教育 · 行业资讯

Interdisciplinary Integrated Question Training | 跨学科综合题型训练

2026-07-18 09:54 · 本文部分内容由AI辅助创作

📚 Interdisciplinary Integrated Question Training | 跨学科综合题型训练

In the Year 8 CAIE Computer Science curriculum, students are increasingly expected to apply computational thinking across different subject areas. This article provides a series of cross-curricular exercise types that blend computer science concepts with mathematics, physics, biology, English, geography, history, and art. Each section presents a real-world scenario, followed by a question that requires you to think like a programmer, data analyst, or systems designer. Detailed solutions and explanations are given to help you master integrated skills.

在 Year 8 CAIE 计算机科学课程中,学生越来越需要将计算思维运用到不同的学科领域。本文提供了一系列跨学科的综合题型训练,将计算机科学概念与数学、物理、生物、英语、地理、历史和艺术等学科相结合。每个小节都呈现一个真实场景,然后给出一个问题,要求你像程序员、数据分析师或系统设计师那样思考。每道题都附有详细解答和解析,帮助你掌握综合技能。

1. What is Interdisciplinary Question Training? | 什么是跨学科题型训练?

Interdisciplinary question training means solving problems that require knowledge from two or more subjects. In computer science, we often use programming, data analysis, or computational models to answer questions from science, language, or social studies. This approach mirrors how real-world professionals collaborate—an app designer must understand user experience (design), server logic (computing), and business goals (economics).

跨学科题型训练意味着解决需要运用两门或以上学科知识的问题。在计算机科学中,我们经常运用编程、数据分析或计算模型来回答来自科学、语言或社会研究领域的问题。这种方式反映了现实世界中专业人士的合作方式——应用程序设计师必须理解用户体验(设计)、服务器逻辑(计算)和商业目标(经济学)。

By practising such questions, you learn to recognise patterns, abstract essential details, model data, and design algorithms—all core skills of computational thinking. The following sections will take you through diverse scenarios, each built around a clear computer science concept while linking to another subject.

通过练习这类题目,你能够学会识别模式、提取关键细节、建模数据并设计算法——这些都是计算思维的核心技能。接下来的部分将带你遍历多种场景,每一个都围绕一个清晰的计算机科学概念,同时与另一学科紧密相连。


2. Mathematics Meets Computer Science: Binary and Arithmetic | 数学与计算机科学:二进制与算术

Scenario: A school canteen uses a simple electronic ordering system. Each meal item is represented by a 4‑bit binary code. For example, 0010 means pizza, and 0110 means salad. If a student selects pizza (0010) and juice (1011), the system adds these binary numbers temporarily to allocate a basket number.

场景:学校食堂使用一个简单的电子点餐系统。每种餐品用一个4位二进制码表示。例如,0010 代表比萨,0110 代表沙拉。如果一名学生选了比萨(0010)和果汁(1011),系统会临时将这些二进制数相加来分配一个篮号。

Question: (a) Convert the 4‑bit code 1011 into decimal. (b) Add the binary numbers 0010 and 1011, giving both the binary sum and the decimal sum. (c) If the basket number must not exceed decimal 15, is this sum acceptable?

问题: (a) 将4位码 1011 转换为十进制。 (b) 将二进制数 0010 和 1011 相加,写出二进制和以及十进制和。 (c) 如果篮号不能超过十进制15,这个加和是否可以接受?

Solution: 101₂; decimal: 2 + 11 = 13. (c) 13 ≤ 15, so it is acceptable. The process exercises binary‑to‑decimal conversion and basic binary addition—essential skills in understanding how computers handle numbers.

解答: (a) 1011₂ = 1×8 + 0×4 + 1×2 + 1×1 = 11。 (b) 二进制加法:0010 + 1011 = 1101₂;十进制:2 + 11 = 13。 (c) 13 ≤ 15,可以接受。这个过程练习了二进制到十进制的转换和基本的二进制加法——这是理解计算机如何处理数字的核心技能。


3. Physics Simulation: Motion and Coordinates | 物理模拟:运动与坐标

Scenario: In a Scratch‑like environment, a spaceship sprite moves on a 2‑ eship has a speed of 5 units per second and moves vertically upward. You want to simulate its trajectory for 4 seconds, updating the y‑coordinate every second.

场景:在一个类似 Scratch 的环境中,一艘飞船精灵在一个二维网格上移动。它从 x=0, y=0 处出发。飞船速度为每秒5个单位,垂直向上移动。你想要模拟它4秒的轨迹,每秒更新一次 y 坐标。

Question: (a) Write a pseudocode loop that updates the y‑coordinate of the spaceship every second for 4 seconds. (b) What will be the coordinates after 2 seconds? (c) Modify your pseudocode to make the spaceship also move to the right at 3 units per second, and give the final coordinates after 4 seconds.

问题: (a) 编写一段伪代码循环,使飞船的 y 坐标每秒更新一次,持续4秒。 (b) 2秒后坐标是多少? (c) 修改你的伪代码,使飞船还以每秒3个单位的速度向右移动,并给出4秒后的最终坐标。

Solution: (a) Pseudocode:
SET y TO 0
FOR sec = 1 TO 4
  y = y + 5
END FOR
(b) After 2 seconds, y = 10; coordinates: (0,10).
is task reinforces sequencing, loops, and variables, linking directly to physics kinematics.

解答: (a) 伪代码:
SET y TO 0
FOR sec = 1 TO 4
  y = y + 5
END FOR
(b) 2秒后,y = 10;坐标为 (0,10)。
(c) 修改后:SET x TO 0, y TO 0; FOR sec = 1 TO 4: x = x + 3; y = y + 5; END FOR。最终坐标:x=12,y=20 → (12,20)。这个任务强化了顺序、循环和变量,与物理运动学直接相关。


4. Biology Data Analysis: Sorting Animal Traits | 生物数据分析:动物特征排序

Scenario: A biologist collected data on five animals: weight (kg), height (cm), and lifespan (years). The data is stored in a table. You are asked to sort the animals by weight in ascending order using an algorithm and then by lifespan in descending order.

场景:一位生物学家收集了五种动物的数据:体重(千克)、身高(厘米)和寿命(年)。这些数据存储在一个表格里。你需要用算法按体重升序排列动物,然后按寿命降序排列。

Question: (a) Given the records—Dog (30kg, 60cm, 12yr), Cat (5kg, 25cm, 15yr), Rabbit (2kg, 15cm, 9yr), Horse (500kg, 160cm, 25yr), Elephant (5000kg, 320cm, 70yr)—perform a bubble sort on the weight field. Show the list after the first two passes. (b) After sorting by weight, write the order of animal names. (c) Now perform a selection sort to sort the same list by lifespan in descending order. List the animals after the first swap.

问题: (a) 给定记录——狗(30kg, 60cm, 12岁)、猫(5kg, 25cm, 15岁)、兔(2kg, 15cm, 9岁)、马(500kg, 160cm, 25岁)、大象(5000kg, 320cm, 70岁)——对体重字段执行冒泡排序。展示前两趟之后的结果。 (b) 按体重排序后,写出动物名称的顺序。 (c) 现在对同个列表按寿命降序进行选择排序。列出第一次交换后的动物顺序。

Solution: 5,2,30,500,5000; then 30 with 500 (no swap), 500 with 5000 (no swap). After pass 1: 5,2,30,500,5000. Pass 2: compare 5 and 2 → swap → 2,5,30,500,5000; rest no changes. After pass 2: 2,5,30,500,5000. (b) Weight order: Rabbit, Cat, Dog, Horse, Elephant. (c) Selection sort descending on lifespan (12,15,9,25,70). Find max (70) swap with first (12) → Elephant, Cat, Rabbit, Horse, Dog. This blends biology data with classic sorting algorithms—practising algorithmic thinking on real datasets.

解答: (a) 初始顺序:狗(30)、猫(5)、兔(2)、马(500)、大象(5000)。第一趟:比较30和5 → 交换 → 5,30,2,500,5000;然后30和2 → 交换 → 5,2,30,500,5000;然后30与500不交换,500与5000不交换。第一趟后:5,2,30,500,5000。第二趟:比较5和2 → 交换 → 2,5,30,500,5000;其余不变。第二趟后:2,5,30,500,5000。(b) 体重排序:兔、猫、狗、马、大象。(c) 按寿命降序选择排序(12,15,9,25,70)。找最大值70与第一个12交换 → 大象、猫、兔、马、狗。这融合了生物数据与经典排序算法,在真实数据集上练习算法思维。


5. English and Coding: Grammar Checker in Pseudocode | 英语与编程:伪代码中的语法检查器

Scenario: You are building a simple grammar checker that verifies whether a sentence begins with a capital letter and ends with a full stop. The program reads a string and outputs 'Correct' or 'Incorrect'.

场景:你正在构建一个简单的语法检查器,用来核实一个句子是否以大写字母开头并以句号结尾。这个程序读取一个字符串,然后输出 'Correct' 或 'Incorrect'。

Question: (a) Write pseudocode that takes a sentence as input and checks the two conditions. Use functions like UPPER() or LEN(). (b) Extend the pseudocode to also check that there are no double spaces and the word 'I' when used as a pronoun is always uppercase. (c) Give a test case where the sentence is 'i like programming.' and explain what the output would be for your pseudocode.

问题: (a) 编写伪代码,接受一个句子作为输入,并检查这两个条件。可以使用 UPPER() 或 LEN() 等函数。 (b) 扩展伪代码,还要检查没有连续两个空格,并且当用作代词时 'I' 总是大写。 (c) 给出一个测试用例:句子是 'i like programming.',并解释你的伪代码会输出什么。

Solution: (a)
INPUT sentence
first = LEFT(sentence,1)
last = RIGHT(sentence,1)
IF UPPER(first) = first AND last = '.' THEN
  OUTPUT 'Correct'
ELSE
  OUTPUT 'Incorrect'
ENDIF
(b) Add a check for double spaces: IF ' ' IN sentence THEN OUTPUT 'Incorrect'; and for pronoun 'I': split into words, IF word = 'i' THEN condition fails. (c) 'i like programming.' → first char is 'i' (not uppercase), so output 'Incorrect' atural language processing with basic string manipulation, emphasising logical conditions.

解答: (a)
INPUT sentence
first = LEFT(sentence,1)
last = RIGHT(sentence,1)
IF UPPER(first) = first AND last = '.' THEN
  OUTPUT 'Correct'
ELSE
  OUTPUT 'Incorrect'
ENDIF
(b) 添加对双空格的检查:IF ' ' IN sentence THEN OUTPUT 'Incorrect';对代词'I':将句子拆成单词,如果单词 = 'i' 则条件不成立。 (c) 'i like programming.' → 第一个字符是 'i'(非大写),所以输出 'Incorrect'。这个练习将自然语言处理与基础字符串操作联系起来,强调逻辑条件。


广告 / Sponsored

6. Geography and Data Representation: Population Charts | 地理与数据表示:人口图表

Scenario: A dataset contains the population in millions of four cities: London (9.0), Tokyo (13.9), New York (8.4), Mumbai (20.7). You need to visualise this data and create a simple bar chart using ASCII characters, where each '*' represents 1 million people.

场景:一个数据集包含四个城市的人口(以百万计):伦敦 (9.0)、东京 (13.9)、纽约 (8.4)、孟买 (20.7)。你需要把这些数据可视化,并用 ASCII 字符创建一个简单的条形图,每个 '*' 代表100万人。

Question: ode that reads the city data and prints an ASCII horizontal bar chart. Base your number of '*' eger part of each population value. (b) Modify the pseudocode to print the exact number of '*' chart width is limited to 20 characters, how would you handle a population of 20.7 million? Suggest scaling.

问题: (a) 编写伪代码,读取城市数据,并打印 ASCII 水平条形图。每个条形的 '*' 数量基于该人口值的整数部分。 (b) 修改伪代码,打印四舍五入到最接近整数后的 '*' 数量(例如 13.9 → 14)。 (c) 如果图表宽度限制为20个字符,你如何处理2070万的人口数据?提出缩放方法。

Solution: (a) Pseudocode:
FOR each city in [London, Tokyo, New York, Mumbai]
  count = INT(population)
  PRINT city + ': ' + REPEAT('*', count)
ENDFOR
or = 20/20.7 ≈ 0.966; multiply each population by this factor and round. So Mumbai gets 20 '*' esentation fundamentals and approximation, linking geography with computational rendering.

解答: (a) 伪代码:
FOR each city in [London, Tokyo, New York, Mumbai]
  count = INT(population)
  PRINT city + ': ' + REPEAT('*', count)
ENDFOR
(b) 使用 count = ROUND(population)。 (c) 按比例缩小:找出最大人口 (20.7),设比例因子 = 20 / 20.7 ≈ 0.966;每个城市人口乘以该因子并四舍五入。因此孟买恰好得到20个 '*'(20.7 × 0.966 ≈ 20)。这教了数据表示基础与近似处理,将地理与计算渲染联系起来。


7. History and Encryption: Caesar Cipher | 历史与加密:凯撒密码

Scenario: Each letter in the plaintext is shifted forward by 3 positions in the alphabet: A→D, B→E, …, Z→C. You are to write an algorithm to encrypt and decrypt messages.

场景:尤利乌斯·凯撒使用一种简单的移位密码来保护军事信息。明文中的每个字母按字母表向前移动3位:A→D, B→E, …, Z→C。你需要编写算法来加密和解密消息。

Question: (a) Write a pseudocode function that takes a string and a shift value and returns the encrypted text (handling uppercase letters only). (b) Encrypt 'HELLO' with shift 3. (c) Now write the corresponding decryption function and show how it recovers the plaintext from 'KHOOR'.

问题: (a) 编写一个伪代码函数,接收一个字符串和一个偏移量,返回加密后的文本(只处理大写字母)。 (b) 用偏移量3加密 'HELLO'。 (c) 现在编写相应的解密函数,并展示如何从 'KHOOR' 恢复出明文。

Solution: (a) Function ENCRYPT(plain, shift): result = ''; FOR each char: IF char between 'A' and 'Z' THEN newpos = (POSITION(char) - POSITION('A') + shift) MOD 26; newchar = CHAR(ASCII('A' + newchar; END FOR; RETURN result. (b) HELLO → KHOOR. (c) Decryption: shift negative or 26‑shift. DECRYPT(cipher, shift): use -shift or 26‑shift. For 'KHOOR' al cipher bridges cryptography and algorithm design, showing modular arithmetic in action.

解答: (a) 函数 ENCRYPT(plain, shift):result = ''; FOR 每个字符:IF 字符介于 'A' 和 'Z' 之间 THEN newpos = (字符位置 - 'A' 的位置 + shift) MOD 26; newchar = CHAR(ASCII('A') + newpos); ELSE newchar = char; result = result + newchar; END FOR; RETURN result。 (b) HELLO → KHOOR。 (c) 解密:偏移量取负或 26 - shift。DECRYPT(cipher, shift):使用 -shift 或 26 - shift。对 'KHOOR',shift 3 → shift = -3 或 23;还原为 HELLO。这个历史密码将密码学与算法设计联系起来,展示了模运算的应用。


8. Art and Computer Graphics: Patterns with Loops | 艺术与计算机图形:循环创建图案

Scenario: Using a turtle graphics system, you want to draw a regular pentagon and then repeat it rotated to form a flower‑like pattern. The turtle can be commanded with FORWARD(distance) and RIGHT(angle).

场景:使用海龟绘图系统,你想画一个正五边形,然后将其重复旋转,形成一个花朵状图案。海龟可以执行命令 FORWARD(距离) 和 RIGHT(角度)。

Question: (a) Write pseudocode to draw a regular pentagon with sides of length 100. Remember the external angle of a regular pentagon is 72°. (b) Use a loop to draw 12 pentagons, each rotated by an additional 30° from the previous one, all starting from the same point. (c) Explain why the pattern creates a neat circular design.

问题: (a) 编写伪代码绘制边长为100的正五边形。记住正五边形的外角是72°。 (b) 使用循环绘制12个五边形,每个五边形在绘制前比上一个多旋转30°,全部从同一点出发。 (c) 解释为什么这个图案会形成一个整齐的圆形设计。

Solution: ter: at the start of each iteration, set direction = 30 * i, then draw. (c) Since 12×30° = 360°, the petals are equally spaced around the full circle, creating symmetry. This task merges geometry with structured programming loops, reinforcing angles and iteration.

解答: (a) REPEAT 5: FORWARD 100; RIGHT 72; END REPEAT。 (b) FOR i = 0 TO 11: RIGHT(30 * i); 画五边形(REPEAT 5...);然后如果需要恢复方向。更好的是:在每次迭代开始时,设置方向为 30 * i,然后开始画。 (c) 因为12×30° = 360°,花瓣均匀分布在整个圆周上,形成对称。这个任务把几何与结构化编程循环融合,巩固了角度和迭代的概念。


9. Integrated Problem-Solving: Design a Simple App | 综合问题解决:设计一个简单应用

Scenario: Your school wants a mobile app that helps students track the number of books they read each month and recommends a new genre if the count exceeds a threshold. The app should store a user's name, month, book count, and favourite genre. It then suggests a new genre based on a simple rule: if they read more than 5 books, suggest a genre they haven't listed yet from a preset list.

场景:你的学校想要一个移动应用,帮助学生记录每月阅读的书籍数量,并在数量超过阈值时推荐一个新体裁。该应用应该存储用户的姓名、月份、书籍数量和最喜欢的体裁。然后根据一个简单规则推荐新体裁:如果他们阅读超过5本书,则从预设列表中推荐一个他们尚未列出的体裁。

Question: (a) Identify the input, process, and output for this app. (b) Design a simple data structure (e.g., a record or array) to hold the information. (c) Write pseudocode that implements the recommendation logic.

问题: (a) 确定这个应用的输入、处理和输出。 (b) 设计一个简单的数据结构(如记录或数组)来保存信息。 (c) 编写实现推荐逻辑的伪代码。

Solution: (a) Input: user name, month, book count, favourite genre. Process: check if count > 5, if true, compare favourite genre with available genres ['Fantasy','Sci‑fi','Mystery','Non‑fiction'] and pick one not matching. Output: recommendation message. (b) Data structure: RECORD UserData{name:string, month:string, count:integer, genre:string}. (c) Pseudocode:
INPUT name, month, count, favGenre
genres = ['Fantasy','Sci‑fi','Mystery','Non‑fiction']
IF count > 5 THEN
  FOR each g in genres
    IF g ≠ favGenre THEN recommendation = g; BREAK; ENDIF
  END FOR
  PRINT 'Hi ' + name + ', try reading ' + recommendation + '!'
ELSE
  PRINT 'Keep reading!'
ENDIF
This holistic exercise integrates user input, conditionals, loops, and data structures, mimicking real app development.

解答: (a) 输入:用户姓名、月份、书籍数量、最喜欢的体裁。处理:检查计数是否 > 5,如果为真,将最喜欢的体裁与可用体裁 ['Fantasy','Sci‑fi','Mystery','Non‑fiction'] 进行比较,并选取一个不匹配的。输出:推荐消息。 (b) 数据结构:记录 RECORD UserData{name:string, month:string, count:integer, genre:string}。 (c) 伪代码:
INPUT name, month, count, favGenre
genres = ['Fantasy','Sci‑fi','Mystery','Non‑fiction']
IF count > 5 THEN
  FOR each g in genres
    IF g ≠ favGenre THEN recommendation = g; BREAK; ENDIF
  END FOR
  PRINT 'Hi ' + name + ', try reading ' + recommendation + '!'
ELSE
  PRINT 'Keep reading!'
ENDIF
这个综合性练习整合了用户输入、条件判断、循环和数据结构,模拟真实的应用程序开发。


10. Sample Exam-Style Questions and Answers | 示例考题及答案

Question 1 (Maths‑CS): A computer uses 8‑bit registers. (a) What is the largest decimal integer it can represent if all bits are used for magnitude? (b) Convert 200 into binary and explain why it cannot fit in an 8‑bit register if one bit is reserved for sign. (c) Suggest a way to represent 200 using an extended register.

问题1(数学‑计算机): 一台计算机使用8位寄存器。 (a) 如果所有位都用于表示数值大小,它能表示的最大十进制整数是多少? (b) 将200转换为二进制,并解释如果有一位用于符号,为什么它无法放入8位寄存器中。 (c) 提出一种使用扩展寄存器来表示200的方法。

Answer: 01000₂, which is 8 bits. If one bit is used for sign, only 7 bits remain for magnitude, max value 127. 200 > 127, so overflow. (c) Use a 16‑bit register, or use two separate 8‑bit registers to hold the value split.

解答: (a) 2⁸ - 1 = 255。 (b) 200的二进制是11001000₂,共8位。如果一位用于符号,则只有7位用于数值,最大值为127。200 > 127,因此溢出。 (c) 使用16位寄存器,或者使用两个独立的8位寄存器来分存数值。

Question 2 (Biology‑CS): Given a database of bird sightings: species, count, date. Write pseudocode to find the species with the highest total count across all dates. Assume the data is in an array of records.

问题2(生物‑计算机): 给出一个鸟类观测数据库:物种、数量、日期。编写伪代码找出在所有日期中总数量最高的物种。假设数据存储在一个记录数组中。

Answer: Create a dictionary totalCounts: for each record, add count to totalCounts[species]. Then iterate through the dictionary to find the max value and corresponding species. Pseudocode:
FOR each record IN birdData
  totalCounts[species] = totalCounts[species] + count
ENDFOR
maxCount = 0; maxSpecies = ''
FOR each species IN totalCounts
  IF totalCounts[species] > maxCount THEN
    maxCount = totalCounts[species]; maxSpecies = species
ENDFOR
OUTPUT maxSpecies

解答: 创建一个字典 totalCounts:对每条记录,将 count 加到 totalCounts[species] 上。然后遍历字典,找出最大值和对应物种。伪代码:
FOR each record IN birdData
  totalCounts[species] = totalCounts[species] + count
ENDFOR
maxCount = 0; maxSpecies = ''
FOR each species IN totalCounts
  IF totalCounts[species] > maxCount THEN
    maxCount = totalCounts[species]; maxSpecies = species
ENDFOR
OUTPUT maxSpecies


Published by TutorHao | Year 8 CAIE Computer Science Interdisciplinary Training | aleveler.com

广告 / Sponsored
Cambridge International AS and A Level Physics Coursebook …
物理 备考教辅 · 正版现货 · 与本文内容相关
查看详情 / View on Taobao参考价 ¥584.0

更多咨询请联系16621398022(同微信)

备考资讯每日更新,关注不错过
考纲变化 · 科目分析 · 学习方法
扫码关注公众号 tutorhao
在微信里长按二维码识别关注
或截图后用「扫一扫 → 相册」选择本图
公众号:tutorhao