|
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902 |
|
Plano de Ensino
IDENTIFICAÇÃO
Componente Curricular: |
|||||||||
Unidade Ofertante: |
|||||||||
Código: |
Período/Série: |
Turma: |
|||||||
Carga Horária: |
Natureza: |
||||||||
Teórica: |
Prática: |
Total: |
Obrigatória: |
Optativa: |
|||||
Professor(A): |
Ano/Semestre: |
||||||||
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
A disciplina de Programação Script foi cuidadosamente elaborada para proporcionar aos discentes uma experiência enriquecedora no desenvolvimento de habilidades fundamentais em programação de computadores, visando a resolução eficaz de problemas em suas rotinas pessoais e profissionais. O objetivo geral é dotar os alunos com sólidos conhecimentos em linguagens de script, em especial Python, capacitando-os a aplicar conceitos essenciais de programação e computação. Os objetivos específicos incluem a promoção da compreensão de conceitos fundamentais, o desenvolvimento de habilidades em trabalho em grupo, gestão de projetos e documentação, bem como a produção de códigos de qualidade através da adoção de boas práticas. Além disso, a disciplina busca cultivar a consciência, autonomia e responsabilidade dos alunos, tornando a atividade de programar computadores uma experiência prazerosa. Ao participar desta disciplina, os alunos estarão imersos em um ambiente propício ao aprendizado efetivo e à aplicação prática dos conhecimentos adquiridos, preparando-os para desafios e oportunidades no universo da programação e da tecnologia.
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: |
- Desenvolver a compreensão de conceitos fundamentais de programação e de computação; - 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); - Desenvolver a consciência, a autonomia e a responsabilidade dos discentes; - Tornar prazerosa para os discentes a atividade de programar computadores. |
PROGRAMA
Data DDS T/P Eventos
11-Jan-2024 QUI Recepção dos ingressantes e trote social PET/FEELT
18-Jan-2024 QUI [T] Introdução; Computadores e Hardware; Alan Turing e a Máquina de Turing; Turing-Completo e Programação (sequência, condição, repetição)
[P] Linguagem Python; Instalação (Interpretador, IDE, diferença); Estrutura básica de um programa; Testando o ambiente de desenvolvimento; Código fonte
25-Jan-2024 QUI [T] Tipos básicos (int, float, str); Variáveis e tipos; Variáveis e atribuições; Operações aritméticas (+, -, *, /, //, %, **); Codificação de caracteres (ASCII, UTF-8); Concatenando str
[P] Imprimindo na tela (print); f-String; Lendo dados do teclado (input); Exercícios sobre Operadores Aritméticos
01-Feb-2024 QUI [T] Tipo bool e operadores relacionais; Expressões relacionais; Expressões lógicas (and, or, not); Blocos de comando e o comandos operacionais de condição (if, if/else, if/elif/else); Aninhamento de condicionais
[P] Exercícios sobre Condições (desvios do fluxo do programa)
08-Feb-2024 QUI [T] Comandos de repetição (while/for+in range); Laços infinitos (break/continue/pass); Açúcar sintático (while/for + else); Aninhamento de laços
[P] Exercícios sobre Condições (repetições de trechos do fluxo do programa)
15-Feb-2024 QUI [T] Funções: o que são, pra que servem, como criá-las e como usá-las (princípios do reuso e da não duplicação de código); Escopo de Variáveis (global/local); Chamada e Retorno (simples) de Funções
[P] Exercícios sobre Funções
22-Feb-2024 QUI [T] Tipo composto [built-in]: tuple; Uso de tuple para retorno de múltiplos valores em funções; Funções recursivas
[P] Exercícios sobre Funções com múltiplos retornos e recursões
24-Feb-2024 SAB [T] Aulas extras (2ha): Listas em Python (list/append/len); Percorrendo listas (for+in); Acesso a elementos da lista
[P] Atividades acadêmicas extras (2ha): Revisão de conceitos e exemplos de códigos de programas
29-Feb-2024 QUI [T] Mais sobre Listas (del/clear/index/count/sort[ed]/reverse[d]); Pertinência em listas (in); Fatiamento de listas
[P] Exercícios sobre Listas
07-Mar-2024 QUI [T] Objetos mutáveis e imutáveis em Python (ex. tuple, list); Funções id/copy; Cópia de Listas por fatiamento; Concatenação (+) e extensão (extend); Compreensão de listas; Resumo sobre Listas
[P] Exercícios extras sobre Listas
14-Mar-2024 QUI Vem pra UFU em Uberlândia
21-Mar-2024 QUI [T] Matrizes (listas de listas); Iniciação de matrizes por compreensão de listas; Imprimindo matrizes; Operações de matrizes: soma, transposta, multiplicação; Matrizes multidimensionais
[P] Exercícios sobre Matrizes
28-Mar-2024 QUI [T] Strings; Maiúsculas e Minúsculas (upper/lower/capitalize/title); Remoção e substituição (strip/replace); Busca por substrings (count/find); Separação e junção de strings (split/list/join); Métodos ord/chr; Módulo unidecode
[P] Exercícios sobre Strings
04-Apr-2024 QUI [T] Mais sobre Tuplas (tuple); Conjuntos (set -> add/remove/clear/copy/difference/intersection/symmetric_difference/union/update); Dicionários (dict -> keys/values/items/clear/get/setdefault/update); operadores e métodos mais utilizados
[P] Exercícios sobre Tuplas, Conjuntos e Dicionários
11-Apr-2024 QUI [T] Módulos: importação e uso; Criação de módulo; Testando seu módulo; Introdução a Classes em Python
[P] Exercícios sobre Módulos e Classes
13-Apr-2024 SAB [T] Aulas extras (2ha): Busca (sequencial e binária) e Ordenação (bolhas e binária)
[P] Atividades acadêmicas extras (2ha): Revisão de conceitos e exemplos de códigos de programas
18-Apr-2024 QUI [T] Arquivos: criação, leitura e manipulação; Arquivos Texto; Arquivos Binários; Módulo pickle
[P] Exercícios sobre arquivos
25-Apr-2024 QUI Recuperação: Entrega de todos os projetos atrasados
02-May-2024 QUI Período destinado a outras atividades acadêmicas (10 dias) para os campi de Uberlândia, Patos de Minas e Monte Carmelo
METODOLOGIA
Parte teórica: Aulas expositivas dialogadas com demonstrações práticas, diagramas e codificação-exemplo, acompanhadas de indicação para materiais de apoio.
Parte prática: Aulas práticas em laboratório com roteiros e apoio de sítios informativos de internet com discussão sobre dúvidas, exposição de exemplos e orientação em projetos.
Observação: Os materiais de referência e de apoio, assim como links relevantes, avaliações e repositório de materiais complementares, serão disponibilizados com o suporte do Moodle da UFU (https://moodle.ufu.br/course/view.php?id=12164).
AVALIAÇÃO
Parte teórica
- Avaliação continuada: atividades avaliativas do tipo questionário no Moodle quase toda semana + Projeto em grupo. Total máximo possível: 50% da nota final.
Parte prática
- Entrega de programas e avaliação dos mesmos, com diferentes níveis de dificuldade. Total máximo possível: 50% da nota final.
ATIVIDADE DE RECUPERAÇÃO (REC)
- Aceite da entrega de trabalhos atrasados com 10% de desconto na nota dos trabalhos entregues até o final do semestre letivo.
BIBLIOGRAFIA
Básica
1. FREEMAN, Elisabeth. Use a cabeça!: HTML com CSS e XHTML. 2. ed. Rio de Janeiro: Alta Books, 2008.
2. LUTZ, Mark. Aprendendo Python. Porto Alegre: Bookman, 2007.
3. MENEZES, Nilo Ney Coutinho. Introdução à programação com Python: algoritmos e lógica de programação para iniciantes. São Paulo: Novatec, 2010.
Complementar
1. DEWDNEY, A. K. The (new) turing omnibus: 66 excursions in computer science. New York: W.H. Freeman, 2001.
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/. Acesso em: 10 dez. 2018.
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/. Acesso em: 10 dez. 2018.
4. DAWSON, Mike. Python programming for the absolute beginner. 3rd ed. Boston: Course Technology Cengage Learning, c2010. Disponível em: http://www.loc.gov/catdir/enhancements/fy1105/2009933304-b.html. Acesso em: 10 dez. 2018.
5. LINDLEY, Cody. JavaScript Succinctly. Editora Syncfusion, Inc., 2017. Versão online disponível em: https://www.syncfusion.com/ebooks/javascript. Acesso em: 10 dez. 2018.
6. OEHLMAN, Damon. Aplicativos Web pro Android: desenvolvimento Pro Android usando HTML5, CSS3 & JavaScript. Rio de Janeiro: Ciência Moderna, 2012.
APROVAÇÃO
Aprovado em reunião do Colegiado realizada em: ____/____/______
Coordenação do Curso de Graduação: _________________________
Documento assinado eletronicamente por Igor Santos Peretta, Professor(a) do Magistério Superior, em 23/01/2024, às 07:32, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015. |
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 5120040 e o código CRC F6C9135D. |
Referência: Processo nº 23117.002005/2024-41 | SEI nº 5120040 |