Pular para o conteúdo

GAC017 Computing III: Ciência de Dados e Aplicativos Web

Computação do GAC · Tópico 3

Treinar
3.1

O que este módulo é e como é avaliado

GAC017 é o módulo de Computação Nível III: o que fica por trás de um site. Seis unidades cobrem back-end JavaScript, bancos de dados, SQL, conectando os dois, e uma primeira olhada em data science.

A avaliação é inteiramente prática — um database 数据库 que você desenha e constrói, um web app 网络应用 que fala com ele, um data analysis project 数据分析项目, e coursework — geralmente espalhado por grande parte do semestre, em vez de concentrado no final.

  • O trabalho é julgado por se executar e responder a uma pergunta, não pela quantidade de código.
  • ⚠ Desenhe o banco de dados antes de escrever uma query. Quase todo problema posterior é um problema de tabela vestindo roupas de query.

Todos os exemplos SQL aqui rodam no próprio playground de código do site, e a referência SQL lá é a versão mais completa destas notas.

Vocabulário Treinar
Inglês Chinês Pinyin
database/ˈdeɪtəbeɪs/ 数据库 shù jù kù
web app/web æp/ 网络应用 wǎng luò yìng yòng
data analysis project/ˈdeɪtə əˈnæləsɪs ˈprɒdʒekt/ 数据分析项目 shù jù fēn xī xiàng mù
3.1

JavaScript for a web app's back end

Programa

Unidade 1 de 6 em GAC017 Informática III: Ciência de Dados e Apps Web (Nível III). O módulo é lecionado durante cerca de 40 horas de aula mais 20 horas de estudo independente, sendo avaliado no centro de ensino e moderado pela ACT — não há exame externo.

Propósito do Módulo: Ao concluir este módulo, os alunos deverão ser capazes de criar um app web. Os alunos aprenderão sobre programação back-end e como criar um site dinâmico. Eles serão capazes de usar SQL para analisar dados de múltiplas tabelas a fim de tomar decisões informadas.

Os resultados deste módulo que esta unidade busca alcançar:

Objetivo de Aprendizagem GAC017.1: Compreender os componentes básicos de uma Aplicação Web.

Fonte: Programa Cambridge International

  • O front end 前端 roda no navegador; o back end 后端 roda em um servidor e armazena o que o navegador não deve ver.
  • Um server 服务器 recebe um request 请求 e retorna uma response 响应. Esse ciclo é a arquitetura inteira.
  • Uma API 应用程序接口 é o formato combinado desses requests e responses.
  • ⚠ Qualquer dado secreto — uma senha, uma chave — pertence apenas ao back end. Código em um navegador é legível por todos que visitam.
Vocabulário Treinar
Inglês Chinês Pinyin
front end/frʌnt end/ 前端 qián duān
back end/bæk end/ 后端 hòu duān
server/ˈsɜːvə/ 服务器 fú wù qì
request/rɪˈkwest/ 请求 qǐng qiú
response/rɪˈspɒns/ 响应 xiǎng yìng
API/ˌeɪ piː ˈaɪ/ 应用程序接口 yìng yòng chéng xù jiē kǒu
3.2

Programação back-end

Programa

Unidade 2 de 6 em GAC017 Informática III: Ciência de Dados e Apps Web (Nível III). O módulo é lecionado durante cerca de 40 horas de aula mais 20 horas de estudo independente, sendo avaliado no centro de ensino e moderado pela ACT — não há exame externo.

Os resultados deste módulo que esta unidade busca alcançar:

Objetivo de Aprendizagem GAC017.2: Adaptar um aplicativo back-end usando linguagens de script para interagir com bancos de dados.

Fonte: Programa Cambridge International

  • Um route 路由 mapeia uma URL para código que roda quando aquela URL é solicitada.
  • Validate input 校验输入 no servidor. Validar no navegador é uma comodidade para usuários honestos, não uma defesa.
  • Nunca construa uma query unindo strings com entrada do usuário. É assim que SQL injection SQL 注入 acontece, e é essa falha de segurança que esta unidade existe para prevenir.
  • Retorne um estado honesto: 200 para sucesso, 400 para má solicitação, 404 para algo que não existe.
Vocabulário Treinar
Inglês Chinês Pinyin
route/ruːt/ 路由 lù yóu
Validate input/ˈvælɪdeɪt ˈɪnpʊt/ 校验输入 jiào yàn shū rù
SQL injection/ˌes kjuː ˈel ɪnˈdʒekʃn/ SQL 注入 SQL zhù rù
SQL/ˌes kjuː ˈel/ 结构化查询语言 jié gòu huà chá xún yǔ yán
3.3

Introduction to databases

Programa

Unidade 3 de 6 em GAC017 Informática III: Ciência de Dados e Apps Web (Nível III). O módulo é lecionado durante cerca de 40 horas de aula mais 20 horas de estudo independente, sendo avaliado no centro de ensino e moderado pela ACT — não há exame externo.

Os resultados deste módulo que esta unidade busca alcançar:

Objetivo de Aprendizagem GAC017.3: Criar um banco de dados com múltiplas tabelas.

Fonte: Programa Cambridge International

  • Um relational database 关系数据库 armazena dados em tables 表 de linhas e colunas.
  • Uma primary key 主键 identifica uma linha de forma única. Uma foreign key 外键 aponta para outra primary key de outra tabela, e esse ponteiro é o relacionamento.
  • Normalização 规范化 remove dados duplicados para que um único fato viva em um único lugar.
  • Projunte perguntando quais são as entities 实体, e então o que as conecta.

Worked example. Uma escola quer armazenar alunos, cursos e quem faz o quê.

Duas tabelas não conseguem fazer isso: um aluno faz muitos cursos e um curso tem muitos alunos. A muitos-para-muitos precisa de uma terceira tabela — inscrições — cujas linhas são pares (aluno, curso).

Reconhecer que essa terceira tabela é necessária é a ideia de banco de dados mais útil na unidade, e é onde a maioria dos primeiros projetos erra.

Vocabulário Treinar
Inglês Chinês Pinyin
relational database/rɪˈleɪʃənl ˈdeɪtəbeɪs/ 关系数据库 guān xì shù jù kù
tables/ˈteɪblz/ 表 biǎo
primary key/ˈpraɪməri kiː/ 主键 zhǔ jiàn
foreign key/ˈfɒrən kiː/ 外键 wài jiàn
Normalisation/ˌnɔːməlaɪˈzeɪʃn/ 规范化 guī fàn huà
entities/ˈentɪtiz/ 实体 shí tǐ
3.4

SQL for back-end programming

Programa

Unidade 4 de 6 em GAC017 Informática III: Ciência de Dados e Apps Web (Nível III). O módulo é lecionado durante cerca de 40 horas de aula mais 20 horas de estudo independente, sendo avaliado no centro de ensino e moderado pela ACT — não há exame externo.

Os resultados deste módulo que esta unidade busca alcançar:

Objetivo de Aprendizagem GAC017.4: Analisar dados usando SQL para tomar decisões.

Fonte: Programa Cambridge International

  • SQL 结构化查询语言 faz perguntas a um banco de dados. SELECT … FROM … WHERE … é o núcleo.
  • JOIN 连接 combina linhas de duas tabelas em uma chave correspondente.
  • GROUP BY 分组 com COUNT, SUM ou AVG responde a perguntas "quantos por…"
  • ⚠ WHERE filtra linhas antes do agrupamento; HAVING filtra grupos depois. Usar o errado é o erro clássico de SQL, e geralmente retorna uma resposta plausível, mas errada.

Worked example. Quais cursos têm mais de 20 alunos?

SELECT c.title, COUNT(*) AS students
FROM enrolments e
JOIN courses c ON c.id = e.course_id
GROUP BY c.title
HAVING COUNT(*) > 20;

A contagem é uma propriedade do grupo, então o filtro é HAVING. Escrito com WHERE não roda — e quando um erro similar roda, silenciosamente responde a uma pergunta diferente.

Vocabulário Treinar
Inglês Chinês Pinyin
JOIN/dʒɔɪn/ 连接 lián jiē
GROUP BY/ɡruːp baɪ/ 分组 fēn zǔ
3.5

Conectando JavaScript com SQL

Programa

Unidade 5 de 6 em GAC017 Computação III: Ciência de Dados e Aplicativos Web (Nível III). O módulo é ministrado em cerca de 40 horas-aula mais 20 horas de estudo independente, e é avaliado no centro de ensino e moderado pela ACT — não há exame externo.

Os resultados deste módulo que esta unidade busca alcançar:

Objetivo de Aprendizagem GAC017.2: Adaptar um aplicativo back-end usando linguagens de script para interagir com bancos de dados.

Objetivo de Aprendizagem GAC017.4: Analisar dados usando SQL para tomar decisões.

Fonte: Programa Cambridge International

  • O back end recebe uma solicitação, executa uma parameterised query 参数化查询, e retorna as linhas como dados, geralmente JSON 数据交换格式.
  • Parameterizada significa que os valores viajam separadamente do texto da query. Isso é o que torna injeção impossível, e não apenas improvável.
  • Trate o caso vazio. Uma query que não retorna linhas é normal, e uma página que quebra nisso não está terminada.
Vocabulário Treinar
Inglês Chinês Pinyin
parameterised query/ˌpærəˈmetəraɪzd ˈkwɪərɪ/ 参数化查询 cān shù huà chá xún
JSON/ˈdʒeɪsn/ 数据交换格式 shù jù jiāo huàn gé shì
3.6

Ciência de dados

Programa

Unidade 6 de 6 em GAC017 Computação III: Ciência de Dados e Aplicativos Web (Nível III). O módulo é ministrado em cerca de 40 horas-aula mais 20 horas de estudo independente, e é avaliado no centro de ensino e moderado pela ACT — não há exame externo.

Os resultados deste módulo que esta unidade busca alcançar:

Objetivo de Aprendizagem GAC017.5: Aplicar a Ciência de Dados a outras áreas acadêmicas.

Fonte: Programa Cambridge International

  • Ciência de dados 数据科学 transforma dados em decisão, e a maior parte do trabalho ocorre antes da análise: limpeza, junção e verificação do que os dados podem suportar.
  • Descriptive statistics 描述性 estatísticas resumem; uma visualisation 可视化 mostra a forma; nenhum prova causa.
  • Correlation is not causation 相关不等于因果 — a frase que todo projeto de dados precisa e a maioria omite.
  • Declare as limitations de seu conjunto de dados. Um projeto que nomeia o que seus dados não podem mostrar nota acima de um que silenciosamente alega demais.
Vocabulário Treinar
Inglês Chinês Pinyin
Data science/ˈdeɪtə ˈsaɪəns/ 数据科学 shù jù kē xué
Descriptive statistics/dɪˈskrɪptɪv stəˈtɪstɪks/ 描述性统计 miáo shù xìng tǒng jì
visualisation/ˌvɪʒuːəlaɪˈzeɪʃn/ 可视化 kě shì huà
Correlation is not causation/ˌkɒrɪˈleɪʃn ɪz nɒt kɔːˈseɪʃn/ 相关不等于因果 xiāng guān bù děng yú yīn guǒ

Aulas interativas sobre este tópico

Passe por ele passo a passo, com exercícios de verificação instantânea.

Mais tópicos em Computação do GAC

Entrar ou criar conta

IGCSE, A-Level & AP