LEP01580 - Fundamentos de Programação em C++
Pré-requisito: Sem pré-requisito
Créditos: 4 (3 teóricos e 1 prático)
Carga Horária: 85h (3*17+2*17)
Horários das aulas
Formato - Aulas Online
Sala
Online - Google Meet e Youtube
Aulas disponibilizadas no Youtube
Equipamentos
Computadores com sistema operacional Gnu/Linux - Fedora (ou outra distribuição e/ou Windows/Mac OS X).
Compilador g++ da GNU.
Monitoria
Nome do monitor:
Atualmente sem monitor.
Horário de monitoria:
Objetivos
Ao final da disciplina saber/ter conhecimento de
Instalação de compilador.
Conceitos básicos de algoritmos.
Entrada e saída via teclado/terminal.
Estruturas de dados.
Estruturas de controle.
Estruturas de repetição.
Construir pequenos programas.
Parte I - Introdução ao Computador, Algoritmos e Programas (15h)
Parte II - Introdução à Programação com C++(20h)
Parte III - Projeto de Integração Numérica (8h)
Parte IV - Material Completar (8h)
Parte I - Introdução à Computação e Engenharia
Capítulo 1: O Engenheiro de Software e o Mercado (Ex-Alunos)
Capítulo 2: Introdução à Computação e ao Projeto em Engenharia
Capítulo 3: Hardware: O Computador Físico
Capítulo 4: Algoritmos: A Lógica de Programação
Capítulo 5: Sistemas Operacionais e Sistemas de Arquivos
Capítulo 6: Softwares, Programas e Linguagens de Programação
Capítulo 7: Ferramentas Essenciais do Programador
Parte II - A Linguagem C++ (Fundamentos)
Capítulo 8: Introdução ao C++ e o Processo de Compilação
Capítulo 9: Diretrizes de Pré-processamento
Capítulo 10: Conceitos Básicos, Tipos e Operadores
Capítulo 11: Estruturas de Controle e Repetição
Capítulo 12: Referências e Ponteiros (Básico)
Parte III - Modularização e Matemática
Capítulo 13: Funções I: Conceitos Básicos e Sobrecarga
Capítulo 14: A biblioteca Matemática (cmath)
Parte IV - Estruturas de Dados e Memória (Paradigma Estruturado)
Capítulo 15: Tipos de Dados Avançados
Capítulo 16: Vetores, Matrizes e Arrays (C-Style e std::array)
Capítulo 17: Gerenciamento de Memória e Ponteiros Avançados
Capítulo 18: Tipos Definidos pelo Usuário: Enum, Struct e Union
Parte V - Projetos Aplicados (Fase Estruturada)
Capítulo 19: Exemplos de Algoritmos
Capítulo 20: Projeto de Integração Numérica (Versões v0.1 a v0.5-3 - Estruturado)
- Implementação das regras do Trapézio e Simpson usando funções e structs.
- Preparação para a migração OO (v0.6+) que ocorrerá no Livro 04.
Lista de Projetos Didáticos de Apoio
Estes projetos servem como base para exercícios e exemplos ao longo do livro:
- ProjetoEngenharia-Didatico-00-Figuras2D-AreaPerimetro
- ProjetoEngenharia-Didatico-00-JogoBatalhaNaval
- ProjetoEngenharia-Didatico-01-MetNum-IntegracaoNumerica (Foco deste livro)
- ProjetoEngenharia-Didatico-01-MetNum-Estatistica-Solver-EDO
- ProjetoEngenharia-Didatico-02-MetNum-InterpolacaoLinear e ProcessamentoImagens
- ProjetoEngenharia-Didatico-04-Arduino-Esp32-Emulador-CalculadoraHP
- ProjetoEngenharia-Didatico-05-Gestao-PertCPM e SistemaAcademico
Exercícios
O arquivo de apresentação de cada aula inclui uma seção exercícios. Os exercícios passados em uma semana devem ser entregues no primeiro dia de aula da próxima semana (de cada grupo de 3 exercícios o aluno é obrigado a fazer 1. Por exemplo: exercícios 1, 4, 7, 10, 13, etc).
Testes
Os testes são realizados no início da aula e tem duração de até 20 minutos.
Abordam temas já vistos e o material da aula presente. De cada 10 testes a pior nota é desconsiderada.
Provas
Duas provas teóricas.
Nas provas são incluídos pontos extras. Mas os pontos extras só serão contabilizados para quem passar na média final, isto é, primeiro calcula a média final, aqueles que passaram terão contabilizados os pontos extras.
Material da disciplina (apresentação das aulas), material extra e fontes relacionadas a disciplina são disponibilizados aos alunos via compartilhamento do dropbox.
Site com Softwares:
Apostilas:
Apostila: Modelo de IC/MSC/DSC os arquivos para o modelo podem ser baixados no link Github.
Apostila: Calculadoras Científicas RPN Programáveis - Breve Histórico e Exemplos de Uso.
Veja na página de softwares desenvolvidos um emulador para calculadoras HP.
Apostila: Provas e Provas Resolvidas de C++ versão de 2018 (entre em contato para dados atuais).
Apostila: Metodologia Científica em Engenharia (versão bem preliminar em desenvolvimento, disponibiliza apenas para alunos).
Aulas que podem ser uteis:
Github:
Github do LDSC: https://github.com/ldsc
Exemplo Software modo terminal: Simulat - Simulador Transf. Calor e Massa em Telhas
Links úteis
Veja lista de referências bibliográficas em: Bibliografia Programação
Nota importante:
Os alunos do curso de engenharia de petróleo da UENF fazem as disciplinas do ciclo básico na cidade de Campos, e a parte profissionalizante na cidade de Macaé. Em função da COVID19 e problemas associados os alunos ficaram sem a disciplina de FCC - Fundamentos de Ciências da Computação normalmente dada em Campos. Para ajudar os alunos foi criado um curso de verão, curso concentrado, em que foi ministrada esta disciplina. Na prática isto significa que o curso foi montado para ajudar nossos alunos e com o material e equipamento que foi possível utilizar.
Considero que o resultado ficou razoável, mas ainda estamos esperando a chegada de equipamentos, como filmadores/microfones/computador de melhor qualidade para que não ocorram problemas operacionais e técnicos durante a gravação das aulas.
No exemplo a seguir, extraído do site cppreference.com, temos o cálculo do polinômio de Legendre.
No exemplo a seguir, temos um extrato de código, a função calcula a autocorrelação de imagens usando múltiplas threads (processamento paralelo).