Programa do Curso
Introdução
- Visão geral das características e aplicações do C
Preparando o ambiente de desenvolvimento
- Escolher um IDE
- Configurando o compilador
Escrever um programa de amostra
- Definição do problema
- Codificação de acordo com os requisitos
Definição do escopo de variáveis e funções
- Compreender o âmbito, a visibilidade e o tempo de vida
- Trabalhar com classes de armazenamento: auto, extern, register, static
Gerir dados num programa C
- Para além dos tipos de dados primitivos
- Trabalhar com tipos de dados avançados: estruturas, listas ligadas, etc.
- Armazenar diferentes tipos de dados na mesma posição de memória
Modificando as propriedades de uma variável
- Para além dos modificadores de tipo
- Trabalhar com qualificadores de tipo: constante, volátil, etc.
Manipulando Bits em C
- Trabalhar com dados mais pequenos que um byte
- Trabalhar com operadores de manipulação de bits
Controlar o fluxo do programa
- Para além da sequenciação
- Utilizar a instrução goto
Ler e escrever dados
- Recapitulação das funções de entrada/saída
- Melhorar a legibilidade da saída
Desenvolvimento de código multiplataforma
- Compreender as directivas do compilador
- Compilar código condicionalmente
Melhorar o desempenho do programa
- Macros vs funções
- Definição de macros para executar fragmentos de programa
Atribuição dinâmica de memória
- Vantagem da utilização de apontadores: velocidade de execução
- Apontadores para funções
- Accessing de memória e manipulação do endereço
Depurando um programa C
- Técnicas avançadas de verificação, deteção e correção de erros
- Trabalhar com o gdb (Gnu Debugger)
Criação de uma biblioteca estática
- Como é que uma biblioteca estática é ligada a um ficheiro executável
- Criar uma biblioteca estática
Criação de uma biblioteca partilhada
- Bibliotecas estáticas vs bibliotecas partilhadas (bibliotecas dinâmicas)
- Como uma biblioteca partilhada é ligada e carregada na memória em tempo de execução
- Criar uma biblioteca partilhada
Abstração de dados no programa
- Visão geral da interface, especificação e implementação
- Criação de um tipo de dados abstrato
- Teste de regressão de um tipo de dados abstrato
SearchInserir e ordenar dados
- [Ordenar matrizes através de pesquisa linear, pesquisa binária, etc.
- Ordenar matrizes utilizando a ordenação por seleção, a ordenação por inserção, a ordenação por bolhas
Interprocessos Communication e sinais
- Entendendo processos, soquetes e sinais
- Implementar IPC utilizando ficheiros partilhados, memória partilhada, pipes, filas de mensagens, sockets, semáforos, etc.
Fazendo seu programa C rodar em paralelo
- Executar diferentes partes de um programa em simultâneo através de multithreading
- Escrever uma thread
Redes avançadas Programming
- Recapitulação de TCP, UDP, IP e outros protocolos dominantes
- Servir várias portas, sobreviver a interrupções abruptas da rede, etc.
- Escrevendo APIs de soquete poderosas
Rumo a um código de alta qualidade
- Revisão de código pelos pares e programação paralela
- A importância da codificação iterativa (refactoring)
Resumo e conclusão
Requisitos
- Experiência em programação C
Público
- Programadores
- Desenvolvedores
Declaração de Clientes (2)
os exercícios e a metodologia
Javier MIllan Rios - si
Curso - Advanced C Programming
Máquina Traduzida
An interesting and broad scope