UNIVERSIDADE FEDERAL DE UBERLÂNDIA
Faculdade de Engenharia Elétrica

Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902
Telefone: (34) 3239-4701/4702 - www.feelt.ufu.br - feelt@ufu.br
  

Timbre

Plano de Ensino

IDENTIFICAÇÃO

Componente Curricular:

Programação Script

Unidade Ofertante:

Faculdade de Engenharia Elétrica

Código:

FEELT31107

Período/Série:

1º período

Turma:

C

Carga Horária:

Natureza:

Teórica:

30

Prática:

30

Total:

60

Obrigatória:

(X)

Optativa:

( )

Professor(A):

Felipe Alves da Louza

Ano/Semestre:

2020/02 (Etapa 2)

Observações:

 

 

EMENTA

Desenvolvimento de aplicações práticas em linguagens de script, com abordagem algorítmica e conceitos de avaliação de valores e de expressões; constantes, variáveis, strings, arrays e objetos; controle de fluxo de execução de código (sequência, instruções condicionais, laços, funções, encapsulamento). Noções de estrutura de dados, interpretadores, análise de algoritmos, computabilidade e complexidade. Conceitos de computação nas nuvens. Noções de empreendedorismo e de inovação.

JUSTIFICATIVA

O curso tem como objetivo capacitar os alunos para o desenvolvimento de algoritmos de acordo com o paradigma de programação script a partir de práticas de programação em linguagem Python.

OBJETIVO

Objetivo Geral:

Desenvolver as habilidades dos discentes em programação de computadores para resolução de problemas em suas rotinas pessoais e profissionais através do emprego de linguagens de script.

Objetivos Específicos:

1. Desenvolver a compreensão de conceitos fundamentais de programação e de computação;
2. Desenvolver as habilidades dos discentes tanto em trabalhar em grupo, gerenciar projetos e
documentá-los quanto em produzir códigos de qualidade através da adoção de boas práticas de
programação e de Test-Driven Development (TDD);
3. Desenvolver a consciência, a autonomia e a responsabilidade dos discentes;
4. Tornar prazerosa para os discentes a atividade de programar computadores.

PROGRAMA

1. Introdução
1.1. Programação de computadores
1.2. Linguagens de Script e Interpretadores
1.3. Repositórios (Github) e plataformas de desenvolvimento (servidores e computação nas nuvens)
1.4. Aplicativos e inovação
2. Programação Web
2.1. HTML e CSS
2.2. Primitivas, tipos de dado e estruturas: constantes, variáveis, strings, arrays
2.3. Instruções condicionais, laços, funções
2.4. Estrutura de dados composta: objeto JSON
2.5. Implementação e análise de algoritmos, estudo de complexidade
2.6. Rapid application development (RAD): Node-RED, Django
2.7. Desenvolvimento de aplicações
3. Linguagem Python
3.1. Primitivas, tipos de dado e estruturas: variáveis, strings, arrays
3.2. Instruções condicionais, laços, funções, recursão
3.3. Estruturas de dados compostas: Listas, arquivos, dicionários, classes
3.4. Implementação e análise de algoritmos, estudo de complexidade
3.5. Tópicos avançados, desenvolvimento de aplicações em nuvem
4. Cursos online abertos e massivos
4.1. HTML & CSS: https://www.codecademy.com/learn/learn-html-css
4.2. Javascript:
4.2.1. https://br.udacity.com/course/javascript-basics--ud804/
4.2.2. https://www.codecademy.com/learn/learn-javascript
4.3. Python:
4.3.1. https://br.udacity.com/course/programming-foundations-with-python--ud036/
4.3.2. https://www.codecademy.com/pt-BR/learn/python

METODOLOGIA

Distribuição das atividades:

- A disciplina será dividida em aulas teóricas e atividades práticas.

Moodle:

- Todas as informações relativas à disciplina como materiais, trabalhos, entrega de trabalhos, vídeo-aulas, entre outros, serão informadas no Moodle.

- Página da disciplina: https://www.moodle.ufu.br/course/view.php?id=5854

Atividades assíncronas:

- As vídeo-aulas (assíncronas) serão disponibilizadas no início de cada semana através de links no Moodle para o YouTube ou RNP, conforme o cronograma apresentado na tabela a seguir.

Semana

Conteúdo

1

Introdução; Variáveis; Entrada e Saída; 

2

Operações condicionais; Estruturas de repetição, Depuração

3

Funções; Testes automatizados

4

Laços aninhados; Coleções (listas e vetores)

5

Manipulação de listas; Objetos na memória e suas referências

6

Matrizes; Strings; Asserção de invariantes

7

Módulos em Python; Manipulação de matrizes; Códigos testáveis

8

Busca e ordenação; Custo computacional

9

Revisão

Atividades síncronas:

- Os encontros síncronos serão realizados todas às quartas-feiras, das 16:00 às 17:40, por meio de ferramentas como o Google Meet, Microsoft Teams, Zoom, ou MConf/RNP.

- Os links serão divulgados no início de cada semana no Moodle

Dia

Horário

Quarta-feira

16:00 - 17:40

Atendimento aos alunos:

- O atendimento aos alunos será realizado de forma remota durante as aulas na modalidade síncrona, ou através do Fórum de Dúvidas no Moodle.

Sobre a presença:

- A presença no curso será contabilizada semanalmente através da submissão dos trabalhos. Caso o aluno não resolva o trabalho, ele deve enviar um arquivo em branco (apenas com o seu nome) para que a sua presença na semana seja registrada.

AVALIAÇÃO

Sistema de Avaliação

- O aluno deverá ter acesso a um computador para implementar os trabalhos (em linguagem Python). O interpretador Python pode ser instalado diretamente no computador do aluno, ou alternativamente, o aluno poderá utilizar softwares gratuitos via navegador WEB, como: https://repl.it/https://paiza.io/en/languages/python3https://www.python.org/shell/, e outros.

- Serão realizados 10 trabalhos práticos individuais, conforme apresentado na tabela a seguir.

Trabalhos

Data de entrega

1

30/10

2

06/11

3

13/11

4

20/11

5

27/11

6

27/11

7

04/12

8

11/12

9

18/12

10

18/12

* O enunciado de cada trabalho será disponibilizado no início de cada semana, na segunda-feira às 08h00, e prazo para a entrega será na sexta-feira até às 17h59.

Sobre os trabalhos:

- Cada trabalho abordará um tema referente ao conteúdo apresentado durante a semana correspondente.

- Os trabalhos serão propostos no modelo de programação para resolução de problemas e competições (ex: ICPC, OBI, maratona de programação da SBC) e serão avaliados por um sistema de correção automática e posteriormente verificados pelo professor.

- Caso haja a detecção de plágio em um trabalho, todos os envolvidos receberão nota zero.

- O link para cada trabalho será divulgado no início da semana via Moodle.

Distribuição da Pontuação da disciplina:

- A nota final NF será calculada da seguinte forma: 

NF = ((T1*0.5)+T2+(T3*0.5)+T4+T5+T6+T7+(T8*2)+T9+T10) / 10

Obs.: Ti é a nota do Trabalho i.

BIBLIOGRAFIA

Básica

1. MENEZES, Nilo Ney Coutinho. Introdução à programação com Python: algoritmos e lógica de programação para iniciantes. São Paulo: Novatec, 2010. 222 p., il. Inclui bibliografia e índice. ISBN 9788575222508 (broch.).
2. LUTZ, Mark. Aprendendo Python. Porto Alegre: Bookman, 2007. 566 p., il. Inclui índice. ISBN 9788577800131 (broch.).
3. FREEMAN, Elisabeth. Use a cabeça!: HTML com CSS e XHTML. 2. ed. Rio de Janeiro: Alta Books, 2008. viii, 580 p., il. (Use a cabeça!). ISBN 9788576082187 (broch.).

Complementar

 

1. DEWDNEY, A. K. The (new) turing omnibus: 66 excursions in computer science. New York: W.H. Freeman, 2001. 455 p., il. Inclui bibliografia e índice. ISBN 9780805071665 (broch.).
2. BRAD Miller; DAVID Ranum, Como pensar como cientista da computação. Aprendendo com Python: Edição interativa (usando Python 3.x) (Tradução do livro “How to Think Like a Computer Scientist: Interactive Version”, de Brad Miller e David Ranum). Versão online disponível em: https://panda.ime.usp.br/pensepy/static/pensepy/
3. SWEIGART. Al, Automate the Boring Stuff with Python, No Starch Press, 1ed.,2015, 504 p. Versão online disponível em: https://automatetheboringstuff.com/
4. LUTZ, Mark. Aprendendo Python. Porto Alegre: Bookman, 2007. 566 p., il. Inclui índice. ISBN 9788577800131 (broch.).
5. LINDLEY, Cody. JavaScript Succinctly. Editora Syncfusion, Inc., 2017. Versão online disponível em: https://www.syncfusion.com/ebooks/javascript

APROVAÇÃO

Aprovado em reunião do Colegiado realizada em: ____/____/______

Coordenação do Curso de Graduação: _________________________

 


logotipo

Documento assinado eletronicamente por Felipe Alves da Louza, Professor(a) do Magistério Superior, em 16/10/2020, às 10:20, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


QRCode Assinatura

A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 2327055 e o código CRC B58EF847.




Referência: Processo nº 23117.056272/2020-12 SEI nº 2327055