MINISTÉRIO DA EDUCAÇÃO

UNIVERSIDADE FEDERAL DE SANTA CATARINA

CENTRO TECNOLÓGICO

DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA

PROGRAMA DE ENSINO

1. Identificação

Disciplina:INE5402 - Programação Orientada a Objetos I
Nível:Graduação
Carga Horária:108 horas-aula (Teórica: 30; Prática: 78)
Vigência:De 2020-1 até a presente data

2. Ementa

Algoritmo. Programação de computador. Resolução de problemas usando computador. Linguagem de Programação. Elementos de programação imperativa: variáveis simples, coleções uni e n dimensionais; tipos das variáveis; comandos; procedimentos e funções. Conceitos fundamentais do paradigma de Programação Orientada a Objetos: objeto, atributo, método, classe. Prática de programação usando alguma linguagem de programação orientada a objetos.

3. Cursos Relacionados

4. Objetivos

4.1 Objetivo Geral:

Apresentar as noções básicas de programação de computadores capacitando os alunos a analisar problemas de complexidade básica e projetar/desenvolver soluções de software sob a perspectiva de orientação a objetos.

4.2 Objetivos Específicos:

  1. Apresentar os conceitos fundamentais da programação orientada a objetos.
  2. Capacitar o aluno a analisar problemas de complexidade básica, abstraindo, modelando e implementando soluções sob o enfoque de programação orientada a objetos.
  3. Desenvolver fluência em uma linguagem de programação orientada a objetos.

5. Conteúdo Programático

  1. CONTEXTUALIZAÇÃO [8 horas-aula]
    1. Modelo conceitual
    2. Processos de abstração e representação
    3. Histórico sobre linguagens de programação
  2. CONCEITOS BÁSICOS DA ORIENTAÇÃO A OBJETOS [10 horas-aula]
    1. Classes e objetos
    2. Atributos
    3. Métodos, argumentos e parâmetros
  3. CONCEITOS BÁSICOS DE PROGRAMAÇÃO IMPERATIVA [46 horas-aula]
    1. Algoritmos e programas
    2. Processo de edição, compilação e execução
    3. Variáveis e Tipos de dados
    4. Comando de atribuição
    5. Operadores aritméticos e lógicos
    6. Estruturas de controle
      1. Estrutura de seqüenciação
      2. Estruturas de decisão (simples e compostas)
      3. Estruturas de repetição (condicionais e contadas)
  4. COLEÇÕES [36 horas-aula]
    1. Cadeias de caracteres (String)
    2. Coleções unidimensionais (Array, Lista, Tupla)
    3. Coleções bidimensionais (Matriz)
    4. Coleções indexadas (Dicionário)
  5. MODELO DE OBJETOS [08 horas-aula]
    1. Comunicação por troca de mensagens
    2. Encapsulamento e ocultamento de informações
    3. Hierarquia de agregação/decomposição
    4. Hierarquia de especialização/generalização
    5. Herança e Polimorfismo

6. Bibliografia Básica

  1. SEVERANCE, Charles R. Python para Todos. Publicação Independente, 2020. Disponível em http://do1.dr-chuck.com/pythonlearn
  2. WAZLAWICK, Raul S. Introdução a Algoritmos e Programação com Python. São Paulo: Elsevier, 2017.
  3. OLIVEIRA, Jayr F. e MANZANO, José Augusto N. G. Algoritmos. Érica, 2016.
  4. SOUZA, Marco F. de Souza; et al. Algoritmos e Lógica de Programação. São Paulo: Thomson Learning, 2005.

7. Bibliografia Complementar

  1. BOOCH, G., Object-Oriented Design. Benjamin/Cumminggs Pub. 1998.
  2. MEYER, Bertrand. Object-oriented software construction. 2nd. ed. Upper Saddle River, NJ: Prenteice-Hall PTR, 1997.
  3. RUMBAUGH, James et alii. Modelagem e Projetos Baseados em Objetos. Ed. Campus, 1994.
  4. WAZLAWICK, Raul S. Análise e Projeto de Sistemas de Informação Orientados a Objetos. São Paulo: Campus. 2004.