MCTA028-15 - Programação Estruturada Terceiro Quadrimestre de 2023


banner.jpeg

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

  1. [KR88] Brian W. Kernighan & Dennis M. Ritchie; The C Programming Language. 2nd ed. 1988.
  2. [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:

  1. fraudem avaliações,
  2. fabriquem ou falsifiquem dados,
  3. plagiem ou não creditem devidamente autoria,
  4. aceitem autoria de material acadêmico sem participação na produção,
  5. 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

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

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

Arquivos

Projeto

Resultado da Rinha

karate.png

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