NOTAS FINAIS: https://github.com/fabiommendes/apc2018/blob/master/nota-final.pdf
Importante: https://github.com/fabiommendes/apc2018/blob/master/notas-p1.pdf
Este é o Git da disciplina Algoritmos e Programação de Computadores. Aqui será compartilhado o material produzido em sala de aula assim como tarefas, wiki e discussões. Este arquivo contêm informações básicas sobre a disciplina e o plano de ensino do semestre.
- Curso:
- Engenharias
- Professor:
- Fábio Macêdo Mendes
- Disciplina:
- Algoritmos e Programação de Computadores
- Semestre/ano:
- 02/2018
- Carga horária:
- 90 h
- Créditos:
- 06
- Princípios fundamentais de construção de programas.
- Construção de algoritmos e sua representação em pseudocódigo e linguagens de alto nível.
- Noções de abstração.
- Especificação de variáveis e funções.
- Testes e depuração.
- Padrões de soluções em programação.
- Noções de programação estruturada.
- Identificadores e tipos.
- Operadores e expressões.
- Estruturas de controle: condicional e repetição.
- Entrada e saída de dados.
- Estruturas de dados estáticas: agregados homogêneos e heterogêneos.
- Iteração e recursão.
- Noções de análise de custo e complexidade.
- Desenvolvimento sistemático e implementação de programas.
- Estruturação, depuração, testes e documentação de programas.
- Resolução de problemas.
- Aplicações em casos reais e questões ambientais.
Aulas teóricas e de exercícios: segundas, terças e quintas-feiras às 14h Atendimento e monitoria: a definir
Este curso utiliza GitHub para gerenciar o curso. A comunicação com a turma é feita através de issues no repositório do Github. Habilite a funcionalidade "Watch" no repositório para receber notificações sobre atualizações.
- Google Classroom:
- http://classroom.google.com/ - Código de inscrição: 1byukn
- Github:
- http://github.com/fabiommendes/apc2018/
Cada aluno será avaliado com uma nota numérica onde a conversão entre a pontuação e a menção final é feita da forma usual: 9,0pts+: SS, 7,0pts+: MS, 5,0pts+: MM, 3,0pts+: MI e < 3,0 pts II. A distribuição de pontos ao longo do curso segue a fórmula:
NotaFinal = 0.3 * P1 + 0.35 * P2 + 0.35 * P3
onde P1, P2 e P3 consistem na nota das provas 1, 2 e 3.
O curso não inclui prova substitutiva. Caso o aluno possua uma falta justificada no dia da primeira prova, deverá apresentar um comprovante na aula seguinte à prova ou quando terminar a licença médica. Esta justificativa não abona falta, mas dá direito ao aluno participar do 300 e utilizar a nota da segunda prova.
O aluno pode faltar até 12 vezes em um semestre. Faltas com justificativa médica não serão abonadas, exceto em casos excepcionais. Os alunos reprovados por falta ficarão com uma menção igual a SR.
As avaliações serão realizadas com auxílio do computador no laboratório de informática. Todas as submissões serão processadas por um programa de detecção de plágio. Qualquer atividade onde for detectada a presença de plágio será anulada sem a possibilidade de substituição. Não será feita qualquer distinção entre o aluno que forneceu a resposta para cópia e o aluno que obteve a mesma.
O curso utiliza alguns pacotes Python para os quais cada estudante deverá providenciar a instalação o mais cedo o possível. O curso requer Python 3.6+ com alguns pacotes instalados:
Python: Versão 3.6+
Pip: Gerenciador de pacotes do Python (sudo apt-get install python3-pip)
- Editores de código/IDE:
Utilize o seu favorito. Caso precise de uma recomendação, seguem algumas: * VSCode - um bom meio termo entre uma IDE e um editor de código leve.
Criado para Javascript, mas possui bons plugins para Python e várias outras linguagens.
- PyCharm Educacional - IDE com ótimos recursos profisionais que adora
- a sua memória RAM. Possui versão livre e versão profissional gratuita para estudantes.
DICA: em todos os casos, prefira instalar os pacotes Python utilizando o
apt-get e somente se o pacote não existir, instale-o utilizando o pip. Se
utilizar o pip, faça a instalação de usuário utilizando o comando
pip3 install <pacote> --user
(NUNCA utilize o sudo junto com --user e evite
instalar globalmente para evitar problemas futuros com o APT).
Os comandos de instalação acima assumem uma distribuição de Linux baseada em Debian como o Ubuntu ou o Mint. Não é necessário instalar uma distribuição deste tipo e você pode adaptar os comandos para o gerenciador de pacotes da sua distribuição (ou o Brew, no caso do OS X).
Introdução à Programação com Python: Nilo Ney Coutinho Menezes, Novatec, 2014
Semana | Data | Aula |
---|---|---|
1 | 13/08 | Início das aulas – Apresentação do curso |
14/08 | Linha de comando
|
|
15/08 | Algoritmos
|
|
2 | 20/08 | Introdução ao Pytuguês
|
21/08 | Estruturas de controle
|
|
23/08 | Interação com o usuário
|
|
3 | 27/08 | Listas
|
28/08 | Dicionários
|
|
30/08 | Strings
|
|
4 | 03/09 | Funções
|
04/09 | Projeto de Jogos: Pong
|
|
06/09 | Recursão em funções
|
|
5 | 10/09 | PROVA I: Pytuguês
|
11/09 | Python
|
|
13/09 | Entrada/Saída
|
|
6 | 17/09 | Laço "for"
|
18/09 | Arquivos
|
|
20/09 | Representação de inteiros
|
|
7 | 24/09 | Semana universitária |
25/09 | ||
27/09 | ||
8 | 01/10 | Recursão
|
02/10 | Análise de complexidade
|
|
04/10 | Laboratório: Sequência de Collatz
|
14 | 05/11 | Introdução ao C
|
06/11 | Entrada e Saída
|
|
08/11 | Declaração de funções
|
|
15 | 12/11 | Tipagem estática
|
13/11 | Números de ponto flutuante
|
|
15/11 | Feriado: Proclamação da República | |
16 | 19/11 | Laço "while"
|
20/11 | Laço "for"
|
|
22/11 | Arrays
|
|
17 | 26/09 | Structs
|
27/11 | Processamento de dados em C
|
|
29/11 | PROVA III: C
|
|
18 | 03/12 | Revisão de nota |
04/12 | Entrega de projeto web | |
06/12 | Prova substitutiva |
Obs.: O cronograma está sujeito a alterações.