Disciplina de Laboratório de Programação I, 1° semestre de 2024
ELC1065 DLSC/CT/UFSM
professor: Benhur Stein (benhur+l124a@inf.ufsm.br)
monitor: Leandro Nascimento lonascimento@inf.ufsm.br)
terças e quintas, 14h30
sala 334, prédio 7 (principal do CT)\
Os canais de comunicação entre o professor e os alunos são:
- as aulas presenciais,
- esta página (https://github.com/BenhurUFSM/l124a),
- e-mail (ver endereço acima),
- conversa individual, manda um mail que marcamos.
O e-mail pode ser usado para o envio de perguntas, exercícios, reclamações, sugestões, críticas e o que mais for, durante todo o período em que durar a disciplina.
Esta página concentrará os assuntos vistos em aula, a descrição de exercícios e trabalhos, avaliações, etc. Ela será atualizada durante todo o semestre. Ela é o canal oficial de informações sobre a disciplina. Todos os alunos devem olhar o que está aqui periodicamente (recomendo habilitar notificações no github).
O objetivo da disciplina, aprender a programar computadores, envolve conceitos que podem levar um tempo razoável para serem adquiridos. A disciplina é bastante prática, e exige que os alunos se dediquem bastante e desenvolvam trabalhos práticos. É necessário dedicar um bom tempo à disciplina, além do tempo em aula. Use os canais de comunicação com o professor para sanar dúvidas. Compartilhe dúvidas e dicas com os colegas (mas não copie trabalhos).
Não deixe as dúvidas acumularem.
Para realizar as práticas, é necessário acesso a um computador e a um ambiente de desenvolvimento de programas, com (pelo menos) um editor de textos e um compilador da linguagem 'C'. A universidade dispõe de laboratórios com computadores para acesso aos alunos, com todo o software necessário instalado; consulte o NCC.
Existem ambientes de programação gratuitos online, como replit e onlineGDB. Os exercícios e trabalhos iniciais da disciplina podem ser desenvolvidos nesses ambientes, mas geralmente é menos confortável que usar ferramentas instaladas localmente.
Os trabalhos serão avaliados em um ambiente linux, usando o compilador gcc
. Os programas entregues pelos alunos devem compilar e executar corretamente nesse ambiente.
A principal forma de avaliação dos alunos será através do desenvolvimento de pequenos programas de computador, a serem enviados para o professor. O trabalho final do semestre será um pouco mais complexo. A descrição desses trabalhos, bem como a forma e data de entrega dos mesmos será disponibilizada nesta página.
Os trabalhos entregues não serão imediatamente pontuados, mas comentados de forma individual ou coletiva. Espera-se que esses comentários sejam aproveitados para gerar novas e melhores versões dos programas, como forma de aprendizagem. Os programas podem ser alterados e reenviados ao professor, caso restem dúvidas.
A avaliação será realizada no final do semestre. Para isso, cada aluno deverá entregar a versão final de um subconjunto dos trabalhos (a ser definido), juntamente com uma auto-avaliação descrevendo o seu desenvolvimento durante o semestre, contendo uma sugestão de nota. Cada aluno será entrevistado individualmente pelo professor. A nota final será então calculada, considerando:
- o estado de cada trabalho na data definida de entrega
- a versão final dos trabalhos
- a auto-avaliação
- a entrevista.
Para quem não alcançar a nota suficiente (7), haverá uma prova escrita de recuperação (chamada exame).
Os assuntos vistos em aula serão listados aqui.
N | data | assunto |
---|---|---|
1 | 12mar | apresentação, introdução |
2 | 14mar | meu primeiro programa C |
3 | 19mar | meu primeiro programa C, cont. |
4 | 21mar | não aguento mais o meu primeiro programa C! |
5 | 26mar | saída de dados com printf |
6 | 28mar | entrada de dados com scanf |
7 | 2abr | comandos de seleção |
8 | 4abr | comandos de repetição |
9 | 9abr | como é o for mesmo? |
10 | 11abr | exercícios de repetição |
Os principais conceitos que serão tratados na disciplina são:
- tipos básicos de dados (char, int, bool, float, etc)
- variáveis
- entrada e saída no terminal (scanf, printf)
- seleção (if, switch)
- laços (for, while, do-while)
- funções (modularização, passagem de parâmetros por valor e referência)
- vetores, strings, matrizes
- registros
- arquivos
- alocação dinâmica de memória
A descrição dos trabalhos a entregar será colocada abaixo.
N | prazo | descrição |
---|---|---|
1 | 4abr, <12h | t1 |
As avaliações e outras anotações individuais serão colocadas na planilha.
Ver no ementário.
Apostila de programação da UFPR
Capítulos iniciais do livro "Introdução a Estruturas de Dados - Com Técnicas de Programação em C - Waldemar Celes". Esse livro está disponível no minha biblioteca, acessível aos alunos da UFSM.
Ajude o robozinho a iluminar o mundo (ajuda no desenvolvimento de lógica de programação, fundamental para o conteúdo da disciplina) lightbot.
Ajude o passarinho a detonar o porco (semelhante ao anterior) code.org
Os grupos PET geralmente oferecem tópicos de apoio a disciplinas iniciais.