Disciplina de Laboratório de Programação I, UFSM, 1º semestre, 2026
ELC1065 DLSC/CT/UFSM
professor: Benhur Stein (benhur+l126a@inf.ufsm.br)
terças e quintas, 8h30 (turma CC3_Calouros, SI3, SI3_geral, CC3) ou 14h30 (turmas CC2_Calouros, SI2, SI2_geral, CC2)
sala 334, prédio 7 (principal do CT)
alunos monitores:
- Lorenzo Comunello (lfcomunello@inf.ufsm.br)
- Vinicius Carvalho (vinicius-carvalho.vc@acad.ufsm.br)
arquivo rascunho: https://docs.google.com/document/d/1N21tqLkZEnALHvoJXw3apZegu-AAAba2f8wwZH7tIng/edit?usp=sharing
Os canais de comunicação entre o professor e os alunos são:
- as aulas presenciais,
- esta página (https://github.com/BenhurUFSM/l126a),
- 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. O trabalho final provavelmente não possa ser desenvolvido nesses ambientes.
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.
Os computadores do NCC disponibilizam isso.
Recomenda-se que cada aluno tenha um ambiente linux no seu computador.
Os assuntos vistos em aula serão listados aqui.
| N | data | assunto |
|---|---|---|
| 1 | 3mar | apresentação, introdução, organização de um computador |
| 2 | 5mar | organização de um computador (cont, exercícios) |
| 3 | 10mar | revisão dos exercícios |
| 4 | 12mar | introdução ao C |
| 5 | 17mar | introdução ao C, cont |
| 6 | 19mar | introdução ao C, cont |
| 7 | 24mar | introdução ao C, cont |
| 8 | 26mar | exercícios, e mais alguns |
| 9 | 31mar | if, retorno de função, exercícios |
| 10 | 2abr | exercícios |
| 11 | 7abr | tipos de dados numéricos |
| 12 | 9abr | entrada e saída (printf, scanf) |
| 13 | 14abr | complementação do básico de C |
| 14 | 16abr | Implementação do t1 |
| 15 | 23abr | Implementação do t1 |
| 16 | 28abr | ponteiros e referências |
| 17 | 30abr | vetores |
| 18 | 5mai | strings |
| 19 | 7mai | Implementação do t2 |
| 20 | 12mai | Implementação do t2 |
| 21 | 14mai | registros |
| 22 | 19mai | exercícios |
| 23 | 21mai | arquivos |
| 24 | 26mai | t3 |
| 25 | 28mai | t3 |
| 26 | 2jun | alocação dinâmica de memória |
| 27 | 4jun | alocação dinâmica de memória, cont. |
| 28 | 9jun | desenvolvimento do t3 |
| 29 | 11jun | desenvolvimento do t3 |
A descrição dos exercícios e trabalhos a entregar será colocada abaixo.
| N | prazo | descrição |
|---|---|---|
| e1 | 9mar | exercícios da aula 2 (anexe a um e-mail com o assunto "l1-e1-fulano", substituindo fulano pelo seu campo fulano na planilha de alunos) |
| t1 | 24abr, 12h | trabalho 1 análise |
| t2 | trabalho 2 | |
| t3 | 18jun | trabalho 3 Houve alteração nas teclas |
| final | 21jun,8h | entrega final |
| conversa | 22jun a 3jul | horário individual, veja a aba "final" da planilha |
| exame | 7jul |
A avaliação será realizada por trabalhos de programação desenvolvidos durante o semestre. Esses trabalhos serão descritos na tabela acima. Eles receberão uma análise inicial após a entrega, sem avaliação. A avaliação será realizada no final do semestre, quando cada aluno enviará a versão final de seus trabalhos (ou um subconjunto deles), juntamente com uma auto-avaliação. Além disso, haverá uma conversa individual com o professor.
Informações individuais sobre os alunos (identificação, datas para a entrevista final, notas, etc) estarão na planilha. A planilha vai sendo preenchida durante o semestre.
As notas aparecerão após o processamento das entrevistas. Quem não tiver nota 7 terá acesso ao exame. O exame é uma prova escrita, em papel, sem uso de computadores, sobre todo o conteúdo da disciplina.
Ver no ementário e no plano de ensino (breve).
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 de programação.