Skip to content
BenhurUFSMPublic

About

Disciplina de Laboratório II de Programação, DLSC/UFSM, 2° semestre de 2026

Resources

Stars

12 stars

Watchers

4 watching

Forks

Latest commit

 

History

147 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

l226b

Disciplina de Laboratório de Programação II, 2º semestre de 2026 ELC1067 DLSC/CT/UFSM
professor: Benhur Stein (benhur+l226b@inf.ufsm.br)
monitor: Kaua Lima (kauawho@gmail.com)
segundas e quartas, 14h30, turma CC2
sala 422, prédio 10 (pavilhão de laboratórios do CT)
alunos: planilha

arquivo rascunho

Desenvolvimento da disciplina

Os canais de comunicação entre o professor e os alunos são:

  • as aulas presenciais,
  • esta página,
  • 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 concentra 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).

A disciplina aborda a solução de problemas de programação baseada em estruturas de dados. É basicamente uma abordagem mais prática dos assuntos da disciplina de Estruturas de dados. Os assuntos vistos na disciplina são, basicamente:

  • tipos abstratos de dados
  • estruturas de dados lineares (listas)
  • estruturas de dados hierárquicas (árvores)
  • estruturas de dados em rede (grafos)

A disciplina é bastante prática, e exige que os alunos se dediquem bastante e desenvolvam os trabalhos de programação propostos. Para realizar essa prática, é necessário acesso a um computador e a um ambiente de desenvolvimento de programas, com (pelo menos) um editor de textos e um compilador C. O desenvolvimento dos trabalhos deve ser registrado em um servidor git, então é necessário também acesso a um cliente git e uma conta em um servidor git. A universidade dispõe de laboratórios com computadores para acesso aos alunos, com todo o software necessário instalado; consulte o NCC caso necessite. É 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.

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. Forte sugestão: desenvolva em um ambiente linux.

A principal forma de avaliação dos alunos será através do desenvolvimento de pequenos (ou médios) programas de computador, a serem disponibilizados para o professor. A descrição, prazo e forma de entrega dos trabalhos será disponibilizada nesta página.

O desenvolvimento dos trabalhos deve ser feito pelo aluno, de forma individual. Quando entrega um trabalho, o aluno está implicitamente dizendo "eu que fiz". A entrega de um trabalho que não foi feito pelo aluno constitui tentativa de fraude. Recomendo desenvolver os trabalhos usando um editor sem suporte a ajuda de codificação, ou a desativar esse tipo de ajuda. Em geral, para o que se espera nesta disciplina, a ajuda automática dos ambientes de programação atrapalha bem mais do que ajuda. A ajuda (não código) de colegas é incentivada.

Cada aluno deve ter uma conta git (codeberg, github, gitlab etc) com um repositório para a disciplina, ao qual o professor tenha acesso de leitura. O endereço de acesso a esse repositório deve ser cadastrado neste link. É nesse repositório que o desenvolvimento dos trabalhos deve acontecer, com commits e pushs frequentes. A atividade do repositório pode ser considerada na avaliação e na presença em aula.

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. A recuperação do aprendizado deve acontecer durante o semestre; espera-se que o aluno identifique seus pontos fracos e corrija-os. Não se espera que o que não foi realizado durante o tempo do semestre seja recuperável no exame.

A avaliação será realizada no final do semestre. Cada aluno deve entregar uma autoavaliação no final do semestre descrevendo o seu desenvolvimento durante o semestre e 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.

Aulas

Os assuntos vistos em aula serão listados aqui.

N data assunto
1 3ago apresentação, revisão da linguagem C, trabalho 1
2 5ago respostas a perguntas, esquematização do t1
3 10ago desenvolvimento do t1
4 12ago desenvolvimento do t1
5 17ago tipos abstratos de dados, anúncio do t2
6 19ago listas
7 24ago implementação de listas - contígua, encadeada com alocação contígua e encadeada com alocação individual.
8 26ago implementação de lista encadeada com alocação contígua (o arquivo acima foi alterado, o código exemplo foi corrigido, implemente o exercício).
9 31ago exercícios sobre listas
10 2set listas duplamente encadeadas
11 9set listas encadeadas — complementos
12 14set árvores
13 16set árvores - percurso + ABB
14 21set implementação de árvore binária de busca
15 23set árvore AA
16 28set fila de prioridade
17 30set t4
18 5out grafo
19 7out grafo, detecção de ciclos
14out semana acadêmica
20 19out grafo, ordem topológica
21 21out grafo, árvore geradora
22 26out t4, p3
23 28out com a transferência do feriado, a aula será só para questões sobre o trabalho, sem chamada (presença para todos)

Exercícios, trabalhos

N prazo descrição
T1 17ago,<meio-dia invasores do espaço
T2 2set TAD string
T3 29set calculadora
T4 cobrinha

Bibliografia

Os livros abaixo estão disponíveis no minha biblioteca, acessível aos alunos da UFSM.

Estruturas de Dados e Seus Algoritmos - Jayme Szwarcfiter e Lilian Markenzon

Estruturas de Dados - Nina Edelweiss e Renata Galante

Estruturas de Dados em C, Uma Abordagem Didática - Sílvio Pereira

Introdução a Estruturas de Dados - Com Técnicas de Programação em C - Waldemar Celes

Estrutura de Dados - Adriana de S. Vetorazzo, Mauício de O. Saraiva, Jeanine dos S. Barreto, Ramiro S. Córdova Jr.

About

Disciplina de Laboratório II de Programação, DLSC/UFSM, 2° semestre de 2026

Resources

Stars

12 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages