Guia criado com o objetivo de ajudar os calouros do curso de Ciência da Computação da Universidade de Brasília
Índice:A disciplina de Algoritmos e Programação de Computadores, ou APC, é ensinada de uma forma bem meticulosa, tomando seu tempo com cada nova matéria relacionada a programação e detalhes da linguagem utilizada, uma vez que a maioria dos alunos tem pouco ou nenhum contato prévio com programação.
Se você possuir alguma experiência com programação ou feito algum curso introdutório, já saberá boa parte da disciplina e isso te permite focar em outras, porém a partir do momento que você não souber resolver as questões das aulas práticas, você deve voltar a focar na matéria.
Caso você seja um calouro, ainda tenha um tempo antes das aulas começarem e gostaria de adiantar essa matéria, um bom recurso seria o curso online de Harvard chamado CS50x, que cobre programação em C desde o aspecto mais básico.
A disciplina possui 6 créditos, ou seja, são 3 aulas por semana, sendo normalmente distribuída entre 2 teóricas (no pavilhão) e 1 prática (no LINF).
obs.: Atualmente (2020/02) as aulas são estão exclusivamente no modelo EAD, por motivos óbvios. Sendo 3 aulas semanais síncronas (1 aula teórica, 1 prática e 1 para dúvidas), e também aulas assíncronas de teoria.
As aulas práticas possuem um método alternativo de ensino, não é algo guiado com todo mundo codando a mesma coisa, são apresentadas diferentes questões relacionadas a matéria da semana com dificuldades variadas e os alunos devem pensar em soluções para cada uma delas.
As questões são publicadas numa plataforma de contests, com um espírito de competição, onde os que resolverem mais exercícios (e em menos tempo) ficam nas primeiras posições do placar público.
É importante notar que sua posição no placar final da aula não altera sua nota, o importante é que você faça o máximo que puder e termine em casa os que não conseguiu resolver em sala de aula.
Há diversos monitores durante a aula que podem te ajudar a encontrar as soluções e você também pode perguntar para outros no grupo da turma no WhatsApp.
obs.: Atualmente (2020/02) os contests não estão ocorrendo. O que temos é uma lista de 10 exercícios semanais, muito semelhantes com os exercícios do URI ou CodeForces.
Os conteúdos ensinados durante o semestre são bem distribuídos, primeiramente ensina-se os básicos da linguagem como variáveis e comandos simples, seguindo para estruturas condicionais e de repetição e então para conteúdos um pouco mais avançados como funções, tipos de variáveis mais complexos (vetores, strings, etc), algoritmos novos, manipulação de arquivos, recursividade, etc.
Alguns conteúdos costumam ser mais difíceis de entender a princípio do que outros, portanto seguem abaixo explicações um pouco diferentes para tentar lhe ajudar a entender essas matérias, assim como mais recursos para estudar.
A preencher
A preencher
A preencher
Ao final da disciplina, a professora irá passar um trabalho (normalmente se trata de um jogo) para ser desenvolvido em C, onde será avaliado o aprendizado de todos os conteúdos ensinados durante o semestre assim como a organização do seu código.
A melhor forma de se entender como a estrutura de um jogo funciona, se trata de ler o código de outros jogos já prontos e entender como funcionam, seguem alguns exemplos de semestres passados de APC:
Note nos exemplos como é importante que o código seja bem organizado, identado, com suas funções comentadas e que as variáveis tenham nomes significativos para facilitar o entendimento.
obs.: Atualmente (2020/02) o “Projeto Final” é composto de 3 projetos maiores distribuídos ao longo do semestre. Para a turma de 2020/02 os 3 projetos foram complementares um ao outro, criando, ao fim de todos, um pipeline completo para tratamento de dados brutos de forma a tornar um dataset de imagens inicial útil para aplicação de algoritmos de aprendizado de máquina.
As provas são realizadas no mesmo formato das aulas práticas.
A preencher
Algumas dicas extras para se dar bem na matéria