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
- [A] J.V. Guttag, Introduction to Computation and Programming Using Python – with applications to uinderstanding data, 3rd ed., MIT Press (2021)
- [B] R. Sedgewick, K. Wayne e R. Dondero, Introduction to Programming in Python: An Interdisciplinary Approach, Pearson/Addison-Wesley Professional (2015)
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?