/l122a

Laboratório I de programação, turma CC2+SI2, UFSM, 1º semestre de 2022

Primary LanguageC

l122a - Laboratório I de Programação


Apresentações finais

Dias 16 e 18 ago, sala 334, hora da aula (ou à partir das 14h)

Apresentações individuais, em princípio na ordem abaixo, 10~15mn cada.

TERÇA
jvrates
jvandrade
agrocha
ahjacobs
ebtiggemann
mfquadros
mlpillon
gpcosta
fdbecker

QUINTA
derodrigues
rdcecchin
rtgatto
aarohr
abzanetti
rsbecker
glcamargo
rdsoares
cmrocha
fdjunior

ELC1065 DLSC/CT/UFSM
turmas SI2 e CC2, primeiro semestre 2022
professor: Benhur Stein (benhur+l122a@inf.ufsm.br)
terças e quintas, 14h30
sala 334, prédio 7 (principal do CT)
aluno monitor: Daniel de Vargas (ddvargas@inf.ufsm.br, discord:daniel_vargas#7024)

Desenvolvimento da disciplina

Os canais de comunicação entre o professor e os alunos são as aulas presenciais, esta página (https://github.com/BenhurUFSM/l122a), e-mail (ver acima). Caso queira conversar fora desses canais, 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 estará sendo aumentada/atualizada durante todo o semestre. Ela é o canal mais oficial de informações sobre a disciplina.

A disciplina de laboratório I de Programação é bastante prática, e exige que os alunos se dediquem bastante e desenvolvam trabalhos práticos. O objetivo da disciplina, aprender a programar computadores, envolve conceitos que podem levar um tempo razoável para serem adquiridos. A prática de programação tem se mostrado essencial nesse aprendizado. Para realizar essa prática, é necessário acesso a um computador e a um ambiente de desenvolvimento de programas. 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.

Em um computador pessoal, pode-se instalar um ambiente de desenvolvimento localmente ou usar um dos vários que existem gratuitamente online. O que se necessita como ambiente de desenvolvimento para a disciplina é o mais básico, basta um editor de textos e um compilador da linguagem "C". Exemplos de ambiente gratuito online: onlineGDB, replit. Os exercícios e trabalhos da disciplinas podem ser desenvolvidos nesses ambientes.

Meu ambiente pessoal de trabalho é no sistema linux, e nesse sistema posso auxiliá-los na instalação e uso de um compilador. Não tenho nenhuma experiência pessoal gratificante com windows, não vou poder auxiliá-lo com problemas diretamente relacionados ao uso desse ambiente.

Por ser uma disciplina prática, a principal forma de avaliação dos alunos será através de exercícios, principalmente o desenvolvimento de pequenos programas de computador, a serem enviados para o professor. No final do semestre, deve ser desenvolvido um trabalho final um pouco mais complexo. A descrição desses exercícios e programas, bem como a forma de entrega dos mesmos será disponibilizada nesta página.

Os trabalhos entregues não serão 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 desenvolvidos (a ser definido), juntamente com uma auto-avaliação descrevendo o seu desenvolvimento durante o semestre, contendo uma sugestão de nota.

Para quem não alcançar a nota suficiente (7), haverá uma prova escrita de recuperação (chamada exame).

Não deixem dúvidas acumularem. Quanto mais cedo conseguirmos nos comunicar para apontar problemas, expor sugestões, melhores vão ser nossas chances de sucesso.

Aulas

Os assuntos vistos em aula serão listados aqui.

N data assunto
1 12abr introdução
2 14abr primeiro programa C
3 19abr representação de números, tipos de dados numéricos
4 26abr variáveis, entrada de dados
5 28abr funções
6 3mai funções, cont
7 5mai seleção (comando if)
8 10mai repetição (comando while)
9 12mai repetição (comandos for, do..while)
10 19mai exercícios de repetição
11 24mai exercícios
12 26mai switch, passagem de parâmetros por referência
13 31mai Exercícios sobre repetição usando primos
14 2jun Resolução dos exercícios da aula anterior, Vetores
15 7jun Resolução de exercícios da aula passada (ordenação de vetor) Lista de exercícios
16 9jun Strings
17 14jun Matrizes
18 21jun Arquivos
19 23jun Exercícios sobre arquivos
20 28jun Registros
21 30jun exercícios sobre registros
22 5jul exercícios sobre registros
23 7jul Alocação dinâmica de memória
24 12jul sobre os trabalhos
25 14jul sobre os trabalhos (adicionado programa exemplo)
26 19jul trabalhos (foram adicionados os arquivos de palavras)
27 21jul trabalhos

Exercícios, trabalhos, provas

N prazo assunto
E1 trazer dúvidas para a aula de 14abr ver final do texto da introdução
E2 trazer dúvidas para a aula de 19abr ver final do texto da 2ª aula
E3 trazer dúvidas para a aula de 5mai triângulos (ver 6a aula)
T1 11mai12mai triângulos
T2 ASD jogo da velha (alterado com a pt3)
T3 ASD mata-palavras
F 15ago, 12h entrega final
apresentações 16 e 18ago
exame 25ago

Ementa

Ver aqui.

Material Auxiliar

Apostila de C da UFPR

Curso de programação C da UFMG

Apostila de programação da UFPR

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.

Avaliações etc

Veja a planilha.