- GERAL
- Introduzir conceitos referentes à ambientes e linguagens de programação e a algoritmos e estruturas de dados.
- ESPECÍFICOS
- Conhecer do que se trata o conceito de algoritmos;
- Introduzir o conhecimento sobre a existência de diferentes linguagens de programação;
- Fornecer conhecimentos básicos de uma linguagem de programação com foco em Python;
- Conhecer o ambiente de programação para a programação em Pyhton (Por exemplo: Idle, Pycharm e Eclipse);
- Apresentar os diferentes tipos estruturados de uma linguagem de programação;
- Introduzir conhecimento sobre funções e sub-rotinas com parâmetros;
- Conhecer os conceitos das noções de complexidade;
- Introduzir conhecimento sobre diferentes paradigmas de programação – orientada a eventos, objetos e aspectos;
- Desenvolvimento de um programa de porte médio na linguagem de Python em 2 etapas.
- Inicial, onde o projeto terá um conjunto restrito de funções e os dados serão voláteis;
- Final, onde o conjunto de funções será ampliado e os dados do sistema deverão ser armazenados em arquivos;
Fundamentos da construção de algoritmos e programas. Ambientes de programação: uso de uma linguagem de programação. Conceitos básicos: variáveis, operadores e expressões, estruturas de controle (atribuição, seleção, repetição). Dados estruturados: listas, cadeias, dicionários, tuplas). Subprogramas: funções, procedimentos. Parâmetros locais e globais. Recursão. Ordenação interna: bublesort, inserção, shellsort, heapsort, quicksort. Pesquisa interna: seqüencial, binária. Modularização. Complexidade temporal de algoritmos. Introdução a programação orientada a eventos. Introdução a programação orientada a objetos. Introdução a programação orientada a aspectos. Projeto: desenvolvimento de um programa de porte médio.
- 1. Algoritmo e linguagens
- 1.1 Algoritmo (fluxograma).
- 1.2 Instruções de um algoritmo.
- 1.3 Tipos de linguagens. (máquina, simbólica, abstrata).
- 1.4 Programa, compilação, interpretação e execução.
- 2. Ambiente de programação
- 2.1 Conceitos básicos de uma linguagem: variáveis, tipos, estruturas de controle.
- 2.2 Declaração de tipo simples.
- 2.3 Comandos de entrada e saída.
- 2.4 Comando de atribuição.
- 2.5 Operadores e expressões.
- 2.6 Exercícios em laboratório.
- 3. Tipos estruturados
- 3.1 Listas
- 3.2 Filas
- 3.3Array unidimensional (vetor).
- 3.4 Array bidimensional (matriz).
- 3.5. Arquivos.
- 3.6. Exercícios em laboratórios
- 4. Subprogramas
- 4.1 Função com parâmetro.
- 4.2 Subroutine com parâmetro.
- 4.3 Passagem de parâmetro.
- 4.4. Exercício em laboratório
- 5. Algoritmos
- 5.1 Pesquisa sequencial e binária
- 5.2 bublesort
- 5.3 inserção
- 5.4 shellsort
- 5.5 heapsort
- 5.6 quicksort.
- 6. Noções de Complexidade e Paradigmas de Programação
- 6.1 Notação o, O, Ω e Ө.
- 6.2 Introdução a programação orientada a eventos.
- 6.3 Introdução a programação orientada a objetos.
- 6.4 Introdução a programação orientada a aspectos.
- 7. Projeto de Implementação.
- Aula Expositiva
- Leitura Dirigida
- Demonstração (prática realizada pelo professor)
- Laboratório (prática realizada pelo aluno)
- Trabalho de Pesquisa
1ª Verificação de Aprendizagem:
• 100% Prova Escrita
2ª Verificação de Aprendizagem:
• 100% Prova Escrita
3ª Verificação de Aprendizagem:
• 100% Projeto Prático
Verificação de Aprendizagem Final:
• 100% Prova Escrita
1ª VA - 28/10 (Resolução)
2ª VA - 02/12 (Resolução 1a Questão)
3ª VA - 09/12
VA Final - 16/12
- BÁSICA
- 1. Lopes, Anita e Garcia, Guto. Introdução a Programação. Editora Campus, 2002.
- 2. Cormen, Thomas H. et. al. Algoritmos: Teoria e Prática. Editora Campus, 2002.
- 3. Ziviani, Nivio. Projeto de Algoritmos. Editora Nova Fronteira, 2004.
- COMPLEMENTAR
- 1. Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001.
- 2. Van Rossum, Guido. Tutorial de Python. Disponível gratuitamente em http://python.org/, 2004.
- 3. Nieto, T. R. Internet & World Wide Web. Como Programar. Bookman, 2003.
- 4. Deitel, Harvey M. et. al. XML Como Programar. Bookman, 2003.
- 5. Notas de aulas da disciplina.
Aulas
- Apresentação da Disciplina e Introdução
- Lógica de Programação
- Representação de Algoritmos e Fundamentação
- Python - Introdução, Variáveis e Operadores
- Python - Variáveis, Entrada e Saída
- Python - Estruturas de Controle de Fluxo
- Python - Strings, Listas, Dicionários e Tuplas
- Python - Funções
- Python - Arquivos
- Python - Algoritmos de Ordenação
- Python - Orientação a Objeto Part1
Projeto PráticoEspecificação do Projeto Prático (3ª V.A.) Exemplo de Arquivos Arquivos de teste
Exercícios
- Lista 1
- Lista 2
- Lista 3
- Lista 4
- Lista 5
- Lista 6
- Lista 7
- Lista 8