BCM0505-22 -- Processamento da Informação -- Q25.3


Atualizado em 10/02/25

Expediente

  • Professor: Aritanan Gruber , sala S-539.2
  • Aulas:
    • NA6: Ter 21-23h e Sex 19-21h na S-407.2
    • NB6: Ter 19-21h e Sex 21-23h na S-407.2
  • Atendimento: Ter e Sex 18-19h na S-539.2, mediante agendamento prévio.
  • Monitoria: (em breve)
  • Moodle: PI-Q25.3-N{A,B}6 – andamento do curso, links úteis, material, avaliações, notas, mensagens, etc.

Ementa

Introdução a algoritmos. Variáveis e tipos de dados. Operadores aritméticos, lógicos e precedência. Métodos/Funções e parâmetros. Estruturas de seleção. Estruturas de repetição. Vetores. Matrizes. Entrada e saída de dados. Depuração. Melhores práticas de programação.

Objetivos

Apresentar os fundamentos sobre manipulação e tratamento da Informação, principalmente por meio da explicação e experimentação dos conceitos e do uso prático da lógica de programação. Espera-se ao final do curso: que o aluno seja capaz de compreender os conceitos fundamentais a respeito da manipulação e tratamento da informação; que o aluno entenda a lógica de programação de computadores e adquira a habilidade prática de desenvolver algoritmos básicos para modelar e solucionar problemas de natureza técnico-científica, independentemente de uma linguagem ou de um paradigma de programação específicos.

Recomendação

Não há prérequisitos formais, mas espera-se que o aluno tenha cursado e sido aprovado (>= C) em Bases Matemáticas e Natureza da Informação.

Avaliações e critérios

  • $m\geq 2$ exercícios e problemas, $L_1,\ldots,L_m$, ao longo do quadrimestre (sala e/ou casa), com entrega via Moodle [ 20% ];
    ($L_k$ pode ser uma lista, um exercício programa, um exercício simples, um quiz, etc.)
  • duas provas regulares $P_1$ e $P_2$ e uma prova substitutiva $P_3$ aberta [ 40% cada ];
    • P1 : Sex 21/03
    • P2 : Ter 06/05
    • P3 : Sex 09/05

Nota nominal ($N$): com $$ P = \frac{1}{2}\max\left\{\sum_{j\in S}P_j\,:\,S\in\binom{[3]}{2}\right\} = \frac{1}{2}\max\left\{P_1+P_2,P_1+P_3,P_2+P_3\right\}, \quad P_j\in[0,10] $$ $$ L = 10\sum_{k=1}^{m}L_k \bigg/ \sum_{k=1}^{m}V_k, \quad L_k\in[0,V_k] $$ ($V_k$ valor máximo de $L_k$) tem-se que $$ N = \frac{4}{5}P + \frac{1}{5}L. $$

Conceito nominal ($C_N$): reflete o seu desempenho frente ao material apresentado e às avaliações realizadas; obtido pelo encaixe de $N$ em um dos intervalos: $$-\infty < \mathbf{F} < 5.0 \leq \mathbf{D} \leq 6.0 < \mathbf{C} \leq 7.0 < \mathbf{B} \leq 8.5 < \mathbf{A} < \infty.$$

Recuperação

Caso seu conceito $C_N$ seja $\mathbf{D}$ ou $\mathbf{F}$, você tem direito a uma prova de recuperação $P_R$. Esta será única e contemplará toda a matéria do quadrimestre. Uma nova nota nominal $\overline{N}=(N+P_R)/2$ será utilizada para gerar um novo conceito (nominal) final pós-recuperação $\overline{C}_N$. Note que seu conceito final pós-recuperação pode ser menor que o pré-recuperação: uma vez feita, a recuperação é parte integrante da sua avaliação.

Bibliografia

Podem ser úteis

  • [C] T. Cormen, Algorithms Unlocked, MIT Press (2013)
    Versão em Português: Desmistificando Algoritmos: Teoria e Prática, GEN LTC (2013)
  • [D] S. Dasgupta, C. Papadimitriou e U. Vazirani, Algorithms , McGraw-Hill (2006)
    Versão em Português: Algoritmos, AMGH (2009)

Na ementa

  • [E] NEVES, Rogério; ZAMPIROLLI, Francisco. Processando a Informação: um livro prático de programação independente de linguagem. 1a ed. Santo André: Editora UFABC, 2017. 192 p.
  • [F] FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção de algoritmos e estruturas de dados. 3. ed. São Paulo: Prentice Hall, 2005. 218 p.
  • [G] SEBESTA, Robert W. Conceitos de linguagens de programação. 9. ed. Porto Alegre: Bookman, 2011. 638 p.

Lista de tópicos por semana (tentativa)

Detalhes de cada tópico (coberto nas aulas) serão atualizados no Moodle ao longo do quadrimestre.

Aulas Datas Tópicos
A01 11/02 Expediente / Introdução: variáveis, tipos, expressões, REPL
A02 14/02 Funções e parâmetros
A03 18/02 Condicionais / Repetição
A04 21/02 Condicionais / Repetição
A05 25/02 Condicionais / Repetição
A06 28/02 Condicionais / Repetição
A07 04/03 Recesso (carnaval) –> R01 em Ter 06/05
A08 07/03 Strings
A09 11/03 Listas / Conjuntos / Dicionários
A10 14/03 Listas / Conjuntos / Dicionários
A11 18/03 Listas / Conjuntos / Dicionários
A12 21/03 Prova P1
A13 25/03 Matrizes
A14 28/03 Matrizes
A15 01/04 Matrizes
A16 24/04 Matrizes
A17 08/04 Recesso (aniv. sa) –> R02 em Ter 13/05
A18 11/04 Recursão
A19 15/04 Recursão
A20 18/04 Recesso (s.paixão) –> R03 em Sex 09/05
A21 22/04 Arquivos
A22 25/04 Objetos
A23 29/04 Problemas
A24 02/05 Recesso (pós.trab) –> R04 em Sex 16/05
R01 06/05 Prova P2
R02 09/05 Prova P3 (substitutiva)
R03 13/05 Revisão / Vista de avaliações
R04 16/05 Recuperação

Estudando para esta disciplina

A natureza do tópico, o posicionamento do curso na grade, e a lista de pré-requisitos indicam que esta é uma disciplina de nível intermediário; e será tratada como tal. Você deve assistir às aulas, estudar a bibliografia indicada, e dedicar-se às listas de exercícios.

Caso seus pré-requisitos não estejam tão sólidos quanto desejável (falta de familiaridade com formalismo matemático e raciocínio algorítmico, atitude passiva com relação ao aprendizado, tempo dedicado insuficiente, etc.), será possível fazer confusões e sentir-se perdido no início.

Alguns procedimentos que costumam funcionar em cursos introdutórios para mitigar os motivos relacionados também costumam funcionar por aqui:

  • Refaça os exemplos e re-prove os resultados fornecidos em sala de aula.
  • Preste atenção aos processos de solução (aprenda-os!) e não foque somente nos resultados finais.
  • Assista ativamente às aulas; resolva os exercícios nelas propostos e os contidos nas listas.
  • Estude a bibliografia indicada, monte grupos de estudo, e faça um bom uso dos horários de atendimento.
  • Tenha sempre em mente que aprendizado é uma tarefa ativa; não fique somente assistindo. “Ouvir” às aulas e “ler” os livros tem pouco ou nenhum efeito neste curso – e em qualquer disciplina matemática/algorítmica que o valha.
  • Se ainda assim, sentir-se perdido, repita os passos acima. Mais cedo ou mais tarde, eles convergirão à compreensão.

Note que você não será convidado a regurgitar respostas fornecidas em aula ou presente nos livros. As questões em listas e provas testarão sua capacidade de entender os problemas e apresentar uma solução para eles; às vezes, serão uma adaptação simples ou uma extensão direta do que foi visto, outras, será necessário relacionar dois ou mais métodos ou conceitos apresentados, e outras ainda, irão requerer análise e raciocínio mais profundo (o que leva tempo, então não deixe nada para a última hora!).

Tenha em mente: além do escrito acima, para aproveitar bem este curso, você deve ler os slides e familiarizar-se com o material na leitura sugerida correspondentes antes da aula, e estudá-los com afinco depois.

Integridade acadêmica e transgressões

O Artigo 25 do Código de Ética da UFABC estabelece, à página 23: “Quanto aos trabalhos acadêmicos, é eticamente inaceitável que os discentes:

  • I - fraudem avaliações;
  • II - fabriquem ou falsifiquem dados;
  • III - plageiem ou não creditem devidamente autoria;
  • IV - aceitem autoria de material acadêmico 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.”

Trabalhos (listas, provas, programas) suspeitos de cópia ou de outra representação fraudulenta acarretarão aos envolvidos conceitos $\mathbf{F}$ (falha) no curso. A atividade será reportada à Comissão Disciplinar Discente da universidade para que sejam tomadas todas as providências disciplinares cabíveis.

LLMs: GPTs e similares

Representam um grande avanço da inteligência artificial generativa sendo assim, por este ponto de vista, resultados magníficos. De qualquer forma, soluções transcritas e/ou entregues que tenham sido produzidas por eles enquadram-se no Artigo 25 acima.

Para pensar ao longo do curso: Do que adianta as máquinas aprenderem e os alunos não?

Avatar
Aritanan Gruber
Assistant Professor

“See, if y’all haven’t the same feeling for this, I really don’t give a damn. If you ain’t feeling it, then dammit this ain’t for you!"
(desconheço a autoria; agradeço a indicação)