UFABC - MCTA028-15 - Programação Estruturada
Terceiro Quadrimestre de 2018

Índice

Permalink

Professor: Emilio Francesquini
E-mail: e.francesquini@ufabc.edu.br


Avisos

  • [2018-12-13 Thu] Notas finais incluindo Sub. e Rec. disponíveis.
  • [2018-12-12 Wed] Mudança de sala - Atenção: a prova Sub/Rec de amanhã 13/12 será das 08:00 às 10 na sala 407-2.
  • [2018-12-10 Mon] Seu feedback é muito importante para nós… Por favor, gaste 2 minutinhos para preencher o formulário disponível aqui e assim ajudar a melhorar o curso (ou o professor) em suas próximas edições.
  • [2018-12-10 Mon] Notas finais disponíveis (P1, P2, Proj. 1, Proj. 2 e Labs. semanais).
    • Avisos importantes:
      • Para tirar dúvidas ou fazer vista de prova vocês podem me procurar na minha sala durante os horário de atendimento ou, em casos excepcionais, por e-mail.
      • Horário de atendimento extra: terça-feira 11/12 das 10h às 12h.
      • Prova de recuperação ou substituva (SUB ABERTA E DO MAL): quinta-feira, dia 13/12, das 8h às 10h, no laboratório 404-2 \(\rightarrow\) 407-2 (laboratório usual da disciplina).
      • Aqueles que precisarem de prova substititutiva ou de recuperação devem me procurar impreterivelmente até dia 12/12 às 18h.
      • Por favor, para que eu possa imprimir um número de provas suficiente peço para aqueles que desejarem fazer seja a prova substitutiva ou a prova de recuperação que me avisem por e-mail das suas intenções.
      • A prova de recuperação pode ser feita por aqueles que ficaram com conceito final D ou F e não ultrapassaram o limite de faltas. A sub é aberta a todos (que me avisarem por e-mail) e é do mal.
      • Veja aqui o resultado do desafio do projeto da disciplina.
  • [2018-12-05 Wed] Exercícios feitos durante a aula de revisão da P2 disponíveis.
  • [2018-12-04 Tue] Aulão Programação Estruturada. Dia 05/12, Quarta, 17:30 às 19:00. Organizado por ufabc.dojo e UFABC Code Challenge.
  • [2018-11-27 Tue] Lista de exercícios 08 disponível.
  • [2018-11-21 Wed] Lista de exercícios 07 disponível.
  • [2018-11-14 Wed] Projeto 1 - Data de entrega adiada para 20/11/2018 (Terça)
  • [2018-11-13 Tue] Lista de exercícios 06 disponível.
  • [2018-11-09 Fri] Enunciado do Projeto (Parte 2) disponível.
  • [2018-11-06 Tue] Notas da P1 disponíveis
  • [2018-11-01 Thu] Lista de exercícios 05 disponível.
  • [2018-10-21 Sun] Aulão Programação Estruturada. Dia 23/10, Terça, 16:30. Organizado por ufabc.dojo e UFABC Code Challenge.
  • [2018-10-16 Tue] Enunciado do Projeto (Parte 1) disponível.
  • [2018-10-15 Mon] Lista de exercícios 04 disponível.
  • [2018-10-12 Fri] Lista de exercícios 03 disponível.
  • [2018-10-12 Fri] Adicionados horários de atendimento dos monitores.
  • [2018-09-28 Fri] Listas de Exercício 01 e 02 disponíveis.
  • [2018-09-12 Wed] Página online

Informações Gerais

Aulas Teóricas

  • Professor: Emilio Francesquini
  • Turmas: DA1MCTA028-15SA e DA2MCTA028-15SA
  • Quarta das 10:00 às 12:00. Sala S-311-1, semanal

Aulas Práticas

  • Turma DA1MCTA028-15SA - A1-diurno
    • Professor: Cláudio Nogueira de Meneses
    • Quinta das 08:00 às 10:00. Sala 409-2, semanal
  • Turma DA2MCTA028-15SA - A2-diurno

Atendimento

  • Presencial
    • Horários de atendimento
      • Nos horários listados abaixo não é preciso confirmar ou marcar, apenas apareça! :-)
      • Neste quadrimestre o conteúdo da disciplina será unificado com a turma da Profª. Carla N. Lintzmayer e alunos de ambas as turmas podem escolher livremente entre os horários abaixo
      • Segunda-feira, das 10:00 às 12:00
        • Sala 531-2. Prof. Emilio
      • Terça-feira, das 13:00 às 15:00
        • Sala 508-2. Profª. Carla
      • Quarta-feira, das 13:00 às 15:00
        • Sala 531-2. Prof. Emilio
        • L405-2. Monitor Mauro
      • Quarta-feira, das 18:00 às 20:00
        • L405-2. Monitor Vinícius
      • Quinta-feira, das 13:00 às 15:00
        • Sala 508-2. Profª. Carla
        • L403-2. Monitor Marcelo
      • Quinta-feira, das 17:00 às 19:00
        • L403-2. Monitor Renato
  Seg Ter Qua Qui Sex
08:00 09:00       Aula Prática  
09:00 10:00       Aula Prática  
10:00 11:00 Atendimento Emilio   Aula Teoria    
11:00 12:00 Atendimento Emilio   Aula Teoria    
12:00 13:00          
13:00 14:00   Atendimento Carla Atendimento Emilio; Atendimento Mauro Atendimento Carla; Atendimento Marcelo  
14:00 15:00   Atendimento Carla Atendimento Emilio; Atendimento Mauro Atendimento Carla; Atendimento Marcelo  
15:00 16:00          
16:00 17:00          
17:00 18:00       Atendimento Renato  
18:00 19:00     Atendimento Vinícius Atendimento Renato  
19:00 20:00     Atendimento Vinícius    
  • Agendado por e-mail
    • Verifique minha agenda e sugira pelo menos dois possíveis horários!
  • Em sala de aula - Após as aulas
  • Online
    • Por e-mail.
    • Pelo fórum da disciplina.

Sobre a Disciplina

MCTA028-15 - MCTA028-15

  • TPI: 2-2-4
  • Recomendações: Processamento da Informação

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.

Conteúdo Programático

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.

Fonte: Projeto Pedagógico do BCC 2017


Datas Importantes

  • Prova 1 - 25/10/2018
  • Prova 2 - 06/12/2018
  • Prova Substitutiva - Em conjunto com a prova de recuperação. Dia 13/12/2018
  • Prova de Recuperação - 13/12/2018
  • Projeto Parte 1 - 18/11/2018 \(\rightarrow\) 20/11/2018
  • Projeto Parte 2 - 02/12/2018

Listas de Exercícios

Recomendamos fortemente que você resolva e implemente todos os exercícios das listas. Elas não valem nota, mas lhe ajudarão a fixar os conteúdos vistos em sala.


Laboratórios Semanais

  • Haverá uma atividade de laboratório por semana, totalizando 10 atividades ao longo do quadrimestre.
  • O enunciado de cada atividade será disponibilizado às quintas-feiras, no Moodle.
  • A solução dessas atividades deverá ser entregue apenas pelo Moodle, até o domingo da semana seguinte à liberação do enunciado (10 dias de prazo).
  • A nota de cada laboratório poderá chegar a 10 caso o programa execute corretamente em todos os casos de teste e será 0 caso contrário.
    • Exemplos de problemas que causam redução da nota: código não indentado, nomes de variáveis/funções pouco claros, desorganização do código.
  • Cada atividade terá um peso específico, divulgado em seu enunciado, que irá variar de acordo com sua complexidade.
  • Não serão aceitas soluções fora do prazo.
  • Não haverá laboratórios substitutivos.
  • Essas atividades devem ser feitas individualmente.
Semana Laboratório (peso) Data Entrega
1 Olá Mundo (1); StarUber (10); Rogue 102: A Aliança Contra-Ataca (10) 07/10/2018
2 Jogo da Velha (1); Abastecimento (10); Cálculo do dia da semana (10) 07/10/2018
3 Street Fighter (1); Onde está o WALL-E? (20) 14/10/2018
4 Séries de Taylor (1); Conversão de Base (1); Área de Polígonos Convexos (10); JMob (20) 21/10/2018
5 Killing the Messenger (1); Liber8 (1); Intercalação (10); Processamento de Imagens (20) 04/11/2018
6 Bônus – Mortos de Fome (5); Quantas expressões existem? (10); Alterações em Textos (1) 04/11/2018
7 DON'T PANIC (20); Strpock 🖖 (20) 11/11/2018
8 Conjuntos e Ponteiros (10); Pokemão (20) 22/11/2018
9 Sem comentários (5); Sistema de notas (5); CPU Wars (30) 29/11/2018
10 Sistema da Prograd (2); Paixão Nacional (2); Copa do Mundo (20) 06/12/2018

Projeto: Googol

  • Parte 1 - Dia 18/11/2018 \(\rightarrow\) 20/11/2018
  • Parte 2 - Dia 02/12/2018
  • Implementações de referência
  • Política de atrasos

    Dias em Atraso Nota Máxima
    0 10
    1 7
    2 6
    3 5
    >3 0
  • Desafio

    • As barras representam quantas vezes o programa é mais lento do que o programa mais rápido de todos (primeira barra, de valor 1).
    • Um grupo escreveu um código mais rápido que o código dos professores (e também foi o mais rápido das 3 turmas) e ganhou 2 pontos de bônus. Parabéns!
    • Adicionalmente, os trabalhos mais rápidos de cada turma ganharam 1 ponto extra.
    • Notem que apenas as versões que passaram em TODOS os casos de teste estão abaixo (considerando todas as turmas).


Aulas

Sem. Data Assunto Material
19/09 - Teoria 01 Apresentação; Organização de um computador; Compilação; Introdução a linguagem C (1) A Disciplina; (2) Organização de Computatores; (3) Introdução à Linguagem C
  20/09 - Prática 02 Linha de comando; GCC; Redirecionamento de E/S; Moodle; Lab 0: Hello World; Lab 1: Exercícios Básicos Slides Prática; Arquivo com comandos mais importantes
26/09 - Teoria 03 E/S Básica; Tipos Pt. 2; Operações relacionais e lógicas;Condicionais; Laços (4) Entrada e Saída; (5) Operações e expressões relacionais e lógicas; (6) Estruturas condicionais; (7) Laços
  27/09 - Prática 04 Lab 2: Condicionais  
03/10 - Teoria 05 Laços e funções (8) Funções
  04/10 - Prática 06 Lab 3: Laços  
10/10 - Teoria 07 Funções e recursão (8) Funções; (9) Recursão
  11/10 - Prática 08 Lab 4: Funções  
17/10 - Teoria 09 Vetores e matrizes; Enunciado do projeto (10) Vetores e Matrizes
  18/10 - Prática 10 Lab 5: vetores/matrizes  
24/10 - Teoria 11 Revisão Exercícios Resolvidos Durante a Aula; Exercícios Profª. Carla
  25/10 - Prática 12 PROVA 1  
31/10 - Teoria 13 Ponteiros, parte 1 (11) Ponteiros - Parte 1
  01/11 - Prática 14 Lab 6: Ponteiros  
07/11 - Teoria 15 Ponteiros, parte 2 (12) Ponteiros - Parte 2
  08/11 - Prática 16 Lab 7: Ponteiros  
14/11 - Teoria 17 Estruturas e arquivos (13) Estruturas; (14) Arquivos
  15/11 - Feriado Feriado - Proclamação da República  
10ª 21/11 - Teoria 18 Algoritmos de ordenação (15) Ordenação em vetores
  22/11 - Prática 19 Busca Binária. Lab 9: ordenação/busca  
11ª 28/11 - Teoria 20 Listas ligadas (16) Listas ligadas
  29/11 - Prática 21 Lab 10: Listas ligadas  
12ª 5/12 - Teoria 22 Revisão Exercícios Resolvidos Durante a Aula;
  6/12 - Prática 23 PROVA 2  
13ª 13/12 - Prática 24 (Reposição I) Recuperação  

Notas

Critério de avaliação

warning.png Honestidade Acadêmica

Entre outros, o código de ética da UFABC estabelece em seu artigo 25 que é eticamente inaceitável que os discentes:
I - fraudem avaliações;
II - fabriquem ou falsifiquem dados;
III - plagiem ou não creditem devidamente autoria;
IV - aceitem autoria de material academico sem participação na produção;
V - 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. 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.

    ATENÇÃO: todos os trabalhos enviados para avaliação poderão ser verificados por um sistema automatizado de detecção de plágio.

Qualquer violação às regras descritas acima implicará:

  • 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.
  • Possível denúncia apresentada à Comissão de Ética da UFABC, de acordo com o artigo 25 do Código de Ética da UFABC.

A avaliação da disciplina será composta por três notas. Uma referente às provas, outra às atividades semanais e finalmente, a nota do projeto. Considere:

  • \(N_F\) é a nota final;
  • \(N_{Pv}\) é a nota das provas;
  • \(N_{At}\) é a nota das atividades semanais;
  • \(N_{Pj}\) é a nota do projeto;

A nota final (\(N_F\)) será determinada da seguinte maneira:

\begin{equation*} N_F = \begin{cases} \min\{N_{Pv}, N_{At}, N_{Pj}\} ,& \text{se } N_{Pv} < 5 \text{ ou } N_{At} < 5 \text{ ou } N_{Pj} < 5 \\ 0.5 \cdot N_{Pv} + 0.3 \cdot N_{At} + 0.2 \cdot N_{Pj},& \text{caso contrário} \end{cases} \end{equation*}

O conceito final (\(C_F\)) será obtido de acordo com a equação abaixo:

\begin{equation*} C_F = \begin{cases} \textbf{O} ,& \text{se ausência total exceder 25%}\\ \textbf{F} ,& \text{se } N_F \in [0,0;5,0) \\ \textbf{D} ,& \text{se } N_F \in [5,0;6,0) \\ \textbf{C} ,& \text{se } N_F \in [6,0;7,0) \\ \textbf{B} ,& \text{se } N_F \in [7,0;8,5) \\ \textbf{A} ,& \text{se } N_F \in [8,5;10,0] \\ \end{cases} \end{equation*}

Provas

A nota das provas \(N_{Pv}\) será formada por duas provas \(P_1\) e \(P_2\). Todas as provas serão efetuadas em sala de aula, sem auxílio de computador.

Haverá também uma prova subsitutiva \(P_S\) que será aberta a todos os interessados, ainda que eles tenham feito tanto a \(P_1\) quanto a \(P_2\).

important.png Atenção

A nota da \(P_S\) será utilizada obrigatoriamente em substituição à menor nota entre \(P_1\) e \(P_2\) ainda que isto diminua a nota final do aluno!

Assim, a nota de provas (\(N_{Pv}\)) será calculada conforme a seguinte fórmula:

\begin{equation*} N_{Pv} = \begin{cases} \frac{2 \cdot P_S + 3 \cdot P_2}{5} ,& \text{caso tenha feito a } P_S \text{ e } P_1 < P_2 \\ \frac{2 \cdot P_1 + 3 \cdot P_S}{5} ,& \text{caso tenha feito a } P_S \text{ e } P_2 \leq P_1 \\ \frac {2 \cdot P_1 + 3 \cdot P_2}{5} ,& \text{caso contrário} \end{cases} \end{equation*}

Atividades Semanais

Haverá de uma atividade de laboratório por semana, totalizando 10 atividades ao longo do quadrimestre.

  • O enunciado de cada atividade será disponibilizado às quintas-feiras, no Moodle.
  • A solução dessas atividades deverá ser entregue apenas pelo Moodle, até o domingo da semana seguinte à liberação do enunciado (10 dias de prazo).
  • A nota de cada atividade será 10 caso o programa execute corretamente em todos os casos de teste e será 0 caso contrário.
  • Cada atividade terá um peso específico, divulgado em seu enunciado, que irá variar de acordo com sua complexidade.
  • Não haverá laboratórios substitutivos.
  • Essas atividades devem ser feitas individualmente.

Projeto

O projeto será feito em duas fases (\(F_1\) e \(F_2\)) com diferentes pesos. A nota do projeto (\(N_{Pj}\)) será calculada pela seguinte fórmula.

\begin{equation*} N_{Pj} = \frac{F_1 + 2 \cdot F_2 }{3} \end{equation*}

Recuperação

Conforme Resolução ConsEPE nº 182 fica assegurado a todos os alunos com \(C_F\) igual a D ou F o direito a fazer uso de mecanismos de recuperação.

A recuperação será feita através de uma prova \(P_R\), sem consulta, e a sua nota será utilizada para compor a o conceito pós-recuperação \(C_R\) conforme as equações abaixo:

\[N_R = \frac{P_R + N_F}{2}\]

Caso 1 \(C_F = D\):

\begin{equation*} C_R = \begin{cases} \textbf{C} ,& \text{se } N_R \geq 6,0 \\ \textbf{D} ,& \text{caso contrário} \end{cases} \end{equation*}

Caso 2 \(C_F = F\):

\begin{equation*} C_R = \begin{cases} \textbf{D} ,& \text{se } N_R \geq 5,0 \\ \textbf{F} ,& \text{caso contrário} \end{cases} \end{equation*}

Recursos Online


Bibliografia

Os textos principais utilizados neste curso serão o PF, RS. Alguns assuntos tratados em aula também farão referência ao excelente KR.

div.png

pf.jpeg [PF] Texto Principal

div.png

rs.jpeg [RS] Texto principal

div.png

kr.jpeg [KR]


Última atualização: 2018-12-13 19:16
Emacs 26.1 (Org-mode 9.1.14)

Autor: Emilio Francesquini

Created: 2018-12-13 Thu 19:16