MCTA028-15 - Programação Estruturada Terceiro Quadrimestre de 2023
- Turma(s): Diurno
- Professor: Maycon Sambinelli
- E-mail: m.sambinelli@ufabc.edu.br
- 💡 Caixa de Sugestões
Avisos importantes
- 🆕🔥 19/02/24 - Conceitos finais liberados. So long, and thanks for all the fish!!!
- 11/02/24 - Um e-mail com detalhes sobre a REC foi enviado para o e-mail acadêmico de todos os matriculados no curso no dia 07/02
- 25/12 - Resultado da rinha divulgado
- 21/12 - Conceitos antes da REC liberados (link consertado) As instâncias usadas para a correção do trabalho podem ser acessadas no link
- 12/12 - Rec foi adiada para o Q1 de 2024
- 08/12 - Notas da P1 foram consolidadas na planilha de nota
- 06/12 - P2 foi adiada :(
- 27/11 - Slides da aula do dia 27/11 foram adicionados à página
- 20/11 - Slides da aula do dia 21/11 foram adicionados à página
- 06/11 - Slides da aula do dia 07/11 foram adicionados à página
- 23/10 - Slides da aula do dia 24/10 foram adicionados à página
- 22/10 - Enunciado do projeto foi liberado
- 17/10 - Slides sobre structs foram adicionados à página
- 09/10 - Slides sobre strings foram adicionados à página
- 05/10 - Configuração do VSCode foi adicionada à página
- 26/09 - Horário de atendimento definido
- 25/09 - Slides para a aula de terça foram adicionados
- 20/09 - Seção Atendimento foi atualizada
- 20/09 - Correćão do horário da aula prática (horários das turmas A1 e A2 estavam trocados)
- 20/09 - Sećão de slides foi atualizada.
- 19/09 - Página no ar.
Objetivos
Apresentar noções básicas e intermediárias sobre algoritmos, programação em linguagens compiladas, compilação, programas em execução (processos), ponteiros, alocação estática e dinâmica de memória, vetores e matrizes, funções e passagem de parâmetros, registros, arquivos e recursividade. Aplicar todos os conceitos apresentados no contexto da resolução de problemas clássicos e novos da computação.
Recomendações
Processamento da Informação
Bibliografia e outros materiais
- [KR88] Brian W. Kernighan & Dennis M. Ritchie; The C Programming Language. 2nd ed. 1988.
- [Sc97] Herbert Schildt; C: Completo e Total. 1997.
Critérios de avaliação regular
- A avaliação da disciplina constituirá em duas provas, laboratórios e um projeto.
- A prova 1 vale 20% da nota.
- A prova 2 vale 30% da nota.
- Os laboratórios valem 30% da nota.
- O projeto vale 20% da nota.
- Sejam \(P_1\), \(P_2\), \(L\), \(T\) as notas (entre 0 e 10) da prova 1, prova 2, laboratórios e projeto, respectivamente.
- Sua média final (\(MF\)) antes da recuperação, portanto, será
\[ MF = \begin{cases} \min\{P_1 , P_2, L, T\},& \textrm{ se } P1 + P2 < 10 \textrm{ ou } L < 5 \textrm{ ou } T < 5\\ 0.2 \times P_1 + 0.3 \times P_2 + 0.3 \times L + 0.2 \times T,& \textrm{ caso contrário}\\ \end{cases} \]
- Note, portanto, a importância de obter bom desempenho tanto nas provas quanto nos laboratórios e no projeto.
- Seu conceito final será
\[ CF = \begin{cases} \textbf{A} ,& \text{se } MF \in [8.5;10.0]\\ \textbf{B} ,& \text{se } MF \in [7.0;8.5) \\ \textbf{C} ,& \text{se } MF \in [6.0;7.0) \\ \textbf{D} ,& \text{se } MF \in [5.0;6.0) \\ \textbf{F} ,& \text{se } MF < 5.0\\ \textbf{O} ,& \text{Se o número de faltas exceder 25% do total de aulas (independentemente do valor MF)} \end{cases} \]
🚨 Caso seja verificado ocorrência de fraude acadêmica, o aluno será automaticamente reprovado com MF = 0.
Mecanismo de recuperação
- A recuperação será aplicada apenas aos alunos que tiverem conceito final D ou F .
- Consistirá numa avaliação, cujo conteúdo englobará todos os temas vistos durante o quadrimestre.
- A nota obtida na avaliação de recuperação (\(NR\)) será usada para obter a nota final com recuperação (\(NFR\)), que consiste na média:
\[NFR = \frac{MF + NR}{2} \]
- O conceito final com recuperação (\(CFR\)) será calculado da seguinte maneira:
\[ CFR = \begin{cases} C, & \text{se } CF = D \text{ e } NFR \geq 6;\\ D, & \text{se } CF = D \text{ e } NFR < 6;\\ D, & \text{se } CF = F \text{ e } NFR \geq 5;\\ F, & \text{caso contrário}. \end{cases} \]
Mecanismos de avaliação substitutivos
- Uma prova substitutiva será aplicada ao aluno que possuir justificativa de ausência em uma das provas.
- Envie por e-mail a sua justificativa o quanto antes, para informar o professor que irá realizar a prova substitutiva.
- A listagem dos documentos aceitos como justificativa consta na resolução ConsEPE n° 181.
- A nota obtida na prova substitutiva necessariamente substituirá a prova para a qual o aluno tem justificativa.
- A data para realização de avaliações substitutivas da Prova 1 ou da Prova 2 está informada na seção: Datas Importantes
Plágio
🚨 Leitura obrigatória 🚨
Entre outros, o código de ética da UFABC estabelece em seu artigo 25 que é eticamente inaceitável que os discentes:
- fraudem avaliações,
- fabriquem ou falsifiquem dados,
- plagiem ou não creditem devidamente autoria,
- aceitem autoria de material acadêmico sem participação na produção,
- vendam ou cedam autoria de material acadêmico próprio a pessoas que não participaram da produção.
Muitos ainda têm dúvidas sobre a interpretação das regras definidas pelo Código de Ética da UFABC. Por esta razão, diversos professores elaboraram um documento (disponível aqui) com vários exemplos e esclarecendo a interpretação das regras acima. Abaixo uma versão resumida, que não substitui de modo algum sua leitura. Sempre consulte o documento completo ou converse com o seu professor em caso de dúvidas!
- Regra 1: Você não pode enviar para avaliação um trabalho que não seja de sua própria autoria ou que seja derivado/baseado em soluções elaboradas por outros.
- Regra 2: Você não pode compartilhar a sua solução com outros alunos nem pedir aos seus colegas que compartilhem as soluções deles com você.
- Regra 3: Nos trabalhos enviados para avaliação você deve indicar eventuais assistências que você tenha recebido.
- Nós encorajamos fortemente que você procure outras pessoas quando houver a necessidade. Discuta o problema e possíveis ideias para soluções, mas elabore sua própria solução, por conta própria.
- Qualquer violação às regras descritas acima implicará em descarte dos conceitos atribuídos a TODAS as tarefas avaliativas regulares de TODOS os envolvidos, causando assim suas reprovações automáticas com conceito F.
- Possível denúncia à Comissão de Transgressões Disciplinares Discentes da Graduação, a qual decidirá sobre a punição adequada à violação que pode resultar em advertência, suspensão ou desligamento, de acordo com os artigos 78-82 do Regimento Geral da UFABC.
Dias, horários e locais das aulas
Teórica
- Terças-feiras: 8h - 10h (Sala A-108-0).
Prática
- Quintas-feiras: 10-12h (Sala 407-2) – Turma A1
- Quintas-feiras: 08-10h (Sala 407-2) – Turma A2
Datas Importantes
- P1: 26/10
- P2:
07/1211/12 (reposição de uma quinta-feira) - Sub:
11/12 às 10h(veja a Seção Mecanismos de avaliação substitutivos) - REC:
14/12Q1 de 2024 (horário a definir)
Atendimento
Com professor
Local: Bloco A, Torre 2, Piso 5, Sala 518-2
- Horário: Terças-feiras das 16h às 18h.
Monitoria (remota e presencial)
Cronograma
Data | Semana | Aula | Tópico |
---|---|---|---|
19-09 | Ter | 1 | Introdução ao curso/Organização de um computador e compilação / Introdução à linguagem C |
21-09 | Qui | 2 | Lab 1 |
26-09 | Ter | 3 | Entrada/Saída/Operações relacionais e lógicas / Condicionais / Laços |
28-09 | Qui | 4 | Lab 2 |
03-10 | Ter | 5 | Laços / Funções |
05-10 | Qui | 6 | Lab 3 |
10-10 | Ter | 7 | Recursão |
12-10 | Qui | 🛀 Feriado 📚 | |
17-10 | Ter | 8 | Vetores e matrizes |
19-10 | Qui | 9 | Lab 4 |
24-10 | Ter | 10 | Memória e Ponteiros |
26-10 | Qui | 11 | P1 |
31-10 | Ter | 12 | Ponteiros e alocação dinâmica |
02-11 | Qui | 🛀 Feriado 📚 | |
07-11 | Ter | 13 | Estruturas e Arquivos |
09-11 | Qui | 14 | Lab 5 |
14-11 | Ter | 15 | Ordenação |
16-11 | Qui | 16 | Lab 6 |
21-11 | Ter | 17 | Lista ligada |
23-11 | Qui | 18 | Lab 7 |
28-11 | Ter | 19 | Árvores |
30-11 | Qui | 20 | Lab 8 |
05-12 | Ter | 21 | Árvores |
07-12 | Qui | 22 | P2 |
11-12 | Seg (rep Qui) | 23 | Sub |
14-12 | Qua (rep Qui) | 24 | REC |
Notas e Frequência
Notas de aula
Apresentaćão do curso
Introdução à linguagem C - 1
Introdução à linguagem C - 2
Introdução à linguagem C - 3
Introdução à linguagem C - 4
Introdução à linguagem C - 5
Introdução à linguagem C - 6
Outros tipos de listas
Arquivos
Listas
Aquecimento
Lista 06
Lista 07
Projeto
Resultado da Rinha
Campeão
- 🏆 CAIO CARDOSO DOS SANTOS
Sobre os testes
- Competiram apenas os programas que passaram em todos os casos de testes usados para atestar a correção do trabalho
- Todos os programas foram compilados com as mesmas flags de otimização, no caso
-O3
- Os programas tinhas no máximo 6 minutos para resolver a instância
- O tempo auferido foi obtido calculando-se a média aritmética de três execuções (para mitigar o impacto de cache miss e do escalonador do SO)
- Todos os arquivos referentes aos testes computacionais (script execução e cálculo de tempo de execução, programas, entrada, saída e etc) podem ser obtidos nesse link: rinha.zip. Obs os programas foram compilados para executar em um sistema Linux de arquitetura x86-64.
Resultado
O nome do programa é formado pelo último nome de cada membro do grupo
Programa | Resultado (s) |
---|---|
eras | desclassificado (timeout) |
ferreira | 208.327 |
hanrebellosantos | 123.99 |
pereiracostasilva | 221.633 |
romano | 165.907 |
santos | 101.093 |
veigazanardigarcia | 127.513 |