Conteúdo Programatico
Computadores e Automação
- O que é um computador?
- O que é programação?
- Por que as empresas precisam de programas
- Casos de uso e abstração
Objetivos : Compreender que os computadores são instrumentos programáveis e que muito do seu poder transformador nas indústrias reside nessa flexibilidade. Os programadores ensinam o computador a fazer as coisas que os usuários desejam. Entenda que programar é escrever um conjunto de instruções, mas entenda também a diferença entre escrever instruções para uma pessoa e um programa de computador. Entenda também que os programas precisam ser testados e mantidos; ou seja, que os programas têm públicos múltiplos. Finalmente, o capítulo aborda o uso comercial de computadores para automação.
Workshops : Encontrando a temperatura na cidade de Nova York; encontre a porta em uma sala vazia; converter unidades em artigos de jornal.
Estratégia de Resolução de Problemas
- O que é um problema?
- Domínio comercial vs. domínio de linguagem de programação
- Compreendendo o problema
- Elaborando e Executando o Plano
- Acessando Resultados
- Solução de documentação
- Testabilidade
Objetivos : introduz a ideia de quebrar um problema de aparência complexa em pedaços pequenos o suficiente para que a solução se torne óbvia. Ao longo do caminho, apresenta descrições visuais e verbais de soluções, a utilidade dos padrões de projeto e a importância de testar, documentar e refatorar soluções.
Workshops : Problema de percurso pedestre (múltiplas etapas); avisar sobre a opção de expiração.
Representando Soluções
- Linguagem Natural
- Pseudo-código
- Testes unitários
- Função do usuário e da interface do usuário
Objetivos : Amplia as descrições visuais, matemáticas e verbais do capítulo anterior, mostrando maneiras mais formais de descrever programas. Neste ponto, são introduzidos os conceitos de objetos e classes (neste curso, todos os programas são orientados a objetos, portanto, introduzimos objetos antes de introduzir loops). Passamos então para a ideia de teste unitário, para testar os objetos projetados. Finalmente, é abordado o papel das entradas e interfaces do usuário, com uma introdução à ideia de wireframe.
Workshops : Calculadora de anuidades; teste unitário de calculadora de anuidade; interface de usuário da calculadora de anuidade wireframe.
Kit de ferramentas de programação funcional
- Terminologia
- Fazer escolhas
- Repetição
- Acompanhando as coisas
- Estruturas de dados
Objetivos : Familiarizar-se com o kit de ferramentas funcionais de um programador: instruções, blocos, variáveis, condições, loops, armazenamento e estruturas de dados como arrays, listas e mapas. Ao longo do caminho, introduzimos inicialização e escopo de variáveis.
Workshops : Planeamento de comboios; planejamento de trens com loop; carregar caminhões; jogo de adivinhação de números; fazendo mudanças.
Programas Orientados a Objetos
- Métodos e Dados
- Objetos e Classes
- Delegação
- Algoritmos
- Interfaces
- Herança
Objetivos : Aprender a pensar em termos de objetos e como os objetos se relacionam com módulos e funções, incluindo os conceitos de estado, integridade de dados e encapsulamento. Entenda a necessidade de serviços e sessões. Em seguida, passamos para algoritmos comuns que são apresentados como soluções comuns para problemas de programação: pesquisa linear, loops de consolidação, funções de biblioteca, pesquisa gananciosa e divisão e conquista. O capítulo introduz relacionamentos entre objetos como forma de reutilização e passa a descrever métodos e interfaces abstratos. Finalmente, o padrão de design composto é introduzido.