/l124a

Disciplina de Laboratório de Programação I, 1° semestre 2024

Primary LanguageC

l124a

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)\

Desenvolvimento da disciplina

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

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).

Aulas

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

Exercícios, trabalhos

A descrição dos trabalhos a entregar será colocada abaixo.

N prazo descrição
1 4abr, <12h t1

Notas

As avaliações e outras anotações individuais serão colocadas na planilha.

Ementa

Ver no ementário.

Material Auxiliar

Apostila de C da UFPR

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.