0% acharam este documento útil (0 voto)
8 visualizações40 páginas

Lecture Note 01

A disciplina 'Técnicas de Programação para Ciência de Dados' visa capacitar os estudantes a desenvolver soluções computacionais robustas utilizando técnicas avançadas de programação. O curso abrange tópicos como modularização, programação funcional, tratamento de erros e testes automatizados, com uma metodologia que combina aulas teóricas e práticas. A avaliação será composta por provas, tarefas de programação e um trabalho final em grupo.

Enviado por

arraisronaldo6
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
8 visualizações40 páginas

Lecture Note 01

A disciplina 'Técnicas de Programação para Ciência de Dados' visa capacitar os estudantes a desenvolver soluções computacionais robustas utilizando técnicas avançadas de programação. O curso abrange tópicos como modularização, programação funcional, tratamento de erros e testes automatizados, com uma metodologia que combina aulas teóricas e práticas. A avaliação será composta por provas, tarefas de programação e um trabalho final em grupo.

Enviado por

arraisronaldo6
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 40

Técnicas de Programação para

Ciência de Dados (Cod. CK0442)


Departamento de Computação
Bacharelado em Ciência de Dados
Prof. Lincoln S. Rocha (e-mail: [email protected])
Semestre Letivo: 2024.2 | Turma T02
Introdução à Disciplina

2
Conteúdo

• Justificativa
• Objetivos
• Ementa
• Conteúdo
• Metodologia
• Avaliação
• Ambientes Virtuais
• Bibliografia

3
Justificativa
Por que cursar essa disciplina?

O estudo das técnicas de programação constitui uma componente


fundamental no aprendizado de engenharia de sistemas de
software, oferecendo uma base sólida em conceitos como
modularização, programação funcional, tratamento de erros,
manipulação de uxos de I/O, programação com threads, além de
build e testes automatizados. Esses tópicos capacitam os estudantes
a desenvolver soluções e cientes, escaláveis e robustas,
aplicando boas práticas de engenharia de software no contexto
da ciência de dados. Isso permite que lidem com grandes volumes
de dados e criem pipelines e algoritmos otimizados, essenciais para a
prática pro ssional.
4
fi
fl
fi
Objetivo
Onde queremos chegar ao nal da disciplina?

Capacitar os estudantes a desenvolver e implementar soluções


computacionais e cientes, escaláveis e robustas para a ciência de
dados, utilizando técnicas avançadas de programação modular,
funcional e orientada a objetos, além de boas práticas de
engenharia de software, como testes automatizados e tratamento
de exceções.

5
fi
fi
“Ser cientista de dados
signi ca trabalhar com
programação no dia a dia,
ou seja, todo(a) cientista de
dados precisa saber
programar.”

Fonte: https://www.alura.com.br/artigos/cientista-de-dados-programa
fi
Por que
Python?
7
“The process of translating and using How
to Think Like a Computer Scientist for the
past two years has con rmed Python’s
suitability for teaching beginning
students. Python greatly simpli es
programming examples and makes
important programming ideas easier to
teach.”
Jeff Elkner, 2002

Fonte: https://www.greenteapress.com/thinkpython/thinkCSpy/thinkCSpy.pdf
fi
fi
https://greenteapress.com/wp/think-python-3rd-edition/

9
https://greenteapress.com/wp/think-python-2e/
10
https://greenteapress.com/wp/elements-of-data-science/ https://greenteapress.com/wp/think-stats-2e/
Fonte: https://spectrum.ieee.org/top-programming-languages-2024
https://spectrum.ieee.org/top-programming-languages-2024
https://spectrum.ieee.org/top-programming-languages-2024
https://spectrum.ieee.org/top-programming-languages-2024
Fonte: https://survey.stackover ow.co/2024
fl
Fonte: https://survey.stackover ow.co/2024/technology#most-popular-technologies
fl
Fonte: https://survey.stackover ow.co/2024/technology#most-popular-technologies-language-prof
fl
Fonte: https://survey.stackover ow.co/2024/technology#most-popular-technologies-language-learn
fl
Fonte: https://survey.stackover ow.co/2024/technology#most-popular-technologies-language-other
fl
Fonte: https://survey.stackover ow.co/2024/technology#admired-and-desired
fl
Ementa
O que veremos na disciplina?

Técnicas de modularização de programas (pacotes, módulos e


noções básicas de programação orientação a objetos). Técnicas
de programação funcional (funções/expressões lambda, funções
parciais e geradores de expressões). Tratamento de erros/
exceções. Manipulação e processamento de uxos de I/O (arquivo e
rede). Programação com threads. Build e testes automatizados.

21

fl
Conteúdo
Tópicos a serem trabalhados

Tópico do Conteúdo Programático Horas


Modularização de Programas 8
Programação Orientada a Objetos 12
Build e Testes Automatizados 10
Tratamento de Erros e Exceções 8
Programação Funcional para Manipulação de Dados 8
Programação com Threads 8
Processamento de Fluxo de Dados 10

22
Cronograma Completo
22/10/2024 Introdução à Disciplina
24/10/2024 Abstração, Modularidade e Programação Modular
29/10/2024 Modularização de Programas em Python
31/10/2024 Tarefa de Programação 1
05/11/2024 Introdução à Programação Orientação a Objetos
07/11/2024 Encontros Universitários 2024
12/11/2024 Classes, Objetos e sua Implementação em Python
14/11/2024 Tarefa de Programação 2
19/11/2024 Herança de Classes e Polimor smo
21/11/2024 Tarefa de Programação 3
26/11/2024 Classes Abstratas e Decoradores de Métodos
28/11/2024 Tarefa de Programação 4
03/12/2024 Primeira Avaliação - AP01
05/12/2024 Build Automatizado (poetry)
10/12/2024 Testes Automatizados (pytest e unittest)
12/12/2024 Tarefa de Programação 5 e 6
17/12/2024 Tratamento de Erros e Exceções
19/12/2024 Tarefa de Programação 7
24/12/2024 Recesso escolar - Graduação e Pós-Graduação
26/12/2024 Recesso escolar - Graduação e Pós-Graduação
fi
Cronograma Completo
31/12/2024 Recesso escolar - Graduação e Pós-Graduação
02/01/2025 Recesso escolar - Graduação e Pós-Graduação
07/01/2025 Expressões Lambda e Funções Map/Filter/Reduce
09/01/2025 Funções/Objetos Parcias e Geradores
14/01/2025 Tarefa de Programação 8
16/01/2025 Programação com Threads
21/01/2025 Tarefa de Programação 9
23/01/2025 Processamento de Fluxo de Dados (arquivos)
28/01/2025 Processamento de Fluxo de Dados (rede/internet)
30/01/2025 Tarefa de Programação 10
04/02/2025 Especi cação do Trabalho Final
06/02/2025 Acompanhamento do Trabalho Final
11/02/2025 Acompanhamento do Trabalho Final
13/02/2025 Acompanhamento do Trabalho Final
18/02/2025 Acompanhamento do Trabalho Final
20/02/2025 Acompanhamento do Trabalho Final
25/02/2025 Acompanhamento do Trabalho Final
27/02/2025 Acompanhamento do Trabalho Final
04/03/2025 Ponto Facultativo - Carnaval
06/03/2025 Entrega do Trabalho Final
fi
Metodologia
Como o conteúdo será trabalhado?

Aulas Teóricas (50%)


• Exposição de conceitos
• Exemplos práticos de aplicação

Atividades Práticas (50%)


• Tarefas de programação
• Trabalho em grupo
25
Avaliação…
Como o aprendizado será avaliado?

• Avaliação de Aprendizagem (AP)


• Uma avaliação individual

• Tarefas de Programação (TP)


• Conjunto de tarefas a serem entregues individualmente

• Trabalho Final (TF)


• O projeto deverá ser feito em grupo
26
…Avaliação…
Como o aprendizado será avaliado?

MF = 0,3*AP1 + 0,2*NTP + 0,5*NTF


• AP1 = Avaliação de Aprendizagem
• NTP = Nota Tarefas de Programação
• NTF = Nota Projeto Final

27
…Avaliação
Como o aprendizado será avaliado?

28
…Avaliação
Como o aprendizado será avaliado?

Se (MF >= 7) Então


Aprovado por Média \õ/

28
…Avaliação
Como o aprendizado será avaliado?

Se (MF >= 7) Então


Aprovado por Média \õ/
Senão

28
…Avaliação
Como o aprendizado será avaliado?

Se (MF >= 7) Então


Aprovado por Média \õ/
Senão
Fazer Prova Final (PF) ☹

28
…Avaliação
Como o aprendizado será avaliado?

Se (MF >= 7) Então


Aprovado por Média \õ/
Senão
Fazer Prova Final (PF) ☹
Se (PF >=4) E ((MF + PF)/2 >= 5) Então

28
…Avaliação
Como o aprendizado será avaliado?

Se (MF >= 7) Então


Aprovado por Média \õ/
Senão
Fazer Prova Final (PF) ☹
Se (PF >=4) E ((MF + PF)/2 >= 5) Então
Aprovado na Final \õ/

28
…Avaliação
Como o aprendizado será avaliado?

Se (MF >= 7) Então


Aprovado por Média \õ/
Senão
Fazer Prova Final (PF) ☹
Se (PF >=4) E ((MF + PF)/2 >= 5) Então
Aprovado na Final \õ/
Senão

28
…Avaliação
Como o aprendizado será avaliado?

Se (MF >= 7) Então


Aprovado por Média \õ/
Senão
Fazer Prova Final (PF) ☹
Se (PF >=4) E ((MF + PF)/2 >= 5) Então
Aprovado na Final \õ/
Senão
Nos vemos ano que vem ☹
28
Ambiente de Comunicação

Fonte: https://si3.ufc.br/
Ambientes de Atividades Práticas

30
Bibliografia Básica

1 2 3

1. BORGES, Luiz Eduardo. Python para desenvolvedores. São Paulo: Novatec, c2014.
2. LUTZ, Mark; ASCHER, David. Aprendendo python. 2. ed. Porto Alegre: Bookman, 2008.
3. KNUTH, Donald Ervin. The art of computer programming. 3rd ed. Upper Saddle River: Addison-Wesley, 1997.

31
Bibliografia Extra

https://greenteapress.com/wp/think-python-2e/ https://greenteapress.com/wp/think-python-3rd-edition/
32
Técnicas de Programação para
Ciência de Dados (Cod. CK0442)
Departamento de Computação
Bacharelado em Ciência de Dados
Prof. Lincoln S. Rocha (e-mail: [email protected])
Semestre Letivo: 2024.2

Você também pode gostar