Computer Science Principles

(CSP)

Programação Avançada - 14 anos ou mais.

Este curso é indicado para:

  • Adolescentes a partir de14 anos que já tenham experiência em alguma linguagem de programação; e
  • Adultos.

São abordados conceitos avançados de programação em JavaScript como funções, parâmetros, APIs, encadeamento de funções, bancos de dados e depuração (debugging). Estes conceitos são aplicados à solução de problemas, construção de jogos, páginas interativas e aplicativos. No segundo semestre, são feitos tópicos especiais de acordo com o interesse do aluno, que incluem: Arduíno, Unity3D (criação de jogos), CSS+HTML (páginas de internet), Robótica (EV3 Lego) e outros. O CSP tem duração de um ano.

Investimento
10 parcelas (anual)
R$ 210,00/mês (turma de até 12 alunos)
Duração de aproximadamente 36 aulas (anual).

Quando?
1h - 1x na semana
Horários 1o/2017:

  • Segunda-feira das 15h às 16h (no Colégio Logosófico)
  • Quarta-Feira das 14:30h às 15:30h (na Just CODING)

Parte I - Programação

Aulas no sistema da CODE.ORG.

  • A1 - (U) A necessidade de Linguagens de Programação. Nesta aula os alunos aprendem o que é uma linguagem de programação e quais os principais problemas com a ambiguidade em instruções em programas.
  • A2 - Usando comandos simples. Os alunos usarão um laboratório de criação de aplicativos (App Lab), que oferece as ferramentas de JavaScript para criação de programas. Nesta primeira aula, eles irão desenhar figuras simples com os comandos de JavaScript.
  • A3 - Criando Funções. Nesta aula os alunos irão definir e chamar funções (conjuntos de comandos) para usar várias vezes em um seus programas.
  • A4 - Funções e Design "Top-Down". Os alunos serão apresentados ao conceito de design "top-down", onde partes de um sistema são decompostas em sistemas menores para solucionar problemas.
  • A5 - APIs e Parâmetros de Funções. Estudantes aprenderão a utilizar a documentação de API (Application Programming Interfaces), ou seja, aprenderão a ler os guias de referência que catalogam e explicam as funções de cada linguagem de programação.
  • A6 - Criando funções com parâmetros. Nesta aula os alunos irão praticar criar funções com parâmetros, que são muito mais poderosas e genéricas do que funções que são simples coletâneas de comandos.
  • A7 - Loops e Números Aleatórios. Os alunos aprenderão a usar números aleatórios e repetições (loops) para cirar variações em desenhos e duplicar objetos que devem aparecer em seus cenários digitais.
  • A8 - PRATICANDO. Nesta aula, os alunos irão usar todos os conceitos aprendidos até aqui para cirar uma cena digital (cenário para jogo, por exemplo) da forma que desejarem.
  • A9 - (U) Eventos. Nesta aula, sem o uso do computador, os alunos irão aprender a importância de sincronizar e planejar os eventos, que são as ações que o comoputador monitora e reage a elas, como apertar botão, arrastar um objeto ou escolher um item de menu.
  • A10 - Programação e debugging baseada em Eventos. Nesta aula os alunos irão desenvolver uma interface simples que utilizará eventos (botões, menus, etc.). Depois irão explorar quais os erros possíveis com este tipo de programação e como devem responder às mensagens de erro.
  • A11 - Além de botões -- em direção à aplicativos. Nesta aula os alunos aprendem como criar diversas telas e como navegar entre elas.
  • A12 - Introduzindo o Modo de "Design". Agora fica mais fácil para os alunos desenvolverem aplicativos, pois não precisam mais codificar diretamente cada botão. Através das propriedades de cada elemento, podem modificar o design do aplicativo.
  • A13 - Apps com Várias Telas. Aplicando os conceitos das últimas duas aulas, os alunos criam um aplicativo (App) com várias telas.
  • A14 - Controlando a memória com variáveis. Introduz o conceito de variáveis e como elas podem ser utilizadas em JavaScript.
  • A15 - Usando variáveis em Apps. Aplica o conceito da aula anterior na criação de aplicativos.
  • A16 - Entradas do usuário e palavras (strings). Introduz o conceito de palavras (strings) em JavaScript e sua manipulação.
  • A17 - Introdução à ajudantes digitias. Utilização de páginas de ajuda e assistentes.
  • A18 - Entendendo o fluxo e lógica da programação. Introdução do conceito de fluxo linear ou direcionado à Eventos.
  • A19 - Introdução à Lógica Condicional. Apresentação do conceito de Lógica Condicional (if/then/else), que permite que o programa execute instruções diferentes dependendo de respostas do usuário.
  • A20 - Lógica Condicional Composta. Combinação de diversas aplicações de Lógica Condicional (if/then/if/then/else...) para obter comportamentos de alta complexidade.
  • A21 - Projeto de Assistente Digital. Nesta aula é apresentado o conceito de Assistente Digital, como o "Siri" do iPhone.
  • A22 - Laços do tipo "Enquanto". Estrutura de repetição diferente, que consiste em repetir uma ação enquanto uma premissa for verdadeira.
  • A23 - Loops e Simulações. Aplicação dos conceitos aprendidos de repetição (loops) em simulações.
  • A24 - Introdução à "arrays" (listas). Apresentação do conceito de "arrays", que são listas com diversos valores que podem ser acessados através de sua posição.
  • A25 - "Scroller" de imagem controlado por Eventos. 
  • A26 - Processamento de "arrays". Aplicação do conceito da Aula 24. 
  • A27 - Funções com retorno de valores. Apresentação do conceito de funções que devolvem um valor à quem as chamou. O valor dependerá da execução da função.
  • A28 - "Canvas" e "Arrays" em Apps. Aplicação dos conceitos de "tela de desenho" (canvas) e de listas de valores (arrays) em aplicativos.
  • A29 - Projeto Final. Ao final das aulas, os alunos apresentam um projeto original individual.

Parte II - Tópicos Especiais

 Aulas baseadas no interesse dos alunos de cada turma.

Unity 3D

  • A1 - Criando um cenário.
  • A2 - Criando um Jogo 3D simples.

Robótica

  • A1 - Introdução ao EV3 - tipos de robôs.
  • A2 - Montando um robô Parte I.
  • A3 - Montando um robô Parte II.
  • A4 - Programando o robô.
  • A5 - Melhorias e programação no robô.

HTML + CSS

  • A1 - Criando uma página de internet.
  • A2 - Páginas interativas.

Arduíno

  • A1 - Introdução a Circuitos.
  • A2 - LEDS e Programação no Arduíno.